diff --git a/src/main/java/kamkeel/npcs/network/PacketUtil.java b/src/main/java/kamkeel/npcs/network/PacketUtil.java index 2ca723b93..f262bce45 100644 --- a/src/main/java/kamkeel/npcs/network/PacketUtil.java +++ b/src/main/java/kamkeel/npcs/network/PacketUtil.java @@ -230,6 +230,10 @@ public class PacketUtil { tabCompound.setInteger("TotalScripts", containers.size()); GuiDataPacket.sendGuiData(player, tabCompound); } + + NBTTagCompound loadComplete = new NBTTagCompound(); + loadComplete.setInteger("LoadComplete", 1); + GuiDataPacket.sendGuiData(player, loadComplete); } public static void saveScripts(IScriptHandler data, ByteBuf buffer) throws IOException { diff --git a/src/main/java/noppes/npcs/client/gui/GuiScript.java b/src/main/java/noppes/npcs/client/gui/GuiScript.java index 761354dd3..1786708e2 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiScript.java +++ b/src/main/java/noppes/npcs/client/gui/GuiScript.java @@ -27,6 +27,7 @@ public class GuiScript extends GuiNPCInterface implements IGuiData, GuiYesNoCall public Map> languages = new HashMap>(); private static int activeConsole = 0; + boolean loaded = false; public GuiScript(EntityNPCInterface npc) { super(npc); @@ -258,12 +259,15 @@ public class GuiScript extends GuiNPCInterface implements IGuiData, GuiYesNoCall } this.languages = languages; initGui(); + loaded = true; } @Override public void save() { - setScript(); - NPCScriptPacket.Save(script.writeToNBT(new NBTTagCompound())); + if(loaded){ + setScript(); + NPCScriptPacket.Save(script.writeToNBT(new NBTTagCompound())); + } } @Override diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiNPCEventScripts.java b/src/main/java/noppes/npcs/client/gui/script/GuiNPCEventScripts.java index 282ffe792..0fe589c8f 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiNPCEventScripts.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiNPCEventScripts.java @@ -39,6 +39,11 @@ public class GuiNPCEventScripts extends GuiScriptInterface { } public void setGuiData(NBTTagCompound compound) { + if(compound.hasKey("LoadComplete")){ + loaded = true; + return; + } + if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); @@ -58,16 +63,18 @@ public class GuiNPCEventScripts extends GuiScriptInterface { } public void save() { - super.save(); - List containers = this.script.getScripts(); - for (int i = 0; i < containers.size(); i++) { - ScriptContainer container = containers.get(i); - EventScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + if(loaded) { + super.save(); + List containers = this.script.getScripts(); + for (int i = 0; i < containers.size(); i++) { + ScriptContainer container = containers.get(i); + EventScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + } + NBTTagCompound scriptData = new NBTTagCompound(); + scriptData.setString("ScriptLanguage", this.script.getLanguage()); + scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); + EventScriptPacket.Save(-1, containers.size(), scriptData); } - NBTTagCompound scriptData = new NBTTagCompound(); - scriptData.setString("ScriptLanguage", this.script.getLanguage()); - scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); - scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); - EventScriptPacket.Save(-1, containers.size(), scriptData); } } diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java index ef6a06c62..5ab933754 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java @@ -35,6 +35,11 @@ public class GuiScriptAllNPCs extends GuiScriptInterface { } public void setGuiData(NBTTagCompound compound) { + if(compound.hasKey("LoadComplete")){ + loaded = true; + return; + } + if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); @@ -54,16 +59,18 @@ public class GuiScriptAllNPCs extends GuiScriptInterface { } public void save() { - super.save(); - List containers = this.script.getScripts(); - for (int i = 0; i < containers.size(); i++) { - ScriptContainer container = containers.get(i); - GlobalNPCScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + if(loaded){ + super.save(); + List containers = this.script.getScripts(); + for (int i = 0; i < containers.size(); i++) { + ScriptContainer container = containers.get(i); + GlobalNPCScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + } + NBTTagCompound scriptData = new NBTTagCompound(); + scriptData.setString("ScriptLanguage", this.script.getLanguage()); + scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); + GlobalNPCScriptPacket.Save(-1, containers.size(), scriptData); } - NBTTagCompound scriptData = new NBTTagCompound(); - scriptData.setString("ScriptLanguage", this.script.getLanguage()); - scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); - scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); - GlobalNPCScriptPacket.Save(-1, containers.size(), scriptData); } } diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptBlock.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptBlock.java index ba2cc9de7..0f0fbc192 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptBlock.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptBlock.java @@ -30,10 +30,13 @@ public class GuiScriptBlock extends GuiScriptInterface { public void setGuiData(NBTTagCompound compound) { this.tileScripted.setNBT(compound); super.setGuiData(compound); + loaded = true; } public void save() { - super.save(); - BlockScriptPacket.Save(tileScripted.xCoord, tileScripted.yCoord, tileScripted.zCoord, this.tileScripted.getNBT(new NBTTagCompound())); + if(loaded) { + super.save(); + BlockScriptPacket.Save(tileScripted.xCoord, tileScripted.yCoord, tileScripted.zCoord, this.tileScripted.getNBT(new NBTTagCompound())); + } } } diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java index 7cc692a8e..5348a6958 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptEffect.java @@ -29,7 +29,7 @@ public class GuiScriptEffect extends GuiNPCInterface implements GuiYesNoCallback public final GuiNPCManageEffects parent; public final CustomEffect effect; private final EffectScript scriptHandler; - + boolean loaded = false; public GuiScriptEffect(GuiNPCManageEffects parent, CustomEffect effect) { this.drawDefaultBackground = true; @@ -315,6 +315,11 @@ public class GuiScriptEffect extends GuiNPCInterface implements GuiYesNoCallback } public void setGuiData(NBTTagCompound compound) { + if(compound.hasKey("LoadComplete")){ + loaded = true; + return; + } + if (!compound.hasKey("Tab")) { this.scriptHandler.setLanguage(compound.getString("ScriptLanguage")); this.scriptHandler.setEnabled(compound.getBoolean("ScriptEnabled")); @@ -326,7 +331,6 @@ public class GuiScriptEffect extends GuiNPCInterface implements GuiYesNoCallback this.scriptHandler.container = container; this.initGui(); } - } private void copiedSetGuiData(NBTTagCompound compound) { @@ -350,19 +354,21 @@ public class GuiScriptEffect extends GuiNPCInterface implements GuiYesNoCallback } public void save() { - this.setScript(); + if(loaded) { + this.setScript(); - List containers = this.scriptHandler.getScripts(); - for (int i = 0; i < containers.size(); i++) { - ScriptContainer container = containers.get(i); - EffectScriptPacket.Save(effect.id, i, containers.size(), container.writeToNBT(new NBTTagCompound())); + List containers = this.scriptHandler.getScripts(); + for (int i = 0; i < containers.size(); i++) { + ScriptContainer container = containers.get(i); + EffectScriptPacket.Save(effect.id, i, containers.size(), container.writeToNBT(new NBTTagCompound())); + } + NBTTagCompound scriptData = new NBTTagCompound(); + scriptData.setString("ScriptLanguage", this.scriptHandler.getLanguage()); + scriptData.setBoolean("ScriptEnabled", this.scriptHandler.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.scriptHandler.getConsoleText())); + + EffectScriptPacket.Save(effect.id, -1, containers.size(), scriptData); } - NBTTagCompound scriptData = new NBTTagCompound(); - scriptData.setString("ScriptLanguage", this.scriptHandler.getLanguage()); - scriptData.setBoolean("ScriptEnabled", this.scriptHandler.getEnabled()); - scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.scriptHandler.getConsoleText())); - - EffectScriptPacket.Save(effect.id, -1, containers.size(), scriptData); } public void textUpdate(String text) { diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java index 34ebc20e0..e8460a6ce 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java @@ -65,6 +65,11 @@ public class GuiScriptForge extends GuiScriptInterface { } public void setGuiData(NBTTagCompound compound) { + if(compound.hasKey("LoadComplete")){ + loaded = true; + return; + } + if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); @@ -84,16 +89,18 @@ public class GuiScriptForge extends GuiScriptInterface { } public void save() { - super.save(); - List containers = this.script.getScripts(); - for (int i = 0; i < containers.size(); i++) { - ScriptContainer container = containers.get(i); - ForgeScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + if(loaded) { + super.save(); + List containers = this.script.getScripts(); + for (int i = 0; i < containers.size(); i++) { + ScriptContainer container = containers.get(i); + ForgeScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + } + NBTTagCompound scriptData = new NBTTagCompound(); + scriptData.setString("ScriptLanguage", this.script.getLanguage()); + scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); + ForgeScriptPacket.Save(-1, containers.size(), scriptData); } - NBTTagCompound scriptData = new NBTTagCompound(); - scriptData.setString("ScriptLanguage", this.script.getLanguage()); - scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); - scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); - ForgeScriptPacket.Save(-1, containers.size(), scriptData); } } diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java index a0f1d3f1a..5de8a7ba2 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptInterface.java @@ -25,6 +25,7 @@ public class GuiScriptInterface extends GuiNPCInterface implements GuiYesNoCallb public Map> languages = new HashMap(); private int scriptLimit = 1; public List hookList = new ArrayList(); + protected boolean loaded = false; public GuiScriptInterface() { this.drawDefaultBackground = true; @@ -338,7 +339,8 @@ public class GuiScriptInterface extends GuiNPCInterface implements GuiYesNoCallb } public void save() { - this.setScript(); + if(loaded) + this.setScript(); } public void textUpdate(String text) { diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptItem.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptItem.java index 6f3ad27ea..9b12d2bb6 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptItem.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptItem.java @@ -44,12 +44,15 @@ public class GuiScriptItem extends GuiScriptInterface { this.item.setMCNbt(compound); this.item.loadScriptData(); super.setGuiData(compound); + loaded = true; } } public void save() { - super.save(); - ItemScriptPacket.Save(this.item.getMCNbt()); + if(loaded) { + super.save(); + ItemScriptPacket.Save(this.item.getMCNbt()); + } } protected String getConsoleText() { diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java index 5e99de749..4d2727de6 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptLinkedItem.java @@ -30,6 +30,7 @@ public class GuiScriptLinkedItem extends GuiNPCInterface implements GuiYesNoCall public final GuiNPCManageLinked parent; public final LinkedItem linkedItem; private final LinkedItemScript scriptHandler; + boolean loaded = false; public GuiScriptLinkedItem(GuiNPCManageLinked parent, LinkedItem linkedItem) { this.drawDefaultBackground = true; @@ -326,6 +327,11 @@ public class GuiScriptLinkedItem extends GuiNPCInterface implements GuiYesNoCall } public void setGuiData(NBTTagCompound compound) { + if(compound.hasKey("LoadComplete")){ + loaded = true; + return; + } + if (!compound.hasKey("Tab")) { this.scriptHandler.setLanguage(compound.getString("ScriptLanguage")); this.scriptHandler.setEnabled(compound.getBoolean("ScriptEnabled")); @@ -361,19 +367,21 @@ public class GuiScriptLinkedItem extends GuiNPCInterface implements GuiYesNoCall } public void save() { - this.setScript(); + if(loaded) { + this.setScript(); - List containers = this.scriptHandler.getScripts(); - for (int i = 0; i < containers.size(); i++) { - ScriptContainer container = containers.get(i); - LinkedItemScriptPacket.Save(linkedItem.id, i, containers.size(), container.writeToNBT(new NBTTagCompound())); + List containers = this.scriptHandler.getScripts(); + for (int i = 0; i < containers.size(); i++) { + ScriptContainer container = containers.get(i); + LinkedItemScriptPacket.Save(linkedItem.id, i, containers.size(), container.writeToNBT(new NBTTagCompound())); + } + NBTTagCompound scriptData = new NBTTagCompound(); + scriptData.setString("ScriptLanguage", this.scriptHandler.getLanguage()); + scriptData.setBoolean("ScriptEnabled", this.scriptHandler.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.scriptHandler.getConsoleText())); + + LinkedItemScriptPacket.Save(linkedItem.id, -1, containers.size(), scriptData); } - NBTTagCompound scriptData = new NBTTagCompound(); - scriptData.setString("ScriptLanguage", this.scriptHandler.getLanguage()); - scriptData.setBoolean("ScriptEnabled", this.scriptHandler.getEnabled()); - scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.scriptHandler.getConsoleText())); - - LinkedItemScriptPacket.Save(linkedItem.id, -1, containers.size(), scriptData); } public void textUpdate(String text) { diff --git a/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java b/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java index f9b25f61e..33566f932 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java @@ -90,6 +90,11 @@ public class GuiScriptPlayers extends GuiScriptInterface { } public void setGuiData(NBTTagCompound compound) { + if(compound.hasKey("LoadComplete")){ + loaded = true; + return; + } + if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); @@ -109,16 +114,18 @@ public class GuiScriptPlayers extends GuiScriptInterface { } public void save() { - super.save(); - List containers = this.script.getScripts(); - for (int i = 0; i < containers.size(); i++) { - ScriptContainer container = containers.get(i); - PlayerScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + if(loaded) { + super.save(); + List containers = this.script.getScripts(); + for (int i = 0; i < containers.size(); i++) { + ScriptContainer container = containers.get(i); + PlayerScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound())); + } + NBTTagCompound scriptData = new NBTTagCompound(); + scriptData.setString("ScriptLanguage", this.script.getLanguage()); + scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); + PlayerScriptPacket.Save(-1, containers.size(), scriptData); } - NBTTagCompound scriptData = new NBTTagCompound(); - scriptData.setString("ScriptLanguage", this.script.getLanguage()); - scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); - scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); - PlayerScriptPacket.Save(-1, containers.size(), scriptData); } }