Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.50 KB | None | 0 0
  1. package fr.poskitch.network;
  2.  
  3. import fr.poskitch.entity.EntityNPC;
  4. import fr.poskitch.entity.NPCSave;
  5. import fr.poskitch.gui.GUINPC;
  6. import fr.poskitch.util.NPCData;
  7. import io.netty.buffer.ByteBuf;
  8. import net.minecraft.client.Minecraft;
  9. import net.minecraft.entity.Entity;
  10. import net.minecraft.nbt.NBTTagCompound;
  11. import net.minecraft.nbt.NBTTagList;
  12. import net.minecraftforge.common.util.Constants;
  13. import net.minecraftforge.fml.common.network.ByteBufUtils;
  14. import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
  15. import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
  16. import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
  17.  
  18. import java.util.ArrayList;
  19. import java.util.HashMap;
  20.  
  21. public class PacketOpenNPC implements IMessage
  22. {
  23.  
  24. public HashMap<String, ArrayList<NPCData>> npc = new HashMap();
  25. public String name;
  26.  
  27. public PacketOpenNPC(String name, HashMap<String, ArrayList<NPCData>> npc)
  28. {
  29. this.npc = npc;
  30. this.name = name;
  31. }
  32.  
  33.  
  34. @Override
  35. public void fromBytes(ByteBuf buf)
  36. {
  37. NBTTagCompound nbt = ByteBufUtils.readTag(buf);
  38. NBTTagList nameList = nbt.getTagList("nameList", Constants.NBT.TAG_COMPOUND);
  39. NBTTagList tagList = nbt.getTagList("List", Constants.NBT.TAG_COMPOUND);
  40.  
  41. for (int i = 0; i < nameList.tagCount(); i++) {
  42. NBTTagCompound tag2 = nameList.getCompoundTagAt(i);
  43. ArrayList<NPCData> ventelist = new ArrayList<NPCData>();
  44. for (int j = 0; j < tagList.tagCount(); j++) {
  45. NBTTagCompound tag = tagList.getCompoundTagAt(j);
  46. NPCData data = new NPCData();
  47. data.setName(tag.getString("name"));
  48. data.setPriceBuy(tag.getInteger("priceBuy"));
  49. data.setPriceSell(tag.getInteger("priceSell"));
  50. data.setItem(tag.getInteger("item"));
  51. data.setItem_bis(tag.getInteger("item_bis"));
  52. ventelist.add(data);
  53. }
  54. npc.put(tag2.getString("namenpc"), ventelist);
  55. }
  56. this.name = ByteBufUtils.readUTF8String(buf);
  57. }
  58.  
  59. @Override
  60. public void toBytes(ByteBuf buf)
  61. {
  62. NBTTagCompound compound = new NBTTagCompound();
  63. NBTTagList nameList = new NBTTagList();
  64. NBTTagList tagList = new NBTTagList();
  65. for (String vehic : npc.keySet()) {
  66. for (NPCData sms : npc.get(vehic)) {
  67. NPCData ventelist = new NPCData();
  68. ventelist.setName(sms.getName());
  69. ventelist.setPriceSell(sms.getPriceSell());
  70. ventelist.setPriceBuy(sms.getPriceBuy());
  71. ventelist.setItem(sms.getItem());
  72. ventelist.setItem_bis(sms.getItem_bis());
  73. tagList.appendTag(sms.serializeNBT());
  74. }
  75. NBTTagCompound tag = new NBTTagCompound();
  76. tag.setString("namenpc", vehic);
  77. nameList.appendTag(tag);
  78. compound.setTag("List", tagList);
  79. compound.setTag("nameList", nameList);
  80. }
  81. ByteBufUtils.writeTag(buf, compound);
  82. ByteBufUtils.writeUTF8String(buf, name);
  83. }
  84.  
  85. public static class Handler implements IMessageHandler<PacketOpenNPC, IMessage> {
  86. @Override
  87. public IMessage onMessage(PacketOpenNPC message, MessageContext ctx) {
  88. Minecraft.getMinecraft().displayGuiScreen(new GUINPC(message.name, message.npc));
  89. return null;
  90. }
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement