diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index ec23f9cb6..c6abaa515 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -226,6 +226,12 @@ public class PacketHandlerServer{ private void saveScripts(IScriptHandler data, ByteBuf buffer, EntityPlayerMP player) throws Exception { int tab = buffer.readInt(); if (tab >= 0) { + int totalScripts = buffer.readInt(); + if (data.getScripts().size() > totalScripts) { + data.setScripts(data.getScripts().subList(0,totalScripts)); + } else while (data.getScripts().size() < totalScripts) { + data.getScripts().add(new ScriptContainer(data)); + } NBTTagCompound tabCompound = Server.readNBT(buffer); data.getScripts().get(tab).readFromNBT(tabCompound); } else { @@ -249,6 +255,8 @@ public class PacketHandlerServer{ this.getScripts(data,buffer,player); } else if(type == EnumPacketServer.ScriptPlayerSave) { this.saveScripts(data,buffer,player); + ScriptController.Instance.lastLoaded = System.currentTimeMillis(); + ScriptController.Instance.playerScripts.lastInited = System.currentTimeMillis(); } } @@ -258,6 +266,8 @@ public class PacketHandlerServer{ this.getScripts(data,buffer,player); } else if (type == EnumPacketServer.ScriptForgeSave) { this.saveScripts(data,buffer,player); + ScriptController.Instance.lastLoaded = System.currentTimeMillis(); + ScriptController.Instance.forgeScripts.lastInited = System.currentTimeMillis(); } } @@ -267,6 +277,8 @@ public class PacketHandlerServer{ this.getScripts(data,buffer,player); } else if(type == EnumPacketServer.ScriptNPCSave) { this.saveScripts(data,buffer,player); + ScriptController.Instance.lastLoaded = System.currentTimeMillis(); + ScriptController.Instance.npcScripts.lastInited = System.currentTimeMillis(); } } 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 e99655dca..ecc521801 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java @@ -42,7 +42,7 @@ public class GuiScriptAllNPCs extends GuiScriptInterface { List containers = this.script.getScripts(); for (int i = 0; i < containers.size(); i++) { ScriptContainer container = containers.get(i); - Client.sendData(EnumPacketServer.ScriptNPCSave, i, container.writeToNBT(new NBTTagCompound())); + Client.sendData(EnumPacketServer.ScriptNPCSave, i, containers.size(), container.writeToNBT(new NBTTagCompound())); } NBTTagCompound scriptData = new NBTTagCompound(); scriptData.setString("ScriptLanguage", this.script.getLanguage()); 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 5310606ea..f7f5a39a4 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java @@ -47,7 +47,7 @@ public class GuiScriptForge extends GuiScriptInterface { List containers = this.script.getScripts(); for (int i = 0; i < containers.size(); i++) { ScriptContainer container = containers.get(i); - Client.sendData(EnumPacketServer.ScriptForgeSave, i, container.writeToNBT(new NBTTagCompound())); + Client.sendData(EnumPacketServer.ScriptForgeSave, i, containers.size(), container.writeToNBT(new NBTTagCompound())); } NBTTagCompound scriptData = new NBTTagCompound(); scriptData.setString("ScriptLanguage", this.script.getLanguage()); 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 710c46eb0..01e356467 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java @@ -49,7 +49,7 @@ public class GuiScriptPlayers extends GuiScriptInterface { List containers = this.script.getScripts(); for (int i = 0; i < containers.size(); i++) { ScriptContainer container = containers.get(i); - Client.sendData(EnumPacketServer.ScriptPlayerSave, i, container.writeToNBT(new NBTTagCompound())); + Client.sendData(EnumPacketServer.ScriptPlayerSave, i, containers.size(), container.writeToNBT(new NBTTagCompound())); } NBTTagCompound scriptData = new NBTTagCompound(); scriptData.setString("ScriptLanguage", this.script.getLanguage()); diff --git a/src/main/java/noppes/npcs/controllers/data/DataScript.java b/src/main/java/noppes/npcs/controllers/data/DataScript.java index 0522e8046..0f7f8f1e7 100644 --- a/src/main/java/noppes/npcs/controllers/data/DataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/DataScript.java @@ -229,6 +229,10 @@ public class DataScript implements IScriptHandler { this.scriptLanguage = lang; } + public void setScripts(List list) { + this.scripts = list; + } + public List getScripts() { return this.scripts; } diff --git a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java index 389cf0417..e73207aed 100644 --- a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java @@ -113,6 +113,10 @@ public class ForgeDataScript implements IScriptHandler { this.scriptLanguage = lang; } + public void setScripts(List list) { + this.scripts = list; + } + public List getScripts() { return this.scripts; } diff --git a/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java b/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java index 367045402..9f05591aa 100644 --- a/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java +++ b/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java @@ -25,6 +25,8 @@ public interface IScriptHandler { void setLanguage(String var1); + void setScripts(List list); + List getScripts(); String noticeString(); diff --git a/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java b/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java index 9c26ece8c..54addfa5b 100644 --- a/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java @@ -101,6 +101,9 @@ public class NPCDataScript implements IScriptHandler { public void setLanguage(String lang) { this.scriptLanguage = lang; } + public void setScripts(List list) { + this.scripts = list; + } public List getScripts() { return this.scripts; } diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java index 696ea0340..8073fa896 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java @@ -131,6 +131,9 @@ public class PlayerDataScript implements IScriptHandler { public void setLanguage(String lang) { this.scriptLanguage = lang; } + public void setScripts(List list) { + this.scripts = list; + } public List getScripts() { return this.scripts; } diff --git a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java index 25378ce71..45b941931 100644 --- a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java +++ b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java @@ -143,6 +143,10 @@ public class ScriptCustomItem extends ScriptItemStack implements IItemCustom, IS this.scriptLanguage = lang; } + public void setScripts(List list) { + this.scripts = list; + } + public List getScripts() { return this.scripts; }