package me.km.networking; import io.netty.buffer.ByteBuf; import net.minecraft.client.Minecraft; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; public class ItemStackDisplay implements IMessage { private byte index; private int iconIndex; private int count; public ItemStackDisplay() { index = -1; iconIndex = -1; count = -1; } public ItemStackDisplay(byte index, int iconIndex, int count) { this.index = index; this.iconIndex = iconIndex; this.count = count; } @Override public void fromBytes(ByteBuf buf) { index = buf.readByte(); iconIndex = buf.readInt(); count = buf.readInt(); } @Override public void toBytes(ByteBuf buf) { buf.writeByte(index); buf.writeInt(iconIndex); buf.writeInt(count); } public static class Handler implements IMessageHandler { @Override public IMessage onMessage(ItemStackDisplay message, MessageContext ctx) { Minecraft mc = net.minecraft.client.Minecraft.getMinecraft(); mc.addScheduledTask(() -> { switch(message.index) { case -1: ItemStackDisplayGui.INSTANCE.setActive(true); break; case -2: ItemStackDisplayGui.INSTANCE.setActive(false); break; case -3: ItemStackDisplayGui.INSTANCE.clear(); break; default: ItemStackDisplayGui.INSTANCE.setIcon(message.index, message.iconIndex, message.count); break; } }); return null; } } }