diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index c1457e39a..13376a8f1 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -1048,7 +1048,10 @@ public class PacketHandlerServer{ PlayerData data = PlayerDataController.instance.getPlayerData(player); if(data.cloned == null) return; - ServerCloneController.Instance.addClone(data.cloned, Server.readString(buffer), buffer.readInt()); + String name = Server.readString(buffer); + int tab = buffer.readInt(); + NBTTagCompound tagExtra = Server.readNBT(buffer); + ServerCloneController.Instance.addClone(data.cloned, name, tab, tagExtra); } else if(type == EnumPacketServer.CloneRemove){ int tab = buffer.readInt(); @@ -1104,6 +1107,18 @@ public class PacketHandlerServer{ compound.setTag("AllTags", validTagList); Server.sendData(player, EnumPacketClient.GUI_DATA, compound); } + else if (type == EnumPacketServer.CloneAllTagsShort) { + NBTTagCompound compound = new NBTTagCompound(); + HashSet validTags = TagController.getInstance().getAllTags(); + NBTTagList validTagList = new NBTTagList(); + for(Tag tag : validTags){ + NBTTagCompound tagCompound = new NBTTagCompound(); + tag.writeShortNBT(tagCompound); + validTagList.appendTag(tagCompound); + } + compound.setTag("ShortTags", validTagList); + Server.sendData(player, EnumPacketClient.GUI_DATA, compound); + } else if (type == EnumPacketServer.TagSet) { EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player); this.setTags(npc,buffer); diff --git a/src/main/java/noppes/npcs/constants/EnumPacketServer.java b/src/main/java/noppes/npcs/constants/EnumPacketServer.java index fdde8cf0c..036ee6b14 100644 --- a/src/main/java/noppes/npcs/constants/EnumPacketServer.java +++ b/src/main/java/noppes/npcs/constants/EnumPacketServer.java @@ -33,7 +33,7 @@ public enum EnumPacketServer { RoleCompanionUpdate(CustomNpcsPermissions.NPC_ADVANCED, true), LinkedSet(CustomNpcsPermissions.NPC_ADVANCED, true), - ClonePreSave(CustomNpcsPermissions.NPC_CLONE), CloneSave(CustomNpcsPermissions.NPC_CLONE), CloneRemove(CustomNpcsPermissions.NPC_CLONE), CloneList, CloneTagList, CloneAllTags, + ClonePreSave(CustomNpcsPermissions.NPC_CLONE), CloneSave(CustomNpcsPermissions.NPC_CLONE), CloneRemove(CustomNpcsPermissions.NPC_CLONE), CloneList, CloneTagList, CloneAllTags, CloneAllTagsShort, ScriptGlobalGuiDataSave(CustomNpcsPermissions.TOOL_SCRIPTER, false), ScriptGlobalGuiDataGet(false), diff --git a/src/main/java/noppes/npcs/controllers/data/Tag.java b/src/main/java/noppes/npcs/controllers/data/Tag.java index 6484142c6..4116e719e 100644 --- a/src/main/java/noppes/npcs/controllers/data/Tag.java +++ b/src/main/java/noppes/npcs/controllers/data/Tag.java @@ -40,6 +40,14 @@ public class Tag implements ITag { compound.setString("Uuid", uuid.toString()); compound.setBoolean("HideTag", hideTag); } + public void readShortNBT(NBTTagCompound compound){ + name = compound.getString("Name"); + uuid = UUID.fromString(compound.getString("Uuid")); + } + public void writeShortNBT(NBTTagCompound compound){ + compound.setString("Name", name); + compound.setString("Uuid", uuid.toString()); + } public int getId() { return this.id;