diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index 9cc417e26..e874f3376 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -241,6 +241,9 @@ public class PacketHandlerServer{ } } data.setEnabled(compound.getBoolean("ScriptEnabled")); + for (ScriptContainer container : data.getScripts()) { + container.setEngine(data.getLanguage()); + } } } diff --git a/src/main/java/noppes/npcs/ScriptItemEventHandler.java b/src/main/java/noppes/npcs/ScriptItemEventHandler.java index 7bb0cae37..bd83aa1bf 100644 --- a/src/main/java/noppes/npcs/ScriptItemEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptItemEventHandler.java @@ -58,7 +58,7 @@ public class ScriptItemEventHandler { try { if (event.entityItem.getEntityItem().getItem() == CustomItems.scripted_item && !event.isCanceled()) { IItemCustom isw = ItemScripted.GetWrapper(event.entityItem.getEntityItem()); - EventHooks.onScriptItemTossed(isw, event.player, event.entityItem); + event.setCanceled(EventHooks.onScriptItemTossed(isw, event.player, event.entityItem)); } } catch (Exception e) {} } diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index 3cc967326..ac4fe8f33 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -329,7 +329,7 @@ public class ScriptPlayerEventHandler { if(event.player.worldObj instanceof WorldServer) { PlayerDataScript handler = ScriptController.Instance.playerScripts; IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player); - EventHooks.onPlayerToss(handler, scriptPlayer, event.entityItem); + event.setCanceled(EventHooks.onPlayerToss(handler, scriptPlayer, event.entityItem)); } } diff --git a/src/main/java/noppes/npcs/controllers/ScriptContainer.java b/src/main/java/noppes/npcs/controllers/ScriptContainer.java index fd70c47ca..0d2b46e80 100644 --- a/src/main/java/noppes/npcs/controllers/ScriptContainer.java +++ b/src/main/java/noppes/npcs/controllers/ScriptContainer.java @@ -150,7 +150,6 @@ public class ScriptContainer { if(errored || !hasCode() || unknownFunctions.contains(type) || !ConfigScript.ScriptingEnabled) return; - this.setEngine(handler.getLanguage()); if(engine == null) return; if(ScriptController.Instance.lastLoaded > this.lastCreated){ diff --git a/src/main/java/noppes/npcs/controllers/data/DataScript.java b/src/main/java/noppes/npcs/controllers/data/DataScript.java index a8ad9ed36..f24d9e5bf 100644 --- a/src/main/java/noppes/npcs/controllers/data/DataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/DataScript.java @@ -72,11 +72,19 @@ public class DataScript implements IScriptHandler { this.scriptLanguage = "ECMAScript"; } } + + for (ScriptContainer container : this.scripts.values()) { + container.setEngine(this.getLanguage()); + } + enabled = compound.getBoolean("ScriptEnabled"); } public void readEventsFromNBT(NBTTagCompound compound) { eventScripts = NBTTags.GetScript(compound,this); + for (ScriptContainer container : this.eventScripts) { + container.setEngine(this.getLanguage()); + } } public NBTTagCompound writeToNBT(NBTTagCompound compound) { @@ -149,7 +157,6 @@ public class DataScript implements IScriptHandler { ScriptContainer script = scripts.get(type); if(script == null || script.errored || !script.hasCode()) return false; - script.setEngine(scriptLanguage); if(script.engine == null) return false; for(int i = 0; i + 1 < obs.length; i += 2){ diff --git a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java index fe14b2496..480cc4f47 100644 --- a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java @@ -46,6 +46,10 @@ public class ForgeDataScript implements IScriptHandler { } } this.enabled = compound.getBoolean("ScriptEnabled"); + + for (ScriptContainer container : this.scripts) { + container.setEngine(this.getLanguage()); + } } public NBTTagCompound writeToNBT(NBTTagCompound compound) { diff --git a/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java b/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java index 8d31d650a..99169c1a9 100644 --- a/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java @@ -49,6 +49,10 @@ public class GlobalNPCDataScript implements IScriptHandler { } } this.enabled = compound.getBoolean("ScriptEnabled"); + + for (ScriptContainer container : this.scripts) { + container.setEngine(this.getLanguage()); + } } public NBTTagCompound writeToNBT(NBTTagCompound compound) { compound.setInteger("TotalScripts",this.scripts.size()); diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java index d1df5801f..5e600d41a 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java @@ -55,6 +55,10 @@ public class PlayerDataScript implements IScriptHandler { } } this.enabled = compound.getBoolean("ScriptEnabled"); + + for (ScriptContainer container : this.scripts) { + container.setEngine(this.getLanguage()); + } } public NBTTagCompound writeToNBT(NBTTagCompound compound) { compound.setInteger("TotalScripts",this.scripts.size()); diff --git a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java index dba3243ae..f0a2428ad 100644 --- a/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java +++ b/src/main/java/noppes/npcs/scripted/item/ScriptCustomItem.java @@ -427,6 +427,9 @@ public class ScriptCustomItem extends ScriptItemStack implements IItemCustom, IS NBTTagCompound c = this.item.getTagCompound(); if (c != null) { this.setScriptNBT(c.getCompoundTag("ScriptedData")); + for (ScriptContainer container : this.scripts) { + container.setEngine(this.getLanguage()); + } } }