Files
desktop/app/providers/ProtocolProvider/protocol/packets/packet.group.join.ts

67 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import Packet from "../packet";
import Stream from "../stream";
export enum GroupStatus {
JOINED = 0,
INVALID = 1,
NOT_JOINED = 2,
BANNED = 3
}
export class PacketGroupJoin extends Packet {
private groupId: string = "";
private groupStatus: GroupStatus = GroupStatus.NOT_JOINED;
/**
* Строка группы, которая содержит информацию о группе, такую как ее название, описание и ключ
* Строка зашифрована обратимым шифрованием, где ключом выступает - реальный приватный ключ
* входящего в группу клиента. Нужно это для будущей синхронзации, так как клиенту на его другом
* устройстве нужно получить ключ группы и ее информацию. Сервер расшифровать эту строку не может. Эту
* строку может расшифровать только клиент, так как она зашифрована его приватным ключом
*/
private groupString: string = "";
public getPacketId(): number {
return 0x14;
}
public _receive(stream: Stream): void {
this.groupId = stream.readString();
this.groupStatus = stream.readInt8();
this.groupString = stream.readString();
}
public _send(): Promise<Stream> | Stream {
const stream = new Stream();
stream.writeInt16(this.getPacketId());
stream.writeString(this.groupId);
stream.writeInt8(this.groupStatus);
stream.writeString(this.groupString);
return stream;
}
public setGroupId(groupId: string) {
this.groupId = groupId;
}
public getGroupId(): string {
return this.groupId;
}
public setGroupStatus(groupStatus: GroupStatus) {
this.groupStatus = groupStatus;
}
public getGroupStatus(): GroupStatus {
return this.groupStatus;
}
public setGroupString(groupString: string) {
this.groupString = groupString;
}
public getGroupString(): string {
return this.groupString;
}
}