From b75b9d9dbe6a87e3b545db92604d25da261c97b8 Mon Sep 17 00:00:00 2001 From: simoleo89 Date: Sat, 6 Jun 2026 15:26:23 +0200 Subject: [PATCH] feat(furni-editor): import-text packet (10049) for Habbo furnidata fetch Add FurniEditorImportTextComposer (outgoing 10049) + FurniEditorImportText ResultEvent/Parser (incoming 10049: found, name, description, classname), register both in NitroMessages and export from the furnieditor barrels. Lets the editor pull official names/descriptions from a server-fetched Habbo furnidata URL. --- .../src/messages/incoming/IncomingHeader.ts | 1 + .../FurniEditorImportTextResultEvent.ts | 16 ++++++ .../messages/incoming/furnieditor/index.ts | 1 + .../src/messages/outgoing/OutgoingHeader.ts | 1 + .../FurniEditorImportTextComposer.ts | 21 ++++++++ .../messages/outgoing/furnieditor/index.ts | 1 + ...urniEditorImportTextResultMessageParser.ts | 51 +++++++++++++++++++ .../src/messages/parser/furnieditor/index.ts | 1 + 8 files changed, 93 insertions(+) create mode 100644 packages/communication/src/messages/incoming/furnieditor/FurniEditorImportTextResultEvent.ts create mode 100644 packages/communication/src/messages/outgoing/furnieditor/FurniEditorImportTextComposer.ts create mode 100644 packages/communication/src/messages/parser/furnieditor/FurniEditorImportTextResultMessageParser.ts diff --git a/packages/communication/src/messages/incoming/IncomingHeader.ts b/packages/communication/src/messages/incoming/IncomingHeader.ts index 8cc3b64..2e7d2f4 100644 --- a/packages/communication/src/messages/incoming/IncomingHeader.ts +++ b/packages/communication/src/messages/incoming/IncomingHeader.ts @@ -494,6 +494,7 @@ export class IncomingHeader public static FURNI_EDITOR_INTERACTIONS_RESULT = 10043; public static FURNI_EDITOR_RESULT = 10044; public static FURNITURE_DATA_RELOAD = 10047; + public static FURNI_EDITOR_IMPORT_TEXT_RESULT = 10049; // Catalog Admin public static CATALOG_ADMIN_RESULT = 10059; diff --git a/packages/communication/src/messages/incoming/furnieditor/FurniEditorImportTextResultEvent.ts b/packages/communication/src/messages/incoming/furnieditor/FurniEditorImportTextResultEvent.ts new file mode 100644 index 0000000..8d9e51d --- /dev/null +++ b/packages/communication/src/messages/incoming/furnieditor/FurniEditorImportTextResultEvent.ts @@ -0,0 +1,16 @@ +import { IMessageEvent } from '@nitrots/api'; +import { MessageEvent } from '@nitrots/events'; +import { FurniEditorImportTextResultMessageParser } from '../../parser'; + +export class FurniEditorImportTextResultEvent extends MessageEvent implements IMessageEvent +{ + constructor(callBack: Function) + { + super(callBack, FurniEditorImportTextResultMessageParser); + } + + public getParser(): FurniEditorImportTextResultMessageParser + { + return this.parser as FurniEditorImportTextResultMessageParser; + } +} diff --git a/packages/communication/src/messages/incoming/furnieditor/index.ts b/packages/communication/src/messages/incoming/furnieditor/index.ts index 7778352..433592a 100644 --- a/packages/communication/src/messages/incoming/furnieditor/index.ts +++ b/packages/communication/src/messages/incoming/furnieditor/index.ts @@ -1,4 +1,5 @@ export * from './FurniEditorDetailResultEvent'; +export * from './FurniEditorImportTextResultEvent'; export * from './FurniEditorInteractionsResultEvent'; export * from './FurniEditorResultEvent'; export * from './FurniEditorSearchResultEvent'; diff --git a/packages/communication/src/messages/outgoing/OutgoingHeader.ts b/packages/communication/src/messages/outgoing/OutgoingHeader.ts index b777c5b..bf441b2 100644 --- a/packages/communication/src/messages/outgoing/OutgoingHeader.ts +++ b/packages/communication/src/messages/outgoing/OutgoingHeader.ts @@ -499,6 +499,7 @@ export class OutgoingHeader public static FURNI_EDITOR_DELETE = 10045; public static FURNI_EDITOR_UPDATE_FURNIDATA = 10046; public static FURNI_EDITOR_REVERT_FURNIDATA = 10048; + public static FURNI_EDITOR_IMPORT_TEXT = 10049; public static CATALOG_ADMIN_SAVE_PAGE = 10050; public static CATALOG_ADMIN_CREATE_PAGE = 10051; diff --git a/packages/communication/src/messages/outgoing/furnieditor/FurniEditorImportTextComposer.ts b/packages/communication/src/messages/outgoing/furnieditor/FurniEditorImportTextComposer.ts new file mode 100644 index 0000000..2abe82e --- /dev/null +++ b/packages/communication/src/messages/outgoing/furnieditor/FurniEditorImportTextComposer.ts @@ -0,0 +1,21 @@ +import { IMessageComposer } from '@nitrots/api'; + +export class FurniEditorImportTextComposer implements IMessageComposer> +{ + private _data: ConstructorParameters; + + constructor(itemId: number) + { + this._data = [ itemId ]; + } + + dispose(): void + { + this._data = null; + } + + public getMessageArray() + { + return this._data; + } +} diff --git a/packages/communication/src/messages/outgoing/furnieditor/index.ts b/packages/communication/src/messages/outgoing/furnieditor/index.ts index bbc25e7..16215d8 100644 --- a/packages/communication/src/messages/outgoing/furnieditor/index.ts +++ b/packages/communication/src/messages/outgoing/furnieditor/index.ts @@ -1,6 +1,7 @@ export * from './FurniEditorBySpriteComposer'; export * from './FurniEditorDeleteComposer'; export * from './FurniEditorDetailComposer'; +export * from './FurniEditorImportTextComposer'; export * from './FurniEditorInteractionsComposer'; export * from './FurniEditorRevertFurnidataComposer'; export * from './FurniEditorSearchComposer'; diff --git a/packages/communication/src/messages/parser/furnieditor/FurniEditorImportTextResultMessageParser.ts b/packages/communication/src/messages/parser/furnieditor/FurniEditorImportTextResultMessageParser.ts new file mode 100644 index 0000000..7c5af5f --- /dev/null +++ b/packages/communication/src/messages/parser/furnieditor/FurniEditorImportTextResultMessageParser.ts @@ -0,0 +1,51 @@ +import { IMessageDataWrapper, IMessageParser } from '@nitrots/api'; + +export class FurniEditorImportTextResultMessageParser implements IMessageParser +{ + private _found: boolean; + private _name: string; + private _description: string; + private _classname: string; + + public flush(): boolean + { + this._found = false; + this._name = ''; + this._description = ''; + this._classname = ''; + + return true; + } + + public parse(wrapper: IMessageDataWrapper): boolean + { + if(!wrapper) return false; + + this._found = wrapper.readBoolean(); + this._name = wrapper.readString(); + this._description = wrapper.readString(); + this._classname = wrapper.readString(); + + return true; + } + + public get found(): boolean + { + return this._found; + } + + public get name(): string + { + return this._name; + } + + public get description(): string + { + return this._description; + } + + public get classname(): string + { + return this._classname; + } +} diff --git a/packages/communication/src/messages/parser/furnieditor/index.ts b/packages/communication/src/messages/parser/furnieditor/index.ts index 9f38260..64bce0f 100644 --- a/packages/communication/src/messages/parser/furnieditor/index.ts +++ b/packages/communication/src/messages/parser/furnieditor/index.ts @@ -1,6 +1,7 @@ export * from './CatalogRefData'; export * from './FurniDetailData'; export * from './FurniEditorDetailResultMessageParser'; +export * from './FurniEditorImportTextResultMessageParser'; export * from './FurniEditorInteractionsResultMessageParser'; export * from './FurniEditorResultMessageParser'; export * from './FurniEditorSearchResultMessageParser';