Merge remote-tracking branch 'origin/Dev' into feat/react19-event-bus

# Conflicts:
#	packages/session/src/UserDataManager.ts
This commit is contained in:
simoleo89
2026-05-19 20:33:54 +02:00
11 changed files with 53 additions and 9 deletions
@@ -6,6 +6,7 @@ export interface IRoomUserData
stand: number; stand: number;
overlay: number; overlay: number;
cardBackground: number; cardBackground: number;
borderId: number;
name: string; name: string;
type: number; type: number;
sex: string; sex: string;
@@ -18,7 +18,7 @@ export interface IUserDataManager
updateMotto(roomIndex: number, custom: string): void; updateMotto(roomIndex: number, custom: string): void;
updateNickIcon(roomIndex: number, nickIcon: string): void; updateNickIcon(roomIndex: number, nickIcon: string): void;
updateCustomization(roomIndex: number, nickIcon: string, prefixText: string, prefixColor: string, prefixIcon: string, prefixEffect: string, prefixFont: string, displayOrder: string): void; updateCustomization(roomIndex: number, nickIcon: string, prefixText: string, prefixColor: string, prefixIcon: string, prefixEffect: string, prefixFont: string, displayOrder: string): void;
updateBackground(roomIndex: number, background: number, stand: number, overlay: number, cardBackground?: number): void; updateBackground(roomIndex: number, background: number, stand: number, overlay: number, cardBackground?: number, borderId?: number): void;
updateAchievementScore(roomIndex: number, score: number): void; updateAchievementScore(roomIndex: number, score: number): void;
updatePetLevel(roomIndex: number, level: number): void; updatePetLevel(roomIndex: number, level: number): void;
updatePetBreedingStatus(roomIndex: number, canBreed: boolean, canHarvest: boolean, canRevive: boolean, hasBreedingPermission: boolean): void; updatePetBreedingStatus(roomIndex: number, canBreed: boolean, canHarvest: boolean, canRevive: boolean, hasBreedingPermission: boolean): void;
@@ -4,9 +4,9 @@ export class RoomUnitBackgroundComposer implements IMessageComposer<ConstructorP
{ {
private _data: ConstructorParameters<typeof RoomUnitBackgroundComposer>; private _data: ConstructorParameters<typeof RoomUnitBackgroundComposer>;
constructor(backgroundImage: number, backgroundStand: number, backgroundOverlay: number, backgroundCard: number = 0) constructor(backgroundImage: number, backgroundStand: number, backgroundOverlay: number, backgroundCard: number = 0, backgroundBorder: number = 0)
{ {
this._data = [ backgroundImage, backgroundStand, backgroundOverlay, backgroundCard ]; this._data = [ backgroundImage, backgroundStand, backgroundOverlay, backgroundCard, backgroundBorder ];
} }
public getMessageArray() public getMessageArray()
@@ -11,6 +11,7 @@ export class RoomUnitInfoParser implements IMessageParser
private _standId: number; private _standId: number;
private _overlayId: number; private _overlayId: number;
private _cardBackgroundId: number; private _cardBackgroundId: number;
private _borderId: number;
private _nickIcon: string; private _nickIcon: string;
private _prefixText: string; private _prefixText: string;
private _prefixColor: string; private _prefixColor: string;
@@ -30,6 +31,7 @@ export class RoomUnitInfoParser implements IMessageParser
this._standId = 0; this._standId = 0;
this._overlayId = 0; this._overlayId = 0;
this._cardBackgroundId = 0; this._cardBackgroundId = 0;
this._borderId = 0;
this._nickIcon = ''; this._nickIcon = '';
this._prefixText = ''; this._prefixText = '';
this._prefixColor = ''; this._prefixColor = '';
@@ -61,6 +63,7 @@ export class RoomUnitInfoParser implements IMessageParser
this._prefixEffect = (wrapper.bytesAvailable ? wrapper.readString() : ''); this._prefixEffect = (wrapper.bytesAvailable ? wrapper.readString() : '');
this._prefixFont = (wrapper.bytesAvailable ? wrapper.readString() : ''); this._prefixFont = (wrapper.bytesAvailable ? wrapper.readString() : '');
this._displayOrder = (wrapper.bytesAvailable ? wrapper.readString() : 'icon-prefix-name'); this._displayOrder = (wrapper.bytesAvailable ? wrapper.readString() : 'icon-prefix-name');
this._borderId = (wrapper.bytesAvailable ? wrapper.readInt() : 0);
return true; return true;
} }
@@ -110,6 +113,11 @@ export class RoomUnitInfoParser implements IMessageParser
return this._cardBackgroundId; return this._cardBackgroundId;
} }
public get borderId(): number
{
return this._borderId;
}
public get nickIcon(): string public get nickIcon(): string
{ {
return this._nickIcon; return this._nickIcon;
@@ -146,6 +146,7 @@ export class RoomUnitParser implements IMessageParser
user.roomEntryMethod = wrapper.readString(); user.roomEntryMethod = wrapper.readString();
user.roomEntryTeleportId = wrapper.readInt(); user.roomEntryTeleportId = wrapper.readInt();
user.borderId = (wrapper.bytesAvailable ? wrapper.readInt() : 0);
i++; i++;
} }
@@ -45,6 +45,7 @@ export class UserMessageData
private _isModerator: boolean = false; private _isModerator: boolean = false;
private _roomEntryMethod: string = 'unknown'; private _roomEntryMethod: string = 'unknown';
private _roomEntryTeleportId: number = 0; private _roomEntryTeleportId: number = 0;
private _borderId: number = 0;
private _isReadOnly: boolean = false; private _isReadOnly: boolean = false;
constructor(k: number) constructor(k: number)
@@ -579,4 +580,17 @@ export class UserMessageData
this._roomEntryTeleportId = k; this._roomEntryTeleportId = k;
} }
} }
public get borderId(): number
{
return this._borderId;
}
public set borderId(k: number)
{
if(!this._isReadOnly)
{
this._borderId = k;
}
}
} }
@@ -20,6 +20,7 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
private _prefixEffect: string; private _prefixEffect: string;
private _prefixFont: string; private _prefixFont: string;
private _displayOrder: string; private _displayOrder: string;
private _borderId: number | null;
constructor( constructor(
session: IRoomSession, session: IRoomSession,
@@ -38,7 +39,8 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
prefixIcon: string = '', prefixIcon: string = '',
prefixEffect: string = '', prefixEffect: string = '',
prefixFont: string = '', prefixFont: string = '',
displayOrder: string = 'icon-prefix-name' displayOrder: string = 'icon-prefix-name',
borderId: number | null = 0
) { ) {
super(RoomSessionUserFigureUpdateEvent.USER_FIGURE, session); super(RoomSessionUserFigureUpdateEvent.USER_FIGURE, session);
@@ -58,6 +60,7 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
this._prefixEffect = prefixEffect; this._prefixEffect = prefixEffect;
this._prefixFont = prefixFont; this._prefixFont = prefixFont;
this._displayOrder = displayOrder; this._displayOrder = displayOrder;
this._borderId = borderId;
} }
public get roomIndex(): number { public get roomIndex(): number {
@@ -123,4 +126,8 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
public get displayOrder(): string { public get displayOrder(): string {
return this._displayOrder; return this._displayOrder;
} }
public get borderId(): number | null {
return this._borderId;
}
} }
+2 -2
View File
@@ -97,9 +97,9 @@ export class RoomSession implements IRoomSession
else GetCommunication().connection.send(new RoomUnitTypingStopComposer()); else GetCommunication().connection.send(new RoomUnitTypingStopComposer());
} }
public sendBackgroundMessage(backgroundImage: number, backgroundStand: number, backgroundOverlay: number, backgroundCard: number = 0): void public sendBackgroundMessage(backgroundImage: number, backgroundStand: number, backgroundOverlay: number, backgroundCard: number = 0, backgroundBorder: number = 0): void
{ {
GetCommunication().connection.send(new RoomUnitBackgroundComposer(backgroundImage, backgroundStand, backgroundOverlay, backgroundCard)); GetCommunication().connection.send(new RoomUnitBackgroundComposer(backgroundImage, backgroundStand, backgroundOverlay, backgroundCard, backgroundBorder));
} }
public sendMottoMessage(motto: string): void public sendMottoMessage(motto: string): void
+11
View File
@@ -20,6 +20,7 @@ export class RoomUserData implements IRoomUserData
private _stand: number; private _stand: number;
private _overlay: number; private _overlay: number;
private _cardBackground: number; private _cardBackground: number;
private _borderId: number = 0;
private _webID: number = 0; private _webID: number = 0;
private _groupID: number = 0; private _groupID: number = 0;
private _groupStatus: number = 0; private _groupStatus: number = 0;
@@ -99,6 +100,16 @@ export class RoomUserData implements IRoomUserData
this._cardBackground = k; this._cardBackground = k;
} }
public get borderId(): number
{
return this._borderId;
}
public set borderId(k: number)
{
this._borderId = k;
}
public get name(): string public get name(): string
{ {
return this._name; return this._name;
+2 -1
View File
@@ -201,7 +201,7 @@ export class UserDataManager implements IUserDataManager
this.invalidateRoomUserListSnapshot(); this.invalidateRoomUserListSnapshot();
} }
public updateBackground(roomIndex: number, background: number, stand: number, overlay: number, cardBackground: number = 0): void public updateBackground(roomIndex: number, background: number, stand: number, overlay: number, cardBackground: number = 0, borderId: number = 0): void
{ {
const userData = this.getUserDataByIndex(roomIndex); const userData = this.getUserDataByIndex(roomIndex);
@@ -211,6 +211,7 @@ export class UserDataManager implements IUserDataManager
userData.stand = stand; userData.stand = stand;
userData.overlay = overlay; userData.overlay = overlay;
userData.cardBackground = cardBackground; userData.cardBackground = cardBackground;
userData.borderId = borderId;
this.invalidateRoomUserListSnapshot(); this.invalidateRoomUserListSnapshot();
} }
@@ -66,6 +66,7 @@ export class RoomUsersHandler extends BaseHandler
userData.stand = user.stand; userData.stand = user.stand;
userData.overlay = user.overlay; userData.overlay = user.overlay;
userData.cardBackground = user.cardBackground; userData.cardBackground = user.cardBackground;
userData.borderId = user.borderId;
userData.activityPoints = user.activityPoints; userData.activityPoints = user.activityPoints;
userData.figure = user.figure; userData.figure = user.figure;
userData.type = user.userType; userData.type = user.userType;
@@ -115,9 +116,9 @@ export class RoomUsersHandler extends BaseHandler
session.userDataManager.updateCustomization(parser.unitId, parser.nickIcon || '', parser.prefixText || '', parser.prefixColor || '', parser.prefixIcon || '', parser.prefixEffect || '', parser.prefixFont || '', parser.displayOrder || 'icon-prefix-name'); session.userDataManager.updateCustomization(parser.unitId, parser.nickIcon || '', parser.prefixText || '', parser.prefixColor || '', parser.prefixIcon || '', parser.prefixEffect || '', parser.prefixFont || '', parser.displayOrder || 'icon-prefix-name');
session.userDataManager.updateAchievementScore(parser.unitId, parser.achievementScore); session.userDataManager.updateAchievementScore(parser.unitId, parser.achievementScore);
session.userDataManager.updateBackground(parser.unitId, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId); session.userDataManager.updateBackground(parser.unitId, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId, parser.borderId);
GetEventDispatcher().dispatchEvent(new RoomSessionUserFigureUpdateEvent(session, parser.unitId, parser.figure, parser.gender, parser.motto, parser.achievementScore, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId, parser.nickIcon || '', parser.prefixText || '', parser.prefixColor || '', parser.prefixIcon || '', parser.prefixEffect || '', parser.prefixFont || '', parser.displayOrder || 'icon-prefix-name')); GetEventDispatcher().dispatchEvent(new RoomSessionUserFigureUpdateEvent(session, parser.unitId, parser.figure, parser.gender, parser.motto, parser.achievementScore, parser.backgroundId, parser.standId, parser.overlayId, parser.cardBackgroundId, parser.nickIcon || '', parser.prefixText || '', parser.prefixColor || '', parser.prefixIcon || '', parser.prefixEffect || '', parser.prefixFont || '', parser.displayOrder || 'icon-prefix-name', parser.borderId));
} }