Files
Nitro_Render_V3/packages/session/src/handler/RoomPresentHandler.ts
T
2024-04-03 09:27:56 +02:00

34 lines
1.1 KiB
TypeScript

import { IConnection, IRoomHandlerListener } from '@nitrots/api';
import { PresentOpenedMessageEvent } from '@nitrots/communication';
import { GetEventDispatcher, RoomSessionPresentEvent } from '@nitrots/events';
import { BaseHandler } from './BaseHandler';
export class RoomPresentHandler extends BaseHandler
{
constructor(connection: IConnection, listener: IRoomHandlerListener)
{
super(connection, listener);
if(!connection) return;
connection.addMessageEvent(new PresentOpenedMessageEvent(this.onFurnitureGiftOpenedEvent.bind(this)));
}
private onFurnitureGiftOpenedEvent(event: PresentOpenedMessageEvent): void
{
if(!event) return;
const parser = event.getParser();
if(!parser) return;
const session = this.listener.getSession(this.roomId);
if(!session) return;
GetEventDispatcher().dispatchEvent(new RoomSessionPresentEvent(RoomSessionPresentEvent.RSPE_PRESENT_OPENED, session, parser.classId, parser.itemType, parser.productCode, parser.placedItemId, parser.placedItemType, parser.placedInRoom, parser.petFigureString));
}
}