From 8e8ab065074c23e48513fef171fe123c4bded30d Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Fri, 3 Apr 2026 16:32:34 +0200 Subject: [PATCH] Fixed janino script handler serialization inconsistencies --- .../npcs/controllers/data/JaninoScriptHandler.java | 10 ++++++++-- src/main/java/noppes/npcs/janino/JaninoScript.java | 8 +++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/noppes/npcs/controllers/data/JaninoScriptHandler.java b/src/main/java/noppes/npcs/controllers/data/JaninoScriptHandler.java index cbe1230e0..4c9731880 100644 --- a/src/main/java/noppes/npcs/controllers/data/JaninoScriptHandler.java +++ b/src/main/java/noppes/npcs/controllers/data/JaninoScriptHandler.java @@ -56,11 +56,17 @@ public class JaninoScriptHandler> extends ScriptHandle public void readFromNBT(NBTTagCompound compound) { // JaninoScriptable's helper generics assume JaninoScript, but most of our scripts are JaninoScript. // Keep it simple and safe: treat it as raw. - script = (S) JaninoScript.readFromNBT(compound, (JaninoScript) script, (Supplier) factory); + NBTTagCompound tag = compound.getCompoundTag("Script"); + enabled = tag.getBoolean("enabled"); + script = (S) JaninoScript.readFromNBT(tag, (JaninoScript) script, (Supplier) factory); } public void writeToNBT(NBTTagCompound compound) { - JaninoScript.writeToNBT(compound, (JaninoScript) script); + NBTTagCompound tag = new NBTTagCompound(); + tag.setBoolean("enabled", enabled); + JaninoScript.writeToNBT(tag, (JaninoScript) script); + compound.setTag("Script", tag); + } // -------------------- IScriptHandler -------------------- diff --git a/src/main/java/noppes/npcs/janino/JaninoScript.java b/src/main/java/noppes/npcs/janino/JaninoScript.java index f94be8acc..afa55033c 100644 --- a/src/main/java/noppes/npcs/janino/JaninoScript.java +++ b/src/main/java/noppes/npcs/janino/JaninoScript.java @@ -544,15 +544,13 @@ public abstract class JaninoScript implements IScriptUnit { } public static > S readFromNBT(NBTTagCompound compound, S script, Supplier factory) { - if (compound.hasKey("Script")) { - if (script == null) script = factory.get(); - script.readFromNBT(compound.getCompoundTag("Script")); - } + if (script == null) script = factory.get(); + script.readFromNBT(compound); return script; } public static NBTTagCompound writeToNBT(NBTTagCompound compound, JaninoScript script) { - if (script != null) compound.setTag("Script", script.writeToNBT(new NBTTagCompound())); + if (script != null) script.writeToNBT(compound); return compound; } }