Files
rosetta-wss/src/main/java/im/rosetta/packet/Packet20GroupJoin.java

92 lines
3.3 KiB
Java
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.
package im.rosetta.packet;
import im.rosetta.packet.runtime.NetworkGroupStatus;
import io.orprotocol.Stream;
import io.orprotocol.packet.Packet;
/**
* Вызывается клиентом для вступления в группу.
* Сервер модифицирует этот пакет, устанавливая статус группы, и отправляет его обратно
* клиенту
*/
public class Packet20GroupJoin extends Packet {
private String groupId;
private NetworkGroupStatus status;
/**
* Строка группы, которая содержит информацию о группе, такую как ее название, описание и ключ
* Строка зашифрована обратимым шифрованием, где ключом выступает - реальный приватный ключ
* входящего в группу клиента. Нужно это для будущей синхронзации, так как клиенту на его другом
* устройстве нужно получить ключ группы и ее информацию. Сервер расшифровать эту строку не может. Эту
* строку может расшифровать только клиент, так как она зашифрована его приватным ключом
*/
private String groupString;
@Override
public void read(Stream stream) {
this.groupId = stream.readString();
this.status = NetworkGroupStatus.fromCode(stream.readInt8());
this.groupString = stream.readString();
}
@Override
public Stream write() {
Stream stream = new Stream();
stream.writeInt16(this.packetId);
stream.writeString(this.groupId);
stream.writeInt8(this.status.getCode());
stream.writeString(this.groupString);
return stream;
}
/**
* Получить id группы
* @return id группы
*/
public String getGroupId() {
return groupId;
}
/**
* Установить id группы
* @param groupId id группы
*/
public void setGroupId(String groupId) {
this.groupId = groupId;
}
/**
* Получить статус группы
* @return статус группы
*/
public NetworkGroupStatus getStatus() {
return status;
}
/**
* Установить статус группы
* @param status статус группы
*/
public void setStatus(NetworkGroupStatus status) {
this.status = status;
}
/**
* Получить строку группы, которая содержит информацию о группе, такую как ее название, описание и ключ
* @return строка группы
*/
public String getGroupString() {
return groupString;
}
/**
* Установить строку группы, которая содержит информацию о группе, такую как ее название, описание и ключ
* @param groupString строка группы
*/
public void setGroupString(String groupString) {
this.groupString = groupString;
}
}