92 lines
3.3 KiB
Java
92 lines
3.3 KiB
Java
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;
|
||
}
|
||
|
||
}
|