mirror of
https://github.com/billsonnn/nitro-renderer.git
synced 2025-02-20 11:42:36 +01:00
Merge branch 'main' into patch/room-invite-packet
This commit is contained in:
commit
81013da436
@ -1,9 +1,8 @@
|
||||
image: node:15.6
|
||||
image: node:16.3
|
||||
|
||||
stages:
|
||||
- test
|
||||
- compile
|
||||
|
||||
- test
|
||||
- compile
|
||||
|
||||
ESLinter:
|
||||
stage: test
|
||||
@ -16,11 +15,11 @@ ESLinter:
|
||||
- node_modules
|
||||
|
||||
Compile:
|
||||
stage: compile
|
||||
script:
|
||||
- npm i
|
||||
- npm run compile
|
||||
cache:
|
||||
key: ${CI_COMMIT_BRANCH}
|
||||
paths:
|
||||
- node_modules
|
||||
stage: compile
|
||||
script:
|
||||
- yarn install
|
||||
- yarn compile
|
||||
cache:
|
||||
key: ${CI_COMMIT_BRANCH}
|
||||
paths:
|
||||
- node_modules
|
||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@nitrots/nitro-renderer",
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.16",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@nitrots/nitro-renderer",
|
||||
"version": "1.1.6",
|
||||
"version": "1.1.16",
|
||||
"hasInstallScript": true,
|
||||
"license": "GPL-3.0",
|
||||
"dependencies": {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@nitrots/nitro-renderer",
|
||||
"description": "Javascript library for rendering Nitro in the browser using PixiJS",
|
||||
"version": "1.1.12",
|
||||
"version": "1.1.16",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
|
@ -1,5 +1,5 @@
|
||||
export class NitroVersion
|
||||
{
|
||||
public static RENDERER_VERSION: string = '1.1.12';
|
||||
public static RENDERER_VERSION: string = '1.1.16';
|
||||
public static UI_VERSION: string = '';
|
||||
}
|
||||
|
@ -56,6 +56,16 @@ export class NitroLogger implements INitroLogger
|
||||
}
|
||||
}
|
||||
|
||||
public static error(message: string, name: string = 'Nitro'): void
|
||||
{
|
||||
return this.log(message, name, 'error');
|
||||
}
|
||||
|
||||
public static warn(message: string, name: string = 'Nitro'): void
|
||||
{
|
||||
return this.log(message, name, 'warn');
|
||||
}
|
||||
|
||||
public static getTimestamp(): string
|
||||
{
|
||||
const now = Date.now();
|
||||
|
@ -159,7 +159,7 @@ export class ConfigurationManager extends NitroManager implements IConfiguration
|
||||
return (existing as T);
|
||||
}
|
||||
|
||||
public setValue(key: string, value: string): void
|
||||
public setValue<T>(key: string, value: T): void
|
||||
{
|
||||
this._definitions.set(key, value);
|
||||
}
|
||||
|
@ -4,6 +4,6 @@ export interface IConfigurationManager extends INitroManager
|
||||
{
|
||||
interpolate(value: string, regex?: RegExp): string;
|
||||
getValue<T>(key: string, value?: T): T;
|
||||
setValue(key: string, value: string): void;
|
||||
setValue<T>(key: string, value: T): void;
|
||||
definitions: Map<string, unknown>;
|
||||
}
|
||||
|
File diff suppressed because one or more lines are too long
@ -366,4 +366,7 @@ export class IncomingHeader
|
||||
public static GROUP_DEACTIVATE = 3129;
|
||||
public static PET_RESPECTED = 2788;
|
||||
public static PET_SUPPLEMENT = 3441;
|
||||
public static NOOBNESS_LEVEL = 3738;
|
||||
public static CAN_CREATE_ROOM_EVENT = 2599;
|
||||
public static FAVORITE_GROUP_UDPATE = 3403;
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { GroupBadgesParser } from '../../parser/group/GroupBadgesParser';
|
||||
|
||||
export class GroupBadgesEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, GroupBadgesParser);
|
||||
}
|
||||
|
||||
public getParser(): GroupBadgesParser
|
||||
{
|
||||
return this.parser as GroupBadgesParser;
|
||||
}
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
export * from './GroupBadgePartsEvent';
|
||||
export * from './GroupBadgesEvent';
|
||||
export * from './GroupBuyDataEvent';
|
||||
export * from './GroupConfirmMemberRemoveEvent';
|
||||
export * from './GroupInformationEvent';
|
||||
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { NoobnessLevelMessageParser } from '../../parser/handshake/NoobnessLevelMessageParser';
|
||||
|
||||
export class NoobnessLevelMessageEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, NoobnessLevelMessageParser);
|
||||
}
|
||||
|
||||
public getParser(): NoobnessLevelMessageParser
|
||||
{
|
||||
return this.parser as NoobnessLevelMessageParser;
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
export * from './NoobnessLevelMessageEvent';
|
@ -13,6 +13,7 @@ export * from './friendlist';
|
||||
export * from './game';
|
||||
export * from './generic';
|
||||
export * from './group';
|
||||
export * from './handshake';
|
||||
export * from './help';
|
||||
export * from './IncomingHeader';
|
||||
export * from './inventory';
|
||||
@ -49,6 +50,7 @@ export * from './room/session';
|
||||
export * from './room/unit';
|
||||
export * from './room/unit/chat';
|
||||
export * from './roomevents';
|
||||
export * from './roomsettings';
|
||||
export * from './security';
|
||||
export * from './sound';
|
||||
export * from './talent';
|
||||
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { CanCreateRoomEventParser } from '../../parser/navigator/CanCreateRoomEventParser';
|
||||
|
||||
export class CanCreateRoomEventEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, CanCreateRoomEventParser);
|
||||
}
|
||||
|
||||
public getParser(): CanCreateRoomEventParser
|
||||
{
|
||||
return this.parser as CanCreateRoomEventParser;
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
export * from './CanCreateRoomEventEvent';
|
||||
export * from './NavigatorCategoriesEvent';
|
||||
export * from './NavigatorCollapsedEvent';
|
||||
export * from './NavigatorEventCategoriesEvent';
|
||||
|
@ -1,16 +0,0 @@
|
||||
import { IMessageEvent } from '../../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../../core/communication/messages/MessageEvent';
|
||||
import { RoomSettingsUsersListParser } from '../../../parser/room/data/RoomSettingsUsersListParser';
|
||||
|
||||
export class RoomBannedUsersEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, RoomSettingsUsersListParser);
|
||||
}
|
||||
|
||||
public getParser(): RoomSettingsUsersListParser
|
||||
{
|
||||
return this.parser as RoomSettingsUsersListParser;
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
import { IMessageEvent } from '../../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../../core/communication/messages/MessageEvent';
|
||||
import { RoomSettingsUsersListParser } from '../../../parser/room/data/RoomSettingsUsersListParser';
|
||||
|
||||
export class RoomUsersWithRightsEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, RoomSettingsUsersListParser);
|
||||
}
|
||||
|
||||
public getParser(): RoomSettingsUsersListParser
|
||||
{
|
||||
return this.parser as RoomSettingsUsersListParser;
|
||||
}
|
||||
}
|
@ -1,5 +1,4 @@
|
||||
export * from './GetGuestRoomResultEvent';
|
||||
export * from './RoomBannedUsersEvent';
|
||||
export * from './RoomChatSettingsEvent';
|
||||
export * from './RoomEntryInfoMessageEvent';
|
||||
export * from './RoomScoreEvent';
|
||||
@ -7,4 +6,3 @@ export * from './RoomSettingsErrorEvent';
|
||||
export * from './RoomSettingsEvent';
|
||||
export * from './RoomSettingsSavedEvent';
|
||||
export * from './RoomSettingsUpdatedEvent';
|
||||
export * from './RoomUsersWithRightsEvent';
|
||||
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../../core/communication/messages/MessageEvent';
|
||||
import { FavoriteMembershipUpdateMessageParser } from '../../../parser/room/engine/FavoriteMembershipUpdateMessageParser';
|
||||
|
||||
export class FavoriteMembershipUpdateMessageEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, FavoriteMembershipUpdateMessageParser);
|
||||
}
|
||||
|
||||
public getParser(): FavoriteMembershipUpdateMessageParser
|
||||
{
|
||||
return this.parser as FavoriteMembershipUpdateMessageParser;
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IFlatUser } from './IFlatUser';
|
||||
|
||||
export class BannedUserData implements IFlatUser
|
||||
{
|
||||
private _userId: number;
|
||||
private _userName: string;
|
||||
|
||||
constructor(wrapper: IMessageDataWrapper)
|
||||
{
|
||||
this._userId = wrapper.readInt();
|
||||
this._userName = wrapper.readString();
|
||||
}
|
||||
|
||||
public get userId(): number
|
||||
{
|
||||
return this._userId;
|
||||
}
|
||||
|
||||
public get userName(): string
|
||||
{
|
||||
return this._userName;
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { BannedUsersFromRoomParser } from '../../parser/roomsettings/BannedUsersFromRoomParser';
|
||||
|
||||
export class BannedUsersFromRoomEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, BannedUsersFromRoomParser);
|
||||
}
|
||||
|
||||
public getParser(): BannedUsersFromRoomParser
|
||||
{
|
||||
return this.parser as BannedUsersFromRoomParser;
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { FlatControllerAddedParser } from '../../parser/roomsettings/FlatControllerAddedParser';
|
||||
|
||||
export class FlatControllerAddedEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, FlatControllerAddedParser);
|
||||
}
|
||||
|
||||
public getParser(): FlatControllerAddedParser
|
||||
{
|
||||
return this.parser as FlatControllerAddedParser;
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IFlatUser } from './IFlatUser';
|
||||
|
||||
export class FlatControllerData implements IFlatUser
|
||||
{
|
||||
private _userId: number;
|
||||
private _userName: string;
|
||||
private _selected: boolean;
|
||||
|
||||
constructor(wrapper: IMessageDataWrapper)
|
||||
{
|
||||
this._userId = wrapper.readInt();
|
||||
this._userName = wrapper.readString();
|
||||
}
|
||||
|
||||
public get userId(): number
|
||||
{
|
||||
return this._userId;
|
||||
}
|
||||
|
||||
public get userName(): string
|
||||
{
|
||||
return this._userName;
|
||||
}
|
||||
|
||||
public get selected(): boolean
|
||||
{
|
||||
return this._selected;
|
||||
}
|
||||
|
||||
public set selected(selected: boolean)
|
||||
{
|
||||
this._selected = selected;
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { FlatControllerRemovedParser } from '../../parser/roomsettings/FlatControllerRemovedParser';
|
||||
|
||||
export class FlatControllerRemovedEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, FlatControllerRemovedParser);
|
||||
}
|
||||
|
||||
public getParser(): FlatControllerRemovedParser
|
||||
{
|
||||
return this.parser as FlatControllerRemovedParser;
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { FlatControllersParser } from '../../parser/roomsettings/FlatControllersParser';
|
||||
|
||||
export class FlatControllersEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, FlatControllersParser);
|
||||
}
|
||||
|
||||
public getParser(): FlatControllersParser
|
||||
{
|
||||
return this.parser as FlatControllersParser;
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
export interface IFlatUser
|
||||
{
|
||||
userId: number;
|
||||
userName: string;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
export * from './BannedUserData';
|
||||
export * from './BannedUsersFromRoomEvent';
|
||||
export * from './FlatControllerAddedEvent';
|
||||
export * from './FlatControllerData';
|
||||
export * from './FlatControllerRemovedEvent';
|
||||
export * from './FlatControllersEvent';
|
||||
export * from './IFlatUser';
|
@ -0,0 +1,16 @@
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { HabboGroupBadgesMessageParser } from '../../parser/user/HabboGroupBadgesMessageParser';
|
||||
|
||||
export class HabboGroupBadgesMessageEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
constructor(callBack: Function)
|
||||
{
|
||||
super(callBack, HabboGroupBadgesMessageParser);
|
||||
}
|
||||
|
||||
public getParser(): HabboGroupBadgesMessageParser
|
||||
{
|
||||
return this.parser as HabboGroupBadgesMessageParser;
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
import { PetRespectNotificationParser } from '../..';
|
||||
import { IMessageEvent } from '../../../../../core/communication/messages/IMessageEvent';
|
||||
import { MessageEvent } from '../../../../../core/communication/messages/MessageEvent';
|
||||
import { PetRespectNotificationParser } from '../../parser/user/PetRespectNotificationParser';
|
||||
|
||||
export class PetRespectNoficationEvent extends MessageEvent implements IMessageEvent
|
||||
{
|
||||
|
@ -2,6 +2,7 @@ export * from './access';
|
||||
export * from './ApproveNameMessageEvent';
|
||||
export * from './data';
|
||||
export * from './GuildMembershipsMessageEvent';
|
||||
export * from './HabboGroupBadgesMessageEvent';
|
||||
export * from './IgnoredUsersEvent';
|
||||
export * from './IgnoreResultEvent';
|
||||
export * from './InClientLinkEvent';
|
||||
|
@ -1,7 +1,6 @@
|
||||
export * from './GroupAdminGiveComposer';
|
||||
export * from './GroupAdminTakeComposer';
|
||||
export * from './GroupBadgePartsComposer';
|
||||
export * from './GroupBadgesComposer';
|
||||
export * from './GroupBuyComposer';
|
||||
export * from './GroupBuyDataComposer';
|
||||
export * from './GroupConfirmRemoveMemberComposer';
|
||||
|
@ -1,8 +1,8 @@
|
||||
import { IMessageComposer } from '../../../../../core/communication/messages/IMessageComposer';
|
||||
|
||||
export class GroupBadgesComposer implements IMessageComposer<ConstructorParameters<typeof GroupBadgesComposer>>
|
||||
export class GetHabboGroupBadgesMessageComposer implements IMessageComposer<ConstructorParameters<typeof GetHabboGroupBadgesMessageComposer>>
|
||||
{
|
||||
private _data: ConstructorParameters<typeof GroupBadgesComposer>;
|
||||
private _data: ConstructorParameters<typeof GetHabboGroupBadgesMessageComposer>;
|
||||
|
||||
constructor()
|
||||
{
|
@ -1,6 +1,7 @@
|
||||
export * from './ApproveNameMessageComposer';
|
||||
export * from './CatalogGroupsComposer';
|
||||
export * from './data';
|
||||
export * from './GetHabboGroupBadgesMessageComposer';
|
||||
export * from './inventory';
|
||||
export * from './ScrGetKickbackInfoMessageComposer';
|
||||
export * from './settings';
|
||||
|
@ -1,5 +1,4 @@
|
||||
export * from './GroupBadgePartsParser';
|
||||
export * from './GroupBadgesParser';
|
||||
export * from './GroupBuyDataParser';
|
||||
export * from './GroupConfirmMemberRemoveParser';
|
||||
export * from './GroupInformationParser';
|
||||
|
@ -0,0 +1,28 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IMessageParser } from '../../../../../core/communication/messages/IMessageParser';
|
||||
|
||||
export class NoobnessLevelMessageParser implements IMessageParser
|
||||
{
|
||||
private _noobnessLevel: number;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._noobnessLevel = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._noobnessLevel = wrapper.readInt();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get noobnessLevel(): number
|
||||
{
|
||||
return this._noobnessLevel;
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
export * from './NoobnessLevelMessageParser';
|
@ -14,6 +14,7 @@ export * from './friendlist';
|
||||
export * from './game';
|
||||
export * from './generic';
|
||||
export * from './group';
|
||||
export * from './handshake';
|
||||
export * from './help';
|
||||
export * from './inventory';
|
||||
export * from './landingview';
|
||||
@ -27,6 +28,7 @@ export * from './poll';
|
||||
export * from './quest';
|
||||
export * from './room';
|
||||
export * from './roomevents';
|
||||
export * from './roomsettings';
|
||||
export * from './security';
|
||||
export * from './sound';
|
||||
export * from './talent';
|
||||
|
@ -0,0 +1,36 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IMessageParser } from '../../../../../core/communication/messages/IMessageParser';
|
||||
|
||||
export class CanCreateRoomEventParser implements IMessageParser
|
||||
{
|
||||
private _canCreate: boolean;
|
||||
private _errorCode: number;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._canCreate = false;
|
||||
this._errorCode = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._canCreate = wrapper.readBoolean();
|
||||
this._errorCode = wrapper.readInt();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get canCreate(): boolean
|
||||
{
|
||||
return this._canCreate;
|
||||
}
|
||||
|
||||
public get errorCode(): number
|
||||
{
|
||||
return this._errorCode;
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
export * from './CanCreateRoomEventParser';
|
||||
export * from './NavigatorCategoriesParser';
|
||||
export * from './NavigatorCategoryDataParser';
|
||||
export * from './NavigatorCollapsedParser';
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IMessageDataWrapper } from '../../../../../../core';
|
||||
import { IMessageDataWrapper } from '../../../../../../core/communication/messages';
|
||||
|
||||
export class RoomDataParser
|
||||
{
|
||||
@ -12,7 +12,8 @@ export class RoomDataParser
|
||||
public static OPEN_STATE = 0;
|
||||
public static DOORBELL_STATE = 1;
|
||||
public static PASSWORD_STATE = 2;
|
||||
public static INVISIBLE_STATE = 4;
|
||||
public static INVISIBLE_STATE = 3;
|
||||
public static NOOB_STATE = 4;
|
||||
|
||||
private _roomId: number;
|
||||
private _roomName: string;
|
||||
@ -41,7 +42,7 @@ export class RoomDataParser
|
||||
private _adExpiresIn: number;
|
||||
private _allInRoomMuted: boolean;
|
||||
private _canMute: boolean;
|
||||
private _roomPicker: boolean;
|
||||
|
||||
private _officialRoomPicRef: string;
|
||||
|
||||
constructor(wrapper: IMessageDataWrapper)
|
||||
@ -81,7 +82,6 @@ export class RoomDataParser
|
||||
this._adExpiresIn = 0;
|
||||
this._allInRoomMuted = false;
|
||||
this._canMute = false;
|
||||
this._roomPicker = false;
|
||||
this._officialRoomPicRef = null;
|
||||
|
||||
return true;
|
||||
@ -279,16 +279,6 @@ export class RoomDataParser
|
||||
return this._displayAd;
|
||||
}
|
||||
|
||||
public get roomPicker(): boolean
|
||||
{
|
||||
return this._roomPicker;
|
||||
}
|
||||
|
||||
public set roomPicker(k: boolean)
|
||||
{
|
||||
this._roomPicker = k;
|
||||
}
|
||||
|
||||
public get canMute(): boolean
|
||||
{
|
||||
return this._canMute;
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '../../../../../../core';
|
||||
import { IMessageParser } from '../../../../../../././core/communication/messages/IMessageParser';
|
||||
import { IMessageDataWrapper } from '../../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { RoomChatSettings } from './RoomChatSettings';
|
||||
import { RoomDataParser } from './RoomDataParser';
|
||||
import { RoomModerationSettings } from './RoomModerationSettings';
|
||||
@ -7,8 +8,8 @@ export class RoomInfoParser implements IMessageParser
|
||||
{
|
||||
private _roomEnter: boolean;
|
||||
private _roomForward: boolean;
|
||||
private _staffPick: boolean;
|
||||
private _data: RoomDataParser;
|
||||
private _staffPick: boolean;
|
||||
private _isGroupMember: boolean;
|
||||
private _moderation: RoomModerationSettings;
|
||||
private _chat: RoomChatSettings;
|
||||
@ -17,8 +18,8 @@ export class RoomInfoParser implements IMessageParser
|
||||
{
|
||||
this._roomEnter = false;
|
||||
this._roomForward = false;
|
||||
this._staffPick = false;
|
||||
this._data = null;
|
||||
this._staffPick = false;
|
||||
this._isGroupMember = false;
|
||||
this._moderation = null;
|
||||
this._chat = null;
|
||||
@ -33,7 +34,7 @@ export class RoomInfoParser implements IMessageParser
|
||||
this._roomEnter = wrapper.readBoolean();
|
||||
this._data = new RoomDataParser(wrapper);
|
||||
this._roomForward = wrapper.readBoolean();
|
||||
this.data.roomPicker = wrapper.readBoolean();
|
||||
this._staffPick = wrapper.readBoolean();
|
||||
this._isGroupMember = wrapper.readBoolean();
|
||||
this.data.allInRoomMuted = wrapper.readBoolean();
|
||||
this._moderation = new RoomModerationSettings(wrapper);
|
||||
@ -58,6 +59,11 @@ export class RoomInfoParser implements IMessageParser
|
||||
return this._data;
|
||||
}
|
||||
|
||||
public get staffPick(): boolean
|
||||
{
|
||||
return this._staffPick;
|
||||
}
|
||||
|
||||
public get isGroupMember(): boolean
|
||||
{
|
||||
return this._isGroupMember;
|
||||
|
@ -9,4 +9,3 @@ export * from './RoomSettingsErrorParser';
|
||||
export * from './RoomSettingsParser';
|
||||
export * from './RoomSettingsSavedParser';
|
||||
export * from './RoomSettingsUpdatedParser';
|
||||
export * from './RoomSettingsUsersListParser';
|
||||
|
@ -0,0 +1,51 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '../../../../../../core';
|
||||
|
||||
export class FavoriteMembershipUpdateMessageParser implements IMessageParser
|
||||
{
|
||||
private _roomIndex: number;
|
||||
private _groupId: number;
|
||||
private _status: number;
|
||||
private _groupName: string;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._roomIndex = -1;
|
||||
this._groupId = -1;
|
||||
this._status = 0;
|
||||
this._groupName = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._roomIndex = wrapper.readInt();
|
||||
this._groupId = wrapper.readInt();
|
||||
this._status = wrapper.readInt();
|
||||
this._groupName = wrapper.readString();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get roomIndex(): number
|
||||
{
|
||||
return this._roomIndex;
|
||||
}
|
||||
|
||||
public get groupId(): number
|
||||
{
|
||||
return this._groupId;
|
||||
}
|
||||
|
||||
public get status(): number
|
||||
{
|
||||
return this._status;
|
||||
}
|
||||
|
||||
public get groupName(): string
|
||||
{
|
||||
return this._groupName;
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
export * from './FavoriteMembershipUpdateMessageParser';
|
||||
export * from './ObjectsDataUpdateParser';
|
||||
export * from './ObjectsRollingParser';
|
||||
export * from './RoomCreatedParser';
|
||||
|
@ -52,7 +52,7 @@ export class RoomUnitParser implements IMessageParser
|
||||
user.webID = id;
|
||||
user.userType = RoomObjectType.USER;
|
||||
user.sex = this.resolveSex(wrapper.readString());
|
||||
user.groupID = ('' + wrapper.readInt());
|
||||
user.groupID = wrapper.readInt();
|
||||
user.groupStatus = wrapper.readInt();
|
||||
user.groupName = wrapper.readString();
|
||||
|
||||
|
@ -15,7 +15,7 @@ export class UserMessageData
|
||||
private _custom: string = '';
|
||||
private _activityPoints: number = 0;
|
||||
private _webID: number = 0;
|
||||
private _groupID: string = '';
|
||||
private _groupID: number = 0;
|
||||
private _groupStatus: number = 0;
|
||||
private _groupName: string = '';
|
||||
private _subType: string = '';
|
||||
@ -192,16 +192,16 @@ export class UserMessageData
|
||||
}
|
||||
}
|
||||
|
||||
public get groupID(): string
|
||||
public get groupID(): number
|
||||
{
|
||||
return this._groupID;
|
||||
}
|
||||
|
||||
public set groupID(k: string)
|
||||
public set groupID(groupId: number)
|
||||
{
|
||||
if(!this._isReadOnly)
|
||||
{
|
||||
this._groupID = k;
|
||||
this._groupID = groupId;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,45 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IMessageParser } from '../../../../../core/communication/messages/IMessageParser';
|
||||
import { BannedUserData } from '../../incoming/roomsettings/BannedUserData';
|
||||
|
||||
export class BannedUsersFromRoomParser implements IMessageParser
|
||||
{
|
||||
private _roomId: number;
|
||||
private _bannedUsers: BannedUserData[];
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._roomId = 0;
|
||||
this._bannedUsers = [];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._roomId = wrapper.readInt();
|
||||
|
||||
let totalBans = wrapper.readInt();
|
||||
|
||||
while(totalBans > 0)
|
||||
{
|
||||
this._bannedUsers.push(new BannedUserData(wrapper));
|
||||
|
||||
totalBans--;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get roomId(): number
|
||||
{
|
||||
return this._roomId;
|
||||
}
|
||||
|
||||
public get bannedUsers(): BannedUserData[]
|
||||
{
|
||||
return this._bannedUsers;
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IMessageParser } from '../../../../../core/communication/messages/IMessageParser';
|
||||
import { FlatControllerData } from '../../incoming/roomsettings/FlatControllerData';
|
||||
|
||||
export class FlatControllerAddedParser implements IMessageParser
|
||||
{
|
||||
private _roomId: number;
|
||||
private _data: FlatControllerData;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._roomId = 0;
|
||||
this._data = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._roomId = wrapper.readInt();
|
||||
this._data = new FlatControllerData(wrapper);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get roomId(): number
|
||||
{
|
||||
return this._roomId;
|
||||
}
|
||||
|
||||
public get data(): FlatControllerData
|
||||
{
|
||||
return this._data;
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IMessageParser } from '../../../../../core/communication/messages/IMessageParser';
|
||||
|
||||
export class FlatControllerRemovedParser implements IMessageParser
|
||||
{
|
||||
private _roomId: number;
|
||||
private _userId: number;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._roomId = 0;
|
||||
this._userId = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._roomId = wrapper.readInt();
|
||||
this._userId = wrapper.readInt();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get roomId(): number
|
||||
{
|
||||
return this._roomId;
|
||||
}
|
||||
|
||||
public get userId(): number
|
||||
{
|
||||
return this._userId;
|
||||
}
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '../../../../../../core';
|
||||
import { IMessageDataWrapper } from '../../../../../core/communication/messages/IMessageDataWrapper';
|
||||
import { IMessageParser } from '../../../../../core/communication/messages/IMessageParser';
|
||||
|
||||
export class RoomSettingsUsersListParser implements IMessageParser
|
||||
export class FlatControllersParser implements IMessageParser
|
||||
{
|
||||
private _roomId: number;
|
||||
private _users: Map<number, string>;
|
||||
@ -27,6 +28,7 @@ export class RoomSettingsUsersListParser implements IMessageParser
|
||||
const name = wrapper.readString();
|
||||
|
||||
this._users.set(id, name);
|
||||
|
||||
usersCount--;
|
||||
}
|
||||
|
@ -0,0 +1,4 @@
|
||||
export * from './BannedUsersFromRoomParser';
|
||||
export * from './FlatControllerAddedParser';
|
||||
export * from './FlatControllerRemovedParser';
|
||||
export * from './FlatControllersParser';
|
@ -1,6 +1,6 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '../../../../../core';
|
||||
|
||||
export class GroupBadgesParser implements IMessageParser
|
||||
export class HabboGroupBadgesMessageParser implements IMessageParser
|
||||
{
|
||||
private _badges: Map<number, string>;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { PetData } from '..';
|
||||
import { PetType } from '../../../..';
|
||||
import { IMessageDataWrapper, IMessageParser } from '../../../../../core';
|
||||
import { PetType } from '../../../../avatar/pets/PetType';
|
||||
import { PetData } from '../inventory/pets/PetData';
|
||||
|
||||
export class PetRespectNotificationParser implements IMessageParser
|
||||
{
|
||||
|
@ -1,6 +1,7 @@
|
||||
export * from './access';
|
||||
export * from './ApproveNameResultParser';
|
||||
export * from './data';
|
||||
export * from './HabboGroupBadgesMessageParser';
|
||||
export * from './HabboGroupEntryData';
|
||||
export * from './IgnoredUsersParser';
|
||||
export * from './IgnoreResultParser';
|
||||
|
@ -1964,7 +1964,7 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato
|
||||
return true;
|
||||
}
|
||||
|
||||
public updateRoomObjectFloor(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, state: number, data: IObjectData, extra: number = NaN): boolean
|
||||
public updateRoomObjectFloor(roomId: number, objectId: number, location: IVector3D, direction: IVector3D, state: number, data: IObjectData, extra: number = null): boolean
|
||||
{
|
||||
const object = this.getRoomObjectFloor(roomId, objectId);
|
||||
|
||||
|
@ -7,7 +7,7 @@ export class ObjectDataUpdateMessage extends RoomObjectUpdateMessage
|
||||
private _data: IObjectData;
|
||||
private _extra: number;
|
||||
|
||||
constructor(state: number, data: IObjectData, extra: number = NaN)
|
||||
constructor(state: number, data: IObjectData, extra: number = null)
|
||||
{
|
||||
super(null, null);
|
||||
|
||||
@ -30,4 +30,4 @@ export class ObjectDataUpdateMessage extends RoomObjectUpdateMessage
|
||||
{
|
||||
return this._extra;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -67,11 +67,21 @@ export class ObjectDataBase implements IObjectData
|
||||
return this._uniqueNumber;
|
||||
}
|
||||
|
||||
public set uniqueNumber(number: number)
|
||||
{
|
||||
this._uniqueNumber = number;
|
||||
}
|
||||
|
||||
public get uniqueSeries(): number
|
||||
{
|
||||
return this._uniqueSeries;
|
||||
}
|
||||
|
||||
public set uniqueSeries(series: number)
|
||||
{
|
||||
this._uniqueSeries = series;
|
||||
}
|
||||
|
||||
public get rarityLevel(): number
|
||||
{
|
||||
return -1;
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { FurnitureBadgeDisplayLogic } from '.';
|
||||
import { ObjectSelectedMessage } from '../../..';
|
||||
import { RoomObjectEvent } from '../../../../..';
|
||||
import { RoomObjectEvent } from '../../../../../room/events/RoomObjectEvent';
|
||||
import { RoomObjectUpdateMessage } from '../../../../../room/messages/RoomObjectUpdateMessage';
|
||||
import { RoomObjectBadgeAssetEvent } from '../../../events/RoomObjectBadgeAssetEvent';
|
||||
import { RoomObjectWidgetRequestEvent } from '../../../events/RoomObjectWidgetRequestEvent';
|
||||
import { ObjectGroupBadgeUpdateMessage } from '../../../messages/ObjectGroupBadgeUpdateMessage';
|
||||
import { ObjectSelectedMessage } from '../../../messages/ObjectSelectedMessage';
|
||||
import { RoomObjectVariable } from '../../RoomObjectVariable';
|
||||
import { FurnitureBadgeDisplayLogic } from './FurnitureBadgeDisplayLogic';
|
||||
|
||||
export class FurnitureAchievementResolutionLogic extends FurnitureBadgeDisplayLogic
|
||||
{
|
||||
|
@ -6,6 +6,7 @@ import { FurnitureMultiStateLogic } from './FurnitureMultiStateLogic';
|
||||
export class FurnitureIceStormLogic extends FurnitureMultiStateLogic
|
||||
{
|
||||
private _nextState: number;
|
||||
private _nextStateExtra: number;
|
||||
private _nextStateTimestamp: number;
|
||||
|
||||
constructor()
|
||||
@ -26,7 +27,7 @@ export class FurnitureIceStormLogic extends FurnitureMultiStateLogic
|
||||
|
||||
data.setString(this._nextState.toString());
|
||||
|
||||
super.processUpdateMessage(new ObjectDataUpdateMessage(this._nextState, data));
|
||||
super.processUpdateMessage(new ObjectDataUpdateMessage(this._nextState, data, this._nextStateExtra));
|
||||
}
|
||||
|
||||
super.update(totalTimeRunning);
|
||||
@ -34,7 +35,12 @@ export class FurnitureIceStormLogic extends FurnitureMultiStateLogic
|
||||
|
||||
public processUpdateMessage(message: RoomObjectUpdateMessage): void
|
||||
{
|
||||
if(message instanceof ObjectDataUpdateMessage) return this.processUpdate(message);
|
||||
if(message instanceof ObjectDataUpdateMessage)
|
||||
{
|
||||
this.processUpdate(message);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
super.processUpdateMessage(message);
|
||||
}
|
||||
@ -43,8 +49,8 @@ export class FurnitureIceStormLogic extends FurnitureMultiStateLogic
|
||||
{
|
||||
if(!message) return;
|
||||
|
||||
const state = message.state / 1000;
|
||||
const time = message.state % 1000;
|
||||
const state = ~~(message.state / 1000);
|
||||
const time = ~~(message.state % 1000);
|
||||
|
||||
if(!time)
|
||||
{
|
||||
@ -54,12 +60,13 @@ export class FurnitureIceStormLogic extends FurnitureMultiStateLogic
|
||||
|
||||
data.setString(state.toString());
|
||||
|
||||
super.processUpdateMessage(new ObjectDataUpdateMessage(state, data));
|
||||
super.processUpdateMessage(new ObjectDataUpdateMessage(state, data, message.extra));
|
||||
}
|
||||
else
|
||||
{
|
||||
this._nextState = state;
|
||||
this._nextStateExtra = message.extra;
|
||||
this._nextStateTimestamp = this.time + time;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -254,7 +254,7 @@ export class FurnitureLogic extends MovingObjectLogic
|
||||
|
||||
if(message.data) message.data.writeRoomObjectModel(this.object.model);
|
||||
|
||||
if(!isNaN(message.extra)) this.object.model.setValue(RoomObjectVariable.FURNITURE_EXTRAS, message.extra.toString());
|
||||
if(message.extra !== null) this.object.model.setValue(RoomObjectVariable.FURNITURE_EXTRAS, message.extra.toString());
|
||||
|
||||
this.object.model.setValue(RoomObjectVariable.FURNITURE_STATE_UPDATE_TIME, this.lastUpdateTime);
|
||||
}
|
||||
|
@ -1,8 +1,9 @@
|
||||
import { MovingObjectLogic } from '..';
|
||||
import { LegacyDataType } from '../..';
|
||||
import { ObjectDataUpdateMessage, ObjectMoveUpdateMessage } from '../../..';
|
||||
import { Vector3d } from '../../../../..';
|
||||
import { RoomObjectUpdateMessage } from '../../../../../room';
|
||||
import { RoomObjectUpdateMessage } from '../../../../../room/messages/RoomObjectUpdateMessage';
|
||||
import { Vector3d } from '../../../../../room/utils/Vector3d';
|
||||
import { ObjectDataUpdateMessage } from '../../../messages/ObjectDataUpdateMessage';
|
||||
import { ObjectMoveUpdateMessage } from '../../../messages/ObjectMoveUpdateMessage';
|
||||
import { LegacyDataType } from '../../data/type/LegacyDataType';
|
||||
import { MovingObjectLogic } from '../MovingObjectLogic';
|
||||
import { FurnitureMultiStateLogic } from './FurnitureMultiStateLogic';
|
||||
|
||||
export class FurniturePushableLogic extends FurnitureMultiStateLogic
|
||||
|
@ -24,6 +24,8 @@ export class PetSizeData extends AnimationSizeData
|
||||
|
||||
if(postures.defaultPosture && postures.defaultPosture.length) this._defaultPosture = postures.defaultPosture;
|
||||
|
||||
if(!postures.postures) return false;
|
||||
|
||||
for(const posture of postures.postures)
|
||||
{
|
||||
if(this._posturesToAnimations.get(posture.id)) continue;
|
||||
|
@ -1,7 +1,8 @@
|
||||
import { IDisposable } from '../../core/common/disposable/IDisposable';
|
||||
import { IMessageEvent } from '../../core/communication/messages/IMessageEvent';
|
||||
import { GroupBadgesEvent } from '../communication/messages/incoming/group/GroupBadgesEvent';
|
||||
import { GroupBadgesComposer } from '../communication/messages/outgoing/group/GroupBadgesComposer';
|
||||
import { RoomReadyMessageEvent } from '../communication';
|
||||
import { HabboGroupBadgesMessageEvent } from '../communication/messages/incoming/user/HabboGroupBadgesMessageEvent';
|
||||
import { GetHabboGroupBadgesMessageComposer } from '../communication/messages/outgoing/user/GetHabboGroupBadgesMessageComposer';
|
||||
import { SessionDataManager } from './SessionDataManager';
|
||||
|
||||
export class GroupInformationManager implements IDisposable
|
||||
@ -22,7 +23,8 @@ export class GroupInformationManager implements IDisposable
|
||||
if(this._sessionDataManager && this._sessionDataManager.communication)
|
||||
{
|
||||
this._messages = [
|
||||
new GroupBadgesEvent(this.onGroupBadgesEvent.bind(this))
|
||||
new RoomReadyMessageEvent(this.onRoomReadyMessageEvent.bind(this)),
|
||||
new HabboGroupBadgesMessageEvent(this.onGroupBadgesEvent.bind(this))
|
||||
];
|
||||
|
||||
for(const message of this._messages) this._sessionDataManager.communication.registerMessageEvent(message);
|
||||
@ -44,20 +46,16 @@ export class GroupInformationManager implements IDisposable
|
||||
this._sessionDataManager = null;
|
||||
}
|
||||
|
||||
public requestGroupBadges(): void
|
||||
private onRoomReadyMessageEvent(event: RoomReadyMessageEvent): void
|
||||
{
|
||||
this._sessionDataManager.send(new GroupBadgesComposer());
|
||||
this._sessionDataManager.send(new GetHabboGroupBadgesMessageComposer());
|
||||
}
|
||||
|
||||
private onGroupBadgesEvent(event: GroupBadgesEvent): void
|
||||
private onGroupBadgesEvent(event: HabboGroupBadgesMessageEvent): void
|
||||
{
|
||||
if(!event) return;
|
||||
|
||||
const parser = event.getParser();
|
||||
|
||||
if(!parser) return;
|
||||
|
||||
this._groupBadges = parser.badges;
|
||||
for(const [ groupId, badgeId ] of parser.badges.entries()) this._groupBadges.set(groupId, badgeId);
|
||||
}
|
||||
|
||||
public getGroupBadge(groupId: number): string
|
||||
|
@ -36,7 +36,6 @@ export interface ISessionDataManager extends INitroManager
|
||||
userName: string;
|
||||
figure: string;
|
||||
gender: string;
|
||||
isGodMode: boolean;
|
||||
realName: string;
|
||||
ignoredUsersManager: IgnoredUsersManager;
|
||||
groupInformationManager: GroupInformationManager;
|
||||
@ -47,6 +46,8 @@ export interface ISessionDataManager extends INitroManager
|
||||
clubLevel: number;
|
||||
securityLevel: number;
|
||||
isAmbassador: boolean;
|
||||
isNoob: boolean;
|
||||
isRealNoob: boolean;
|
||||
isSystemOpen: boolean;
|
||||
isSystemShutdown: boolean;
|
||||
isAuthenticHabbo: boolean;
|
||||
|
@ -8,7 +8,7 @@ export class RoomUserData
|
||||
private _custom: string = '';
|
||||
private _activityPoints: number;
|
||||
private _webID: number = 0;
|
||||
private _groupID: string = '';
|
||||
private _groupID: number = 0;
|
||||
private _groupStatus: number = 0;
|
||||
private _groupName: string = '';
|
||||
private _ownerId: number = 0;
|
||||
@ -104,14 +104,14 @@ export class RoomUserData
|
||||
this._webID = k;
|
||||
}
|
||||
|
||||
public get guildId(): string
|
||||
public get groupId(): number
|
||||
{
|
||||
return this._groupID;
|
||||
}
|
||||
|
||||
public set guildId(k: string)
|
||||
public set groupId(groupId: number)
|
||||
{
|
||||
this._groupID = k;
|
||||
this._groupID = groupId;
|
||||
}
|
||||
|
||||
public get groupName(): string
|
||||
|
@ -6,6 +6,7 @@ import { FigureUpdateEvent, MysteryBoxKeysEvent } from '../communication';
|
||||
import { INitroCommunicationManager } from '../communication/INitroCommunicationManager';
|
||||
import { AvailabilityStatusMessageEvent } from '../communication/messages/incoming/availability/AvailabilityStatusMessageEvent';
|
||||
import { ChangeUserNameResultMessageEvent } from '../communication/messages/incoming/avatar/ChangeUserNameResultMessageEvent';
|
||||
import { NoobnessLevelMessageEvent } from '../communication/messages/incoming/handshake/NoobnessLevelMessageEvent';
|
||||
import { RoomReadyMessageEvent } from '../communication/messages/incoming/room/mapping/RoomReadyMessageEvent';
|
||||
import { UserPermissionsEvent } from '../communication/messages/incoming/user/access/UserPermissionsEvent';
|
||||
import { UserInfoEvent } from '../communication/messages/incoming/user/data/UserInfoEvent';
|
||||
@ -19,6 +20,7 @@ import { NitroSettingsEvent } from '../events/NitroSettingsEvent';
|
||||
import { Nitro } from '../Nitro';
|
||||
import { HabboWebTools } from '../utils/HabboWebTools';
|
||||
import { BadgeImageManager } from './badge/BadgeImageManager';
|
||||
import { NoobnessLevelEnum } from './enum/NoobnessLevelEnum';
|
||||
import { SecurityLevel } from './enum/SecurityLevel';
|
||||
import { MysteryBoxKeysUpdateEvent } from './events';
|
||||
import { SessionDataPreferencesEvent } from './events/SessionDataPreferencesEvent';
|
||||
@ -53,6 +55,7 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
private _clubLevel: number;
|
||||
private _securityLevel: number;
|
||||
private _isAmbassador: boolean;
|
||||
private _noobnessLevel: number;
|
||||
|
||||
private _systemOpen: boolean;
|
||||
private _systemShutdown: boolean;
|
||||
@ -89,6 +92,7 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
this._clubLevel = 0;
|
||||
this._securityLevel = 0;
|
||||
this._isAmbassador = false;
|
||||
this._noobnessLevel = -1;
|
||||
|
||||
this._systemOpen = false;
|
||||
this._systemShutdown = false;
|
||||
@ -114,7 +118,6 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
this.onProductDataReadyEvent = this.onProductDataReadyEvent.bind(this);
|
||||
this.onNitroSettingsEvent = this.onNitroSettingsEvent.bind(this);
|
||||
}
|
||||
groupInformationManager: GroupInformationManager;
|
||||
|
||||
protected onInit(): void
|
||||
{
|
||||
@ -134,6 +137,7 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
this._communication.registerMessageEvent(new RoomReadyMessageEvent(this.onRoomModelNameEvent.bind(this)));
|
||||
this._communication.registerMessageEvent(new InClientLinkEvent(this.onInClientLinkEvent.bind(this)));
|
||||
this._communication.registerMessageEvent(new MysteryBoxKeysEvent(this.onMysteryBoxKeysEvent.bind(this)));
|
||||
this._communication.registerMessageEvent(new NoobnessLevelMessageEvent(this.onNoobnessLevelMessageEvent.bind(this)));
|
||||
|
||||
Nitro.instance.events.addEventListener(NitroSettingsEvent.SETTINGS_UPDATED, this.onNitroSettingsEvent);
|
||||
}
|
||||
@ -398,6 +402,16 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
this.events.dispatchEvent(new MysteryBoxKeysUpdateEvent(parser.boxColor, parser.keyColor));
|
||||
}
|
||||
|
||||
private onNoobnessLevelMessageEvent(event: NoobnessLevelMessageEvent): void
|
||||
{
|
||||
this._noobnessLevel = event.getParser().noobnessLevel;
|
||||
|
||||
if(this._noobnessLevel !== NoobnessLevelEnum.OLD_IDENTITY)
|
||||
{
|
||||
Nitro.instance.core.configuration.setValue<number>('new.identity', 1);
|
||||
}
|
||||
}
|
||||
|
||||
private onNitroSettingsEvent(event: NitroSettingsEvent): void
|
||||
{
|
||||
this._isRoomCameraFollowDisabled = event.cameraFollow;
|
||||
@ -599,6 +613,11 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
return this._ignoredUsersManager;
|
||||
}
|
||||
|
||||
public get groupInformationManager(): GroupInformationManager
|
||||
{
|
||||
return this._groupInformationManager;
|
||||
}
|
||||
|
||||
public get respectsReceived(): number
|
||||
{
|
||||
return this._respectsReceived;
|
||||
@ -634,6 +653,16 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
return this._isAmbassador;
|
||||
}
|
||||
|
||||
public get isNoob(): boolean
|
||||
{
|
||||
return (this._noobnessLevel !== NoobnessLevelEnum.OLD_IDENTITY);
|
||||
}
|
||||
|
||||
public get isRealNoob(): boolean
|
||||
{
|
||||
return (this._noobnessLevel === NoobnessLevelEnum.REAL_NOOB);
|
||||
}
|
||||
|
||||
public get isSystemOpen(): boolean
|
||||
{
|
||||
return this._systemOpen;
|
||||
@ -654,11 +683,6 @@ export class SessionDataManager extends NitroManager implements ISessionDataMana
|
||||
return (this._securityLevel >= SecurityLevel.MODERATOR);
|
||||
}
|
||||
|
||||
public get isGodMode(): boolean
|
||||
{
|
||||
return this.securityLevel >= SecurityLevel.MODERATOR;
|
||||
}
|
||||
|
||||
public get isCameraFollowDisabled(): boolean
|
||||
{
|
||||
return this._isRoomCameraFollowDisabled;
|
||||
|
6
src/nitro/session/enum/NoobnessLevelEnum.ts
Normal file
6
src/nitro/session/enum/NoobnessLevelEnum.ts
Normal file
@ -0,0 +1,6 @@
|
||||
export class NoobnessLevelEnum
|
||||
{
|
||||
public static OLD_IDENTITY: number = 0;
|
||||
public static NEW_IDENTITY: number = 1;
|
||||
public static REAL_NOOB: number = 2;
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
export * from './GenericErrorEnum';
|
||||
export * from './NoobnessLevelEnum';
|
||||
export * from './RoomControllerLevel';
|
||||
export * from './RoomTradingLevelEnum';
|
||||
export * from './SecurityLevel';
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { IRoomSession } from '../IRoomSession';
|
||||
import { RoomSessionEvent } from './RoomSessionEvent';
|
||||
|
||||
export class RoomSessionFavouriteGroupUpdateEvent extends RoomSessionEvent
|
||||
export class RoomSessionFavoriteGroupUpdateEvent extends RoomSessionEvent
|
||||
{
|
||||
public static FAVOURITE_GROUP_UPDATE: string = 'RSFGUE_FAVOURITE_GROUP_UPDATE';
|
||||
|
||||
@ -10,14 +10,14 @@ export class RoomSessionFavouriteGroupUpdateEvent extends RoomSessionEvent
|
||||
private _habboGroupName: string;
|
||||
private _status: number;
|
||||
|
||||
constructor(k: IRoomSession, _arg_2: number, _arg_3: number, _arg_4: number, _arg_5: string)
|
||||
constructor(session: IRoomSession, roomIndex: number, groupId: number, status: number, groupName: string)
|
||||
{
|
||||
super(RoomSessionFavouriteGroupUpdateEvent.FAVOURITE_GROUP_UPDATE, k);
|
||||
super(RoomSessionFavoriteGroupUpdateEvent.FAVOURITE_GROUP_UPDATE, session);
|
||||
|
||||
this._roomIndex = _arg_2;
|
||||
this._habboGroupId = _arg_3;
|
||||
this._habboGroupName = _arg_5;
|
||||
this._status = _arg_4;
|
||||
this._roomIndex = roomIndex;
|
||||
this._habboGroupId = groupId;
|
||||
this._habboGroupName = groupName;
|
||||
this._status = status;
|
||||
}
|
||||
|
||||
public get roomIndex(): number
|
@ -5,26 +5,26 @@ export class RoomSessionUserFigureUpdateEvent extends RoomSessionEvent
|
||||
{
|
||||
public static USER_FIGURE: string = 'RSUBE_FIGURE';
|
||||
|
||||
private _userId: number = 0;
|
||||
private _roomIndex: number = 0;
|
||||
private _figure: string = '';
|
||||
private _gender: string = '';
|
||||
private _customInfo: string = '';
|
||||
private _achievementScore: number;
|
||||
|
||||
constructor(session: IRoomSession, userId: number, figure: string, gender: string, customInfo: string, achievementScore: number)
|
||||
constructor(session: IRoomSession, roomIndex: number, figure: string, gender: string, customInfo: string, achievementScore: number)
|
||||
{
|
||||
super(RoomSessionUserFigureUpdateEvent.USER_FIGURE, session);
|
||||
|
||||
this._userId = userId;
|
||||
this._roomIndex = roomIndex;
|
||||
this._figure = figure;
|
||||
this._gender = gender;
|
||||
this._customInfo = customInfo;
|
||||
this._achievementScore = achievementScore;
|
||||
}
|
||||
|
||||
public get userId(): number
|
||||
public get roomIndex(): number
|
||||
{
|
||||
return this._userId;
|
||||
return this._roomIndex;
|
||||
}
|
||||
|
||||
public get figure(): string
|
||||
|
@ -10,7 +10,7 @@ export * from './RoomSessionDimmerPresetsEventPresetItem';
|
||||
export * from './RoomSessionDoorbellEvent';
|
||||
export * from './RoomSessionErrorMessageEvent';
|
||||
export * from './RoomSessionEvent';
|
||||
export * from './RoomSessionFavouriteGroupUpdateEvent';
|
||||
export * from './RoomSessionFavoriteGroupUpdateEvent';
|
||||
export * from './RoomSessionFriendRequestEvent';
|
||||
export * from './RoomSessionNestBreedingSuccessEvent';
|
||||
export * from './RoomSessionPetBreedingEvent';
|
||||
|
@ -1,4 +1,3 @@
|
||||
import { PetSupplementedNotificationEvent, PetSupplementTypeEnum } from '../..';
|
||||
import { IConnection } from '../../../core/communication/connections/IConnection';
|
||||
import { FloodControlEvent } from '../../communication/messages/incoming/room/unit/chat/FloodControlEvent';
|
||||
import { RemainingMuteEvent } from '../../communication/messages/incoming/room/unit/chat/RemainingMuteEvent';
|
||||
@ -7,6 +6,8 @@ import { RoomUnitChatShoutEvent } from '../../communication/messages/incoming/ro
|
||||
import { RoomUnitChatWhisperEvent } from '../../communication/messages/incoming/room/unit/chat/RoomUnitChatWhisperEvent';
|
||||
import { RoomUnitHandItemReceivedEvent } from '../../communication/messages/incoming/room/unit/RoomUnitHandItemReceivedEvent';
|
||||
import { PetRespectNoficationEvent } from '../../communication/messages/incoming/user/PetRespectNoficationEvent';
|
||||
import { PetSupplementedNotificationEvent } from '../../communication/messages/incoming/user/PetSupplementedNotificationEvent';
|
||||
import { PetSupplementTypeEnum } from '../../communication/messages/incoming/user/PetSupplementTypeEnum';
|
||||
import { RespectReceivedEvent } from '../../communication/messages/incoming/user/RespectReceivedEvent';
|
||||
import { SystemChatStyleEnum } from '../../ui/widget/enums/SystemChatStyleEnum';
|
||||
import { RoomSessionChatEvent } from '../events/RoomSessionChatEvent';
|
||||
|
@ -4,6 +4,7 @@ import { NewFriendRequestEvent } from '../../communication/messages/incoming/fri
|
||||
import { BotErrorEvent } from '../../communication/messages/incoming/notifications/BotErrorEvent';
|
||||
import { PetPlacingErrorEvent } from '../../communication/messages/incoming/notifications/PetPlacingErrorEvent';
|
||||
import { RoomDoorbellEvent } from '../../communication/messages/incoming/room/access/doorbell/RoomDoorbellEvent';
|
||||
import { FavoriteMembershipUpdateMessageEvent } from '../../communication/messages/incoming/room/engine/FavoriteMembershipUpdateMessageEvent';
|
||||
import { PetInfoEvent } from '../../communication/messages/incoming/room/pet/PetInfoEvent';
|
||||
import { PetStatusUpdateEvent } from '../../communication/messages/incoming/room/pet/PetStatusUpdateEvent';
|
||||
import { RoomUnitDanceEvent } from '../../communication/messages/incoming/room/unit/RoomUnitDanceEvent';
|
||||
@ -16,6 +17,7 @@ import { RoomSessionPetFigureUpdateEvent, RoomSessionPetStatusUpdateEvent, RoomS
|
||||
import { RoomSessionDanceEvent } from '../events/RoomSessionDanceEvent';
|
||||
import { RoomSessionDoorbellEvent } from '../events/RoomSessionDoorbellEvent';
|
||||
import { RoomSessionErrorMessageEvent } from '../events/RoomSessionErrorMessageEvent';
|
||||
import { RoomSessionFavoriteGroupUpdateEvent } from '../events/RoomSessionFavoriteGroupUpdateEvent';
|
||||
import { RoomSessionFriendRequestEvent } from '../events/RoomSessionFriendRequestEvent';
|
||||
import { RoomSessionPetInfoUpdateEvent } from '../events/RoomSessionPetInfoUpdateEvent';
|
||||
import { RoomSessionUserBadgesEvent } from '../events/RoomSessionUserBadgesEvent';
|
||||
@ -44,6 +46,7 @@ export class RoomUsersHandler extends BaseHandler
|
||||
connection.addMessageEvent(new PetFigureUpdateEvent(this.onPetFigureUpdateEvent.bind(this)));
|
||||
connection.addMessageEvent(new PetPlacingErrorEvent(this.onPetPlacingError.bind(this)));
|
||||
connection.addMessageEvent(new BotErrorEvent(this.onBotError.bind(this)));
|
||||
connection.addMessageEvent(new FavoriteMembershipUpdateMessageEvent(this.onFavoriteMembershipUpdateMessageEvent.bind(this)));
|
||||
}
|
||||
|
||||
private onRoomUnitEvent(event: RoomUnitEvent): void
|
||||
@ -72,7 +75,7 @@ export class RoomUsersHandler extends BaseHandler
|
||||
userData.figure = user.figure;
|
||||
userData.type = user.userType;
|
||||
userData.webID = user.webID;
|
||||
userData.guildId = user.groupID;
|
||||
userData.groupId = user.groupID;
|
||||
userData.groupName = user.groupName;
|
||||
userData.groupStatus = user.groupStatus;
|
||||
userData.sex = user.sex;
|
||||
@ -374,4 +377,23 @@ export class RoomUsersHandler extends BaseHandler
|
||||
|
||||
this.listener.events.dispatchEvent(new RoomSessionErrorMessageEvent(type, session));
|
||||
}
|
||||
|
||||
private onFavoriteMembershipUpdateMessageEvent(event: FavoriteMembershipUpdateMessageEvent): void
|
||||
{
|
||||
if(!this.listener) return;
|
||||
|
||||
const parser = event.getParser();
|
||||
const session = this.listener.getSession(this.roomId);
|
||||
|
||||
if(!session) return;
|
||||
|
||||
const userData = session.userDataManager.getUserDataByIndex(parser.roomIndex);
|
||||
|
||||
if(!userData) return;
|
||||
|
||||
userData.groupId = parser.groupId;
|
||||
userData.groupName = parser.groupName;
|
||||
|
||||
this.listener.events.dispatchEvent(new RoomSessionFavoriteGroupUpdateEvent(session, parser.roomIndex, parser.groupId, parser.status, parser.groupName));
|
||||
}
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ export class MusicManager extends NitroManager implements IMusicManager
|
||||
|
||||
private onEvent(event: NitroEvent): void
|
||||
{
|
||||
console.log('music manager', event);
|
||||
|
||||
}
|
||||
|
||||
private onTraxSongInfoMessageEvent(event: TraxSongInfoMessageEvent): void
|
||||
|
Loading…
x
Reference in New Issue
Block a user