package net.glowstone.net.codec.play.inv; import com.flowpowered.networking.Codec; import io.netty.buffer.ByteBuf; import net.glowstone.net.GlowBufUtils; import net.glowstone.net.message.play.inv.WindowClickMessage; import org.bukkit.inventory.ItemStack; import java.io.IOException; public final class WindowClickCodec implements Codec<WindowClickMessage> { @Override public WindowClickMessage decode(ByteBuf buf) throws IOException { int id = buf.readUnsignedByte(); int slot = buf.readShort(); int button = buf.readByte(); int action = buf.readShort(); int mode = buf.readByte(); ItemStack item = GlowBufUtils.readSlot(buf); return new WindowClickMessage(id, slot, button, action, mode, item); } @Override public ByteBuf encode(ByteBuf buf, WindowClickMessage message) throws IOException { buf.writeByte(message.getId()); buf.writeShort(message.getSlot()); buf.writeByte(message.getButton()); buf.writeShort(message.getTransaction()); buf.writeByte(message.getMode()); GlowBufUtils.writeSlot(buf, message.getItem()); return buf; } }