ItemStackDisplay.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package me.km.networking;
  2. import io.netty.buffer.ByteBuf;
  3. import net.minecraft.client.Minecraft;
  4. import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
  5. import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
  6. import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
  7. public class ItemStackDisplay implements IMessage
  8. {
  9. private byte index;
  10. private int iconIndex;
  11. private int count;
  12. public ItemStackDisplay()
  13. {
  14. index = -1;
  15. iconIndex = -1;
  16. count = -1;
  17. }
  18. public ItemStackDisplay(byte index, int iconIndex, int count)
  19. {
  20. this.index = index;
  21. this.iconIndex = iconIndex;
  22. this.count = count;
  23. }
  24. @Override
  25. public void fromBytes(ByteBuf buf)
  26. {
  27. index = buf.readByte();
  28. iconIndex = buf.readInt();
  29. count = buf.readInt();
  30. }
  31. @Override
  32. public void toBytes(ByteBuf buf)
  33. {
  34. buf.writeByte(index);
  35. buf.writeInt(iconIndex);
  36. buf.writeInt(count);
  37. }
  38. public static class Handler implements IMessageHandler<ItemStackDisplay, IMessage>
  39. {
  40. @Override
  41. public IMessage onMessage(ItemStackDisplay message, MessageContext ctx)
  42. {
  43. Minecraft mc = net.minecraft.client.Minecraft.getMinecraft();
  44. mc.addScheduledTask(() ->
  45. {
  46. switch(message.index)
  47. {
  48. case -1:
  49. ItemStackDisplayGui.INSTANCE.setActive(true);
  50. break;
  51. case -2:
  52. ItemStackDisplayGui.INSTANCE.setActive(false);
  53. break;
  54. case -3:
  55. ItemStackDisplayGui.INSTANCE.clear();
  56. break;
  57. default:
  58. ItemStackDisplayGui.INSTANCE.setIcon(message.index, message.iconIndex, message.count);
  59. break;
  60. }
  61. });
  62. return null;
  63. }
  64. }
  65. }