2019-08-22 14:52:32 +02:00
|
|
|
package fr.themode.minestom.utils;
|
|
|
|
|
|
|
|
import fr.adamaq01.ozao.net.Buffer;
|
|
|
|
import fr.adamaq01.ozao.net.packet.Packet;
|
2019-08-31 07:54:53 +02:00
|
|
|
import fr.themode.minestom.net.packet.PacketWriter;
|
2019-08-22 14:52:32 +02:00
|
|
|
import fr.themode.minestom.net.packet.server.ServerPacket;
|
|
|
|
|
|
|
|
import static fr.themode.minestom.net.protocol.MinecraftProtocol.PACKET_ID_IDENTIFIER;
|
2019-08-23 15:37:38 +02:00
|
|
|
import static fr.themode.minestom.utils.Utils.writeVarInt;
|
2019-08-22 14:52:32 +02:00
|
|
|
|
|
|
|
public class PacketUtils {
|
|
|
|
|
|
|
|
public static Packet writePacket(ServerPacket serverPacket) {
|
|
|
|
int id = serverPacket.getId();
|
|
|
|
Packet packet = Packet.create();
|
|
|
|
Buffer buffer = packet.getPayload();
|
2019-08-31 07:54:53 +02:00
|
|
|
|
|
|
|
PacketWriter packetWriter = new PacketWriter(buffer);
|
|
|
|
|
|
|
|
serverPacket.write(packetWriter);
|
2019-08-22 14:52:32 +02:00
|
|
|
packet.put(PACKET_ID_IDENTIFIER, id);
|
|
|
|
return packet;
|
|
|
|
}
|
|
|
|
|
2019-08-23 15:37:38 +02:00
|
|
|
public static boolean verify(Packet packet) {
|
|
|
|
return packet.get("id") != null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static Buffer encode(Packet packet) {
|
|
|
|
Buffer buffer = Buffer.create();
|
|
|
|
Buffer idAndPayload = Buffer.create();
|
|
|
|
writeVarInt(idAndPayload, packet.get(PACKET_ID_IDENTIFIER));
|
|
|
|
idAndPayload.putBuffer(packet.getPayload());
|
|
|
|
writeVarInt(buffer, idAndPayload.length());
|
|
|
|
buffer.putBuffer(idAndPayload);
|
|
|
|
return buffer;
|
|
|
|
}
|
|
|
|
|
2019-08-22 14:52:32 +02:00
|
|
|
}
|