feat(messenger): add friend-category client composers (add/rename/remove/move)

This commit is contained in:
simoleo89
2026-06-02 17:30:30 +02:00
parent 8eb2097f7e
commit 4774eeeae9
8 changed files with 125 additions and 1 deletions
File diff suppressed because one or more lines are too long
@@ -125,6 +125,10 @@ export class OutgoingHeader
public static SEND_ROOM_INVITE = 1276; public static SEND_ROOM_INVITE = 1276;
public static HABBO_SEARCH = 1210; public static HABBO_SEARCH = 1210;
public static FRIEND_LIST_UPDATE = 1419; public static FRIEND_LIST_UPDATE = 1419;
public static ADD_FRIEND_CATEGORY = 4081;
public static RENAME_FRIEND_CATEGORY = 4082;
public static REMOVE_FRIEND_CATEGORY = 4083;
public static MOVE_FRIEND_TO_CATEGORY = 4084;
public static MOD_TOOL_USER_INFO = 3295; public static MOD_TOOL_USER_INFO = 3295;
public static GET_USER_FLAT_CATS = 3027; public static GET_USER_FLAT_CATS = 3027;
public static NAVIGATOR_INIT = 2110; public static NAVIGATOR_INIT = 2110;
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class AddFriendCategoryComposer implements IMessageComposer<ConstructorParameters<typeof AddFriendCategoryComposer>>
{
private _data: ConstructorParameters<typeof AddFriendCategoryComposer>;
constructor(name: string)
{
this._data = [ name ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class MoveFriendToCategoryComposer implements IMessageComposer<ConstructorParameters<typeof MoveFriendToCategoryComposer>>
{
private _data: ConstructorParameters<typeof MoveFriendToCategoryComposer>;
constructor(friendId: number, categoryId: number)
{
this._data = [ friendId, categoryId ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class RemoveFriendCategoryComposer implements IMessageComposer<ConstructorParameters<typeof RemoveFriendCategoryComposer>>
{
private _data: ConstructorParameters<typeof RemoveFriendCategoryComposer>;
constructor(categoryId: number)
{
this._data = [ categoryId ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,21 @@
import { IMessageComposer } from '@nitrots/api';
export class RenameFriendCategoryComposer implements IMessageComposer<ConstructorParameters<typeof RenameFriendCategoryComposer>>
{
private _data: ConstructorParameters<typeof RenameFriendCategoryComposer>;
constructor(categoryId: number, name: string)
{
this._data = [ categoryId, name ];
}
public getMessageArray()
{
return this._data;
}
public dispose(): void
{
return;
}
}
@@ -0,0 +1,28 @@
import { describe, expect, it } from 'vitest';
import { AddFriendCategoryComposer } from '../AddFriendCategoryComposer';
import { RenameFriendCategoryComposer } from '../RenameFriendCategoryComposer';
import { RemoveFriendCategoryComposer } from '../RemoveFriendCategoryComposer';
import { MoveFriendToCategoryComposer } from '../MoveFriendToCategoryComposer';
describe('friend category composers', () =>
{
it('AddFriendCategoryComposer carries the name', () =>
{
expect(new AddFriendCategoryComposer('Best friends').getMessageArray()).toEqual([ 'Best friends' ]);
});
it('RenameFriendCategoryComposer carries id + name', () =>
{
expect(new RenameFriendCategoryComposer(5, 'Staff').getMessageArray()).toEqual([ 5, 'Staff' ]);
});
it('RemoveFriendCategoryComposer carries the id', () =>
{
expect(new RemoveFriendCategoryComposer(7).getMessageArray()).toEqual([ 7 ]);
});
it('MoveFriendToCategoryComposer carries friendId + categoryId', () =>
{
expect(new MoveFriendToCategoryComposer(42, 3).getMessageArray()).toEqual([ 42, 3 ]);
});
});
@@ -1,4 +1,5 @@
export * from './AcceptFriendMessageComposer'; export * from './AcceptFriendMessageComposer';
export * from './AddFriendCategoryComposer';
export * from './DeclineFriendMessageComposer'; export * from './DeclineFriendMessageComposer';
export * from './FindNewFriendsMessageComposer'; export * from './FindNewFriendsMessageComposer';
export * from './FollowFriendMessageComposer'; export * from './FollowFriendMessageComposer';
@@ -6,7 +7,10 @@ export * from './FriendListUpdateComposer';
export * from './GetFriendRequestsComposer'; export * from './GetFriendRequestsComposer';
export * from './HabboSearchComposer'; export * from './HabboSearchComposer';
export * from './MessengerInitComposer'; export * from './MessengerInitComposer';
export * from './MoveFriendToCategoryComposer';
export * from './RemoveFriendCategoryComposer';
export * from './RemoveFriendComposer'; export * from './RemoveFriendComposer';
export * from './RenameFriendCategoryComposer';
export * from './RequestFriendComposer'; export * from './RequestFriendComposer';
export * from './SendMessageComposer'; export * from './SendMessageComposer';
export * from './SendRoomInviteComposer'; export * from './SendRoomInviteComposer';