59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import Packet from "../packet";
|
|
import Stream from "../stream";
|
|
|
|
export class PacketOnlineSubscribe extends Packet {
|
|
|
|
private privateKey : string = "";
|
|
private publicKeys: string[] = [];
|
|
|
|
public getPacketId(): number {
|
|
return 0x04;
|
|
}
|
|
|
|
public _receive(stream: Stream): void {
|
|
this.privateKey = stream.readString();
|
|
const keysCount = stream.readInt16();
|
|
for (let i = 0; i < keysCount; i++) {
|
|
this.publicKeys.push(stream.readString());
|
|
}
|
|
}
|
|
|
|
public _send(): Stream {
|
|
const stream = new Stream();
|
|
stream.writeInt16(this.getPacketId());
|
|
stream.writeString(this.privateKey);
|
|
stream.writeInt16(this.publicKeys.length);
|
|
for (const key of this.publicKeys) {
|
|
stream.writeString(key);
|
|
}
|
|
return stream;
|
|
}
|
|
|
|
public getPrivateKey(): string {
|
|
return this.privateKey;
|
|
}
|
|
|
|
public setPrivateKey(privateKey: string): void {
|
|
this.privateKey = privateKey;
|
|
}
|
|
|
|
public getPublicKeys(): string[] {
|
|
return this.publicKeys;
|
|
}
|
|
|
|
public setPublicKeys(publicKeys: string[]): void {
|
|
this.publicKeys = publicKeys;
|
|
}
|
|
|
|
public addPublicKey(publicKey: string): void {
|
|
this.publicKeys.push(publicKey);
|
|
}
|
|
|
|
public removePublicKey(publicKey: string): void {
|
|
const index = this.publicKeys.indexOf(publicKey);
|
|
if (index > -1) {
|
|
this.publicKeys.splice(index, 1);
|
|
}
|
|
}
|
|
|
|
} |