'init'
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user