Merge pull request #73 from duckietm/Dev

🆕 Infostand Borders
This commit is contained in:
DuckieTM
2026-05-20 08:26:09 +02:00
committed by GitHub
11 changed files with 53 additions and 9 deletions
@@ -6,6 +6,7 @@ export interface IRoomUserData
stand: number;
overlay: number;
cardBackground: number;
borderId: number;
name: string;
type: number;
sex: string;
@@ -18,7 +18,7 @@ export interface IUserDataManager
updateMotto(roomIndex: number, custom: 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;
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;
updatePetLevel(roomIndex: number, level: number): 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>;
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()
@@ -11,6 +11,7 @@ export class RoomUnitInfoParser implements IMessageParser
private _standId: number;
private _overlayId: number;
private _cardBackgroundId: number;
private _borderId: number;
private _nickIcon: string;
private _prefixText: string;
private _prefixColor: string;
@@ -30,6 +31,7 @@ export class RoomUnitInfoParser implements IMessageParser
this._standId = 0;
this._overlayId = 0;
this._cardBackgroundId = 0;
this._borderId = 0;
this._nickIcon = '';
this._prefixText = '';
this._prefixColor = '';
@@ -61,6 +63,7 @@ export class RoomUnitInfoParser implements IMessageParser
this._prefixEffect = (wrapper.bytesAvailable ? wrapper.readString() : '');
this._prefixFont = (wrapper.bytesAvailable ? wrapper.readString() : '');
this._displayOrder = (wrapper.bytesAvailable ? wrapper.readString() : 'icon-prefix-name');
this._borderId = (wrapper.bytesAvailable ? wrapper.readInt() : 0);
return true;
}
@@ -110,6 +113,11 @@ export class RoomUnitInfoParser implements IMessageParser
return this._cardBackgroundId;
}
public get borderId(): number
{
return this._borderId;
}
public get nickIcon(): string
{
return this._nickIcon;
@@ -146,6 +146,7 @@ export class RoomUnitParser implements IMessageParser
user.roomEntryMethod = wrapper.readString();
user.roomEntryTeleportId = wrapper.readInt();
user.borderId = (wrapper.bytesAvailable ? wrapper.readInt() : 0);
i++;
}
@@ -45,6 +45,7 @@ export class UserMessageData
private _isModerator: boolean = false;
private _roomEntryMethod: string = 'unknown';
private _roomEntryTeleportId: number = 0;
private _borderId: number = 0;
private _isReadOnly: boolean = false;
constructor(k: number)
@@ -579,4 +580,17 @@ export class UserMessageData
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 _prefixFont: string;
private _displayOrder: string;
private _borderId: number | null;
constructor(
session: IRoomSession,
@@ -38,7 +39,8 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
prefixIcon: string = '',
prefixEffect: string = '',
prefixFont: string = '',
displayOrder: string = 'icon-prefix-name'
displayOrder: string = 'icon-prefix-name',
borderId: number | null = 0
) {
super(RoomSessionUserFigureUpdateEvent.USER_FIGURE, session);
@@ -58,6 +60,7 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
this._prefixEffect = prefixEffect;
this._prefixFont = prefixFont;
this._displayOrder = displayOrder;
this._borderId = borderId;
}
public get roomIndex(): number {
@@ -123,4 +126,8 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent {
public get displayOrder(): string {
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());
}
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
+11
View File
@@ -20,6 +20,7 @@ export class RoomUserData implements IRoomUserData
private _stand: number;
private _overlay: number;
private _cardBackground: number;
private _borderId: number = 0;
private _webID: number = 0;
private _groupID: number = 0;
private _groupStatus: number = 0;
@@ -99,6 +100,16 @@ export class RoomUserData implements IRoomUserData
this._cardBackground = k;
}
public get borderId(): number
{
return this._borderId;
}
public set borderId(k: number)
{
this._borderId = k;
}
public get name(): string
{
return this._name;
+2 -1
View File
@@ -169,7 +169,7 @@ export class UserDataManager implements IUserDataManager
userData.displayOrder = displayOrder;
}
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);
@@ -179,6 +179,7 @@ export class UserDataManager implements IUserDataManager
userData.stand = stand;
userData.overlay = overlay;
userData.cardBackground = cardBackground;
userData.borderId = borderId;
}
public updateAchievementScore(roomIndex: number, score: number): void
@@ -66,6 +66,7 @@ export class RoomUsersHandler extends BaseHandler
userData.stand = user.stand;
userData.overlay = user.overlay;
userData.cardBackground = user.cardBackground;
userData.borderId = user.borderId;
userData.activityPoints = user.activityPoints;
userData.figure = user.figure;
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.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));
}