You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-19 15:06:20 +00:00
Merge pull request #102 from simoleo89/fix/roomsession-snapshot-invalidate
fix(session): invalidate RoomSession snapshot on room-data/permission changes
This commit is contained in:
@@ -5,4 +5,5 @@ export interface IRoomHandlerListener
|
|||||||
getSession(id: number): IRoomSession;
|
getSession(id: number): IRoomSession;
|
||||||
sessionUpdate(id: number, type: string): void;
|
sessionUpdate(id: number, type: string): void;
|
||||||
sessionReinitialize(fromRoomId: number, toRoomId: number): void;
|
sessionReinitialize(fromRoomId: number, toRoomId: number): void;
|
||||||
|
invalidateRoomSessionSnapshot(): void;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export class RoomSessionManager implements IRoomSessionManager, IRoomHandlerList
|
|||||||
private _savedPosY: number = -1;
|
private _savedPosY: number = -1;
|
||||||
private _activeRoomSessionSnapshot: Readonly<IRoomSessionSnapshot> | null = null;
|
private _activeRoomSessionSnapshot: Readonly<IRoomSessionSnapshot> | null = null;
|
||||||
|
|
||||||
private invalidateRoomSessionSnapshot(): void
|
public invalidateRoomSessionSnapshot(): void
|
||||||
{
|
{
|
||||||
this._activeRoomSessionSnapshot = null;
|
this._activeRoomSessionSnapshot = null;
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ export class RoomDataHandler extends BaseHandler
|
|||||||
roomSession.allowPets = roomData.allowPets;
|
roomSession.allowPets = roomData.allowPets;
|
||||||
roomSession.moderationSettings = parser.moderation;
|
roomSession.moderationSettings = parser.moderation;
|
||||||
|
|
||||||
|
this.listener.invalidateRoomSessionSnapshot();
|
||||||
|
|
||||||
GetEventDispatcher().dispatchEvent(new RoomSessionPropertyUpdateEvent(RoomSessionPropertyUpdateEvent.RSDUE_ALLOW_PETS, roomSession));
|
GetEventDispatcher().dispatchEvent(new RoomSessionPropertyUpdateEvent(RoomSessionPropertyUpdateEvent.RSDUE_ALLOW_PETS, roomSession));
|
||||||
GetEventDispatcher().dispatchEvent(new RoomSessionEvent(RoomSessionEvent.ROOM_DATA, roomSession));
|
GetEventDispatcher().dispatchEvent(new RoomSessionEvent(RoomSessionEvent.ROOM_DATA, roomSession));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ export class RoomPermissionsHandler extends BaseHandler
|
|||||||
if(!session) return;
|
if(!session) return;
|
||||||
|
|
||||||
session.setControllerLevel(event.getParser().controllerLevel);
|
session.setControllerLevel(event.getParser().controllerLevel);
|
||||||
|
|
||||||
|
this.listener.invalidateRoomSessionSnapshot();
|
||||||
}
|
}
|
||||||
|
|
||||||
private onRoomRightsClearEvent(event: RoomRightsClearEvent): void
|
private onRoomRightsClearEvent(event: RoomRightsClearEvent): void
|
||||||
@@ -33,6 +35,8 @@ export class RoomPermissionsHandler extends BaseHandler
|
|||||||
if(!session) return;
|
if(!session) return;
|
||||||
|
|
||||||
session.setControllerLevel(RoomControllerLevel.NONE);
|
session.setControllerLevel(RoomControllerLevel.NONE);
|
||||||
|
|
||||||
|
this.listener.invalidateRoomSessionSnapshot();
|
||||||
}
|
}
|
||||||
|
|
||||||
private onRoomRightsOwnerEvent(event: RoomRightsOwnerEvent): void
|
private onRoomRightsOwnerEvent(event: RoomRightsOwnerEvent): void
|
||||||
@@ -44,5 +48,7 @@ export class RoomPermissionsHandler extends BaseHandler
|
|||||||
if(!session) return;
|
if(!session) return;
|
||||||
|
|
||||||
session.setRoomOwner();
|
session.setRoomOwner();
|
||||||
|
|
||||||
|
this.listener.invalidateRoomSessionSnapshot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user