You've already forked Nitro_Render_V3
mirror of
https://github.com/duckietm/Nitro_Render_V3.git
synced 2026-06-20 15:36:18 +00:00
feat: custom prefix system protocol layer
Prefix parsers, composers and events: - UserPrefixesParser, PrefixReceivedParser, ActivePrefixUpdatedParser - PurchasePrefixComposer, SetActivePrefixComposer, DeletePrefixComposer, RequestPrefixesComposer - RoomUnitChatParser reads prefixText/Color/Icon/Effect from chat packets - RoomSessionChatEvent carries prefix data to client - RoomChatHandler passes prefix fields through event chain
This commit is contained in:
@@ -4,5 +4,6 @@ export * from './badges';
|
||||
export * from './clothing';
|
||||
export * from './furniture';
|
||||
export * from './pets';
|
||||
export * from './prefixes';
|
||||
export * from './purse';
|
||||
export * from './trading';
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
||||
|
||||
export class ActivePrefixUpdatedParser implements IMessageParser
|
||||
{
|
||||
private _prefixId: number;
|
||||
private _text: string;
|
||||
private _color: string;
|
||||
private _icon: string;
|
||||
private _effect: string;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._prefixId = 0;
|
||||
this._text = '';
|
||||
this._color = '';
|
||||
this._icon = '';
|
||||
this._effect = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._prefixId = wrapper.readInt();
|
||||
this._text = wrapper.readString();
|
||||
this._color = wrapper.readString();
|
||||
this._icon = wrapper.readString();
|
||||
this._effect = wrapper.readString();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get prefixId(): number { return this._prefixId; }
|
||||
public get text(): string { return this._text; }
|
||||
public get color(): string { return this._color; }
|
||||
public get icon(): string { return this._icon; }
|
||||
public get effect(): string { return this._effect; }
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
||||
|
||||
export class PrefixReceivedParser implements IMessageParser
|
||||
{
|
||||
private _id: number;
|
||||
private _text: string;
|
||||
private _color: string;
|
||||
private _icon: string;
|
||||
private _effect: string;
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._id = 0;
|
||||
this._text = '';
|
||||
this._color = '';
|
||||
this._icon = '';
|
||||
this._effect = '';
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._id = wrapper.readInt();
|
||||
this._text = wrapper.readString();
|
||||
this._color = wrapper.readString();
|
||||
this._icon = wrapper.readString();
|
||||
this._effect = wrapper.readString();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get id(): number { return this._id; }
|
||||
public get text(): string { return this._text; }
|
||||
public get color(): string { return this._color; }
|
||||
public get icon(): string { return this._icon; }
|
||||
public get effect(): string { return this._effect; }
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
import { IMessageDataWrapper, IMessageParser } from '@nitrots/api';
|
||||
|
||||
export interface IPrefixData
|
||||
{
|
||||
id: number;
|
||||
text: string;
|
||||
color: string;
|
||||
icon: string;
|
||||
effect: string;
|
||||
active: boolean;
|
||||
}
|
||||
|
||||
export class UserPrefixesParser implements IMessageParser
|
||||
{
|
||||
private _prefixes: IPrefixData[];
|
||||
|
||||
public flush(): boolean
|
||||
{
|
||||
this._prefixes = [];
|
||||
return true;
|
||||
}
|
||||
|
||||
public parse(wrapper: IMessageDataWrapper): boolean
|
||||
{
|
||||
if(!wrapper) return false;
|
||||
|
||||
this._prefixes = [];
|
||||
|
||||
let count = wrapper.readInt();
|
||||
|
||||
while(count > 0)
|
||||
{
|
||||
this._prefixes.push({
|
||||
id: wrapper.readInt(),
|
||||
text: wrapper.readString(),
|
||||
color: wrapper.readString(),
|
||||
icon: wrapper.readString(),
|
||||
effect: wrapper.readString(),
|
||||
active: wrapper.readInt() === 1
|
||||
});
|
||||
|
||||
count--;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public get prefixes(): IPrefixData[]
|
||||
{
|
||||
return this._prefixes;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export * from './ActivePrefixUpdatedParser';
|
||||
export * from './PrefixReceivedParser';
|
||||
export * from './UserPrefixesParser';
|
||||
Reference in New Issue
Block a user