This commit is contained in:
rosetta
2026-01-30 05:01:05 +02:00
commit 83f38dc63f
327 changed files with 18725 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
import Packet from "../packet";
import Stream from "../stream";
export enum OnlineState {
ONLINE,
OFFLINE
}
export interface PublicKeyOnlineState {
publicKey: string;
state: OnlineState;
}
export class PacketOnlineState extends Packet {
private publicKeysState: PublicKeyOnlineState[] = [];
public getPacketId(): number {
return 0x05;
}
public _receive(stream: Stream): void {
const publicKeyCount = stream.readInt8();
for (let i = 0; i < publicKeyCount; i++) {
const publicKey = stream.readString();
const state = stream.readBoolean() ? OnlineState.ONLINE : OnlineState.OFFLINE;
this.publicKeysState.push({ publicKey, state });
}
}
public _send(): Stream {
const stream = new Stream();
stream.writeInt16(this.getPacketId());
stream.writeInt8(this.publicKeysState.length);
for (const publicKeyState of this.publicKeysState) {
stream.writeString(publicKeyState.publicKey);
stream.writeBoolean(publicKeyState.state === OnlineState.ONLINE);
}
return stream;
}
public addPublicKeyState(publicKey: string, state: OnlineState): void {
this.publicKeysState.push({ publicKey, state });
}
public getPublicKeysState(): PublicKeyOnlineState[] {
return this.publicKeysState;
}
public setPublicKeysState(publicKeysState: PublicKeyOnlineState[]): void {
this.publicKeysState = publicKeysState;
}
}