diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index 968956586..ec23f9cb6 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -210,6 +210,7 @@ public class PacketHandlerServer{ compound.setBoolean("ScriptEnabled", data.getEnabled()); compound.setString("ScriptLanguage", data.getLanguage()); compound.setTag("Languages", ScriptController.Instance.nbtLanguages()); + compound.setTag("ScriptConsole", NBTTags.NBTLongStringMap(data.getConsoleText())); Server.sendData(player, EnumPacketClient.GUI_DATA, compound); List containers = data.getScripts(); for (int i = 0; i < containers.size(); i++) { @@ -238,6 +239,7 @@ public class PacketHandlerServer{ } } data.setEnabled(compound.getBoolean("ScriptEnabled")); + data.setConsoleText(NBTTags.GetLongStringMap(compound.getTagList("ScriptConsole", 10))); } } 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 e1dd225b3..e99655dca 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java @@ -1,6 +1,7 @@ package noppes.npcs.client.gui.script; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.NBTTags; import noppes.npcs.client.Client; import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.controllers.ScriptContainer; @@ -20,6 +21,7 @@ public class GuiScriptAllNPCs extends GuiScriptInterface { if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); + script.setConsoleText(NBTTags.GetLongStringMap(compound.getTagList("ScriptConsole", 10))); super.setGuiData(compound); } else { int tab = compound.getInteger("Tab"); @@ -45,6 +47,7 @@ public class GuiScriptAllNPCs extends GuiScriptInterface { NBTTagCompound scriptData = new NBTTagCompound(); scriptData.setString("ScriptLanguage", this.script.getLanguage()); scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); Client.sendData(EnumPacketServer.ScriptNPCSave, -1, scriptData); } } 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 b0b3050b0..5310606ea 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptForge.java @@ -6,6 +6,7 @@ package noppes.npcs.client.gui.script; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.NBTTags; import noppes.npcs.client.Client; import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.controllers.ScriptContainer; @@ -25,6 +26,7 @@ public class GuiScriptForge extends GuiScriptInterface { if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); + script.setConsoleText(NBTTags.GetLongStringMap(compound.getTagList("ScriptConsole", 10))); super.setGuiData(compound); } else { int tab = compound.getInteger("Tab"); @@ -50,6 +52,7 @@ public class GuiScriptForge extends GuiScriptInterface { NBTTagCompound scriptData = new NBTTagCompound(); scriptData.setString("ScriptLanguage", this.script.getLanguage()); scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); Client.sendData(EnumPacketServer.ScriptForgeSave, -1, scriptData); } } 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 426429065..710c46eb0 100644 --- a/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java +++ b/src/main/java/noppes/npcs/client/gui/script/GuiScriptPlayers.java @@ -7,6 +7,7 @@ package noppes.npcs.client.gui.script; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.NBTTags; import noppes.npcs.client.Client; import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.controllers.ScriptContainer; @@ -27,6 +28,7 @@ public class GuiScriptPlayers extends GuiScriptInterface { if (!compound.hasKey("Tab")) { script.setLanguage(compound.getString("ScriptLanguage")); script.setEnabled(compound.getBoolean("ScriptEnabled")); + script.setConsoleText(NBTTags.GetLongStringMap(compound.getTagList("ScriptConsole", 10))); super.setGuiData(compound); } else { int tab = compound.getInteger("Tab"); @@ -52,6 +54,7 @@ public class GuiScriptPlayers extends GuiScriptInterface { NBTTagCompound scriptData = new NBTTagCompound(); scriptData.setString("ScriptLanguage", this.script.getLanguage()); scriptData.setBoolean("ScriptEnabled", this.script.getEnabled()); + scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText())); Client.sendData(EnumPacketServer.ScriptPlayerSave, -1, scriptData); } } diff --git a/src/main/java/noppes/npcs/controllers/data/DataScript.java b/src/main/java/noppes/npcs/controllers/data/DataScript.java index 1ac6ced05..0522e8046 100644 --- a/src/main/java/noppes/npcs/controllers/data/DataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/DataScript.java @@ -173,6 +173,8 @@ public class DataScript implements IScriptHandler { return enabled && ScriptController.HasStart && !npc.worldObj.isRemote && !scripts.isEmpty() && ConfigScript.ScriptingEnabled; } + public void setConsoleText(Map map) {} + public Map getConsoleText() { Map map = new TreeMap(); int tab = 0; diff --git a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java index bd6861f5c..389cf0417 100644 --- a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java @@ -22,12 +22,14 @@ public class ForgeDataScript implements IScriptHandler { private String scriptLanguage = "ECMAScript"; public long lastInited = -1L; private boolean enabled = false; + private Map console = new TreeMap(); public ForgeDataScript() { } public void clear() { this.scripts = new ArrayList(); + this.console = new TreeMap(); } public void readFromNBT(NBTTagCompound compound) { @@ -45,6 +47,7 @@ public class ForgeDataScript implements IScriptHandler { } } this.enabled = compound.getBoolean("ScriptEnabled"); + this.console = NBTTags.GetLongStringMap(compound.getTagList("ScriptConsole", 10)); } public NBTTagCompound writeToNBT(NBTTagCompound compound) { @@ -54,6 +57,7 @@ public class ForgeDataScript implements IScriptHandler { } compound.setString("ScriptLanguage", this.scriptLanguage); compound.setBoolean("ScriptEnabled", this.enabled); + compound.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.console)); return compound; } @@ -71,8 +75,16 @@ public class ForgeDataScript implements IScriptHandler { } } + int i = 0; for (ScriptContainer script : this.scripts) { script.run(type, event); + + for (Entry longStringEntry : script.console.entrySet()) { + if (!ScriptController.Instance.forgeScripts.console.containsKey(longStringEntry.getKey())) { + ScriptController.Instance.forgeScripts.console.put(longStringEntry.getKey(), " tab " + (i + 1) + ":\n" + longStringEntry.getValue()); + } + } + i++; } } } @@ -109,32 +121,14 @@ public class ForgeDataScript implements IScriptHandler { return "ForgeScript"; } - public Map getConsoleText() { - TreeMap map = new TreeMap(); - int tab = 0; - Iterator var3 = this.getScripts().iterator(); - - while(var3.hasNext()) { - ScriptContainer script = (ScriptContainer)var3.next(); - ++tab; - Iterator var5 = script.console.entrySet().iterator(); - - while(var5.hasNext()) { - Entry entry = (Entry)var5.next(); - map.put(entry.getKey(), " tab " + tab + ":\n" + (String)entry.getValue()); - } - } - - return map; + public void setConsoleText(Map map) { + this.console = map; } + public Map getConsoleText() { + return this.console; + } public void clearConsole() { - Iterator var1 = this.getScripts().iterator(); - - while(var1.hasNext()) { - ScriptContainer script = (ScriptContainer)var1.next(); - script.console.clear(); - } - + this.console.clear(); } } diff --git a/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java b/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java index a88218eae..367045402 100644 --- a/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java +++ b/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java @@ -29,6 +29,8 @@ public interface IScriptHandler { String noticeString(); + void setConsoleText(Map map); + Map getConsoleText(); void clearConsole(); diff --git a/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java b/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java index bd10370a8..9c26ece8c 100644 --- a/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/NPCDataScript.java @@ -69,8 +69,16 @@ public class NPCDataScript implements IScriptHandler { this.lastInited = ScriptController.Instance.lastLoaded; } + int i = 0; for (ScriptContainer script : this.scripts) { script.run(type, event); + + for (Map.Entry longStringEntry : script.console.entrySet()) { + if (!ScriptController.Instance.npcScripts.console.containsKey(longStringEntry.getKey())) { + ScriptController.Instance.npcScripts.console.put(longStringEntry.getKey(), " tab " + (i + 1) + ":\n" + longStringEntry.getValue()); + } + } + i++; } } } @@ -111,35 +119,18 @@ public class NPCDataScript implements IScriptHandler { return this.npcAPI; } + public void setConsoleText(Map map) { + this.console = map; + } public Map getConsoleText() { - TreeMap map = new TreeMap(); - int tab = 0; - Iterator var3 = this.getScripts().iterator(); - - while(var3.hasNext()) { - ScriptContainer script = (ScriptContainer)var3.next(); - ++tab; - Iterator var5 = script.console.entrySet().iterator(); - - while(var5.hasNext()) { - Map.Entry entry = (Map.Entry)var5.next(); - map.put(entry.getKey(), " tab " + tab + ":\n" + (String)entry.getValue()); - } - } - - return map; + return this.console; } public void clearConsole() { - Iterator var1 = this.getScripts().iterator(); - - while(var1.hasNext()) { - ScriptContainer script = (ScriptContainer)var1.next(); - script.console.clear(); - } - + this.console.clear(); } + public static final class ToStringHelper { private final String className; private final NPCDataScript.ToStringHelper.ValueHolder holderHead; diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java index c9221aae0..696ea0340 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java @@ -148,12 +148,19 @@ public class PlayerDataScript implements IScriptHandler { } return this.playerAPI; } + + public void setConsoleText(Map map) { + this.console = map; + } + public Map getConsoleText() { return this.console; } + public void clearConsole() { this.console.clear(); } + public static final class ToStringHelper { private final String className; private final PlayerDataScript.ToStringHelper.ValueHolder holderHead; diff --git a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java index 386f867cd..25378ce71 100644 --- a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java +++ b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java @@ -151,6 +151,10 @@ public class ScriptCustomItem extends ScriptItemStack implements IItemCustom, IS return "ScriptedItem"; } + public void setConsoleText(Map map) { + this.console = map; + } + public Map getConsoleText() { return this.console; }