package com.captainbern.minecraft.net.codec.play.server;
import com.captainbern.minecraft.net.codec.Codec;
import com.captainbern.minecraft.net.packet.play.server.PacketScoreboardObjective;
import com.captainbern.minecraft.net.util.ByteBufUtils;
import io.netty.buffer.ByteBuf;
public class CodecScoreboardObjective implements Codec<PacketScoreboardObjective> {
public ByteBuf encode(ByteBuf byteBuf, PacketScoreboardObjective packet) {
ByteBufUtils.writeUTF(byteBuf, packet.getObjectiveName());
byteBuf.writeByte(packet.getMode());
if (packet.getMode() == 0 || packet.getMode() == 2) {
ByteBufUtils.writeUTF(byteBuf, packet.getValue());
ByteBufUtils.writeUTF(byteBuf, packet.getType());
}
return byteBuf;
}
public PacketScoreboardObjective decode(ByteBuf byteBuf) {
String objectiveMode = ByteBufUtils.readUTF(byteBuf);
byte mode = byteBuf.readByte();
if (mode == 0 || mode == 2) {
String value = ByteBufUtils.readUTF(byteBuf);
String type = ByteBufUtils.readUTF(byteBuf);
return new PacketScoreboardObjective(objectiveMode, mode, value, type);
}
return new PacketScoreboardObjective(objectiveMode, mode);
}
}