From cda43fe67a4f64ebb517393a08d11e7524b5292d Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sun, 18 Jan 2026 03:05:02 +0200 Subject: [PATCH] Defaulted IScriptHandler methods to clean up duplicate code across implementations --- .../npcs/blocks/tiles/TileScripted.java | 21 +---------- .../controllers/data/ForgeDataScript.java | 28 --------------- .../controllers/data/GlobalNPCDataScript.java | 21 ----------- .../npcs/controllers/data/IScriptHandler.java | 35 ++++++++++++++++--- .../controllers/data/LinkedItemScript.java | 29 --------------- .../controllers/data/PlayerDataScript.java | 29 +++++---------- 6 files changed, 39 insertions(+), 124 deletions(-) diff --git a/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java b/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java index 7174bac6e..969ea0bac 100644 --- a/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java +++ b/src/main/java/noppes/npcs/blocks/tiles/TileScripted.java @@ -416,26 +416,7 @@ public class TileScripted extends TileEntity implements IScriptBlockHandler { public List getScripts() { return scripts; } - - @Override - public Map getConsoleText() { - Map map = new TreeMap<>(); - int tab = 0; - for (IScriptUnit script : getScripts()) { - tab++; - for (Entry entry : script.getConsole().entrySet()) { - map.put(entry.getKey(), " tab " + tab + ":\n" + entry.getValue()); - } - } - return map; - } - - @Override - public void clearConsole() { - for (IScriptUnit script : getScripts()) { - script.clearConsole(); - } - } + @SideOnly(Side.CLIENT) @Override diff --git a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java index 043e56efe..c7f345d73 100644 --- a/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/ForgeDataScript.java @@ -5,15 +5,11 @@ import net.minecraft.nbt.NBTTagCompound; import noppes.npcs.EventHooks; import noppes.npcs.NBTTags; import noppes.npcs.config.ConfigScript; -import noppes.npcs.constants.EnumScriptType; import noppes.npcs.controllers.ScriptContainer; import noppes.npcs.controllers.ScriptController; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; public class ForgeDataScript implements IScriptHandler { private List scripts = new ArrayList<>(); @@ -56,10 +52,6 @@ public class ForgeDataScript implements IScriptHandler { return compound; } - @Override - public void callScript(EnumScriptType var1, Event var2) { - this.callScript(var1.function, var2); - } public void callScript(String type, Event event) { if (this.isEnabled()) { @@ -117,25 +109,5 @@ public class ForgeDataScript implements IScriptHandler { return this.scripts; } - public String noticeString() { - return "ForgeScript"; - } - public Map getConsoleText() { - TreeMap map = new TreeMap<>(); - int tab = 0; - for (IScriptUnit script : this.getScripts()) { - ++tab; - for (Entry entry : script.getConsole().entrySet()) { - map.put(entry.getKey(), " tab " + tab + ":\n" + entry.getValue()); - } - } - return map; - } - - public void clearConsole() { - for (IScriptUnit script : this.getScripts()) { - script.clearConsole(); - } - } } diff --git a/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java b/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java index c4dc15913..f8580963b 100644 --- a/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/GlobalNPCDataScript.java @@ -7,7 +7,6 @@ import net.minecraft.util.math.BlockPos; import noppes.npcs.NBTTags; import noppes.npcs.api.entity.ICustomNpc; import noppes.npcs.config.ConfigScript; -import noppes.npcs.constants.EnumScriptType; import noppes.npcs.controllers.ScriptContainer; import noppes.npcs.controllers.ScriptController; import noppes.npcs.entity.EntityNPCInterface; @@ -76,9 +75,6 @@ public class GlobalNPCDataScript implements IScriptHandler { return ConfigScript.GlobalNPCScripts && this.enabled && ScriptController.HasStart && this.scripts.size() > 0; } - public void callScript(EnumScriptType type, Event event) { - this.callScript(type.function, event); - } @Override public void callScript(String hookName, Event event) { @@ -145,23 +141,6 @@ public class GlobalNPCDataScript implements IScriptHandler { return this.npcAPI; } - public Map getConsoleText() { - TreeMap map = new TreeMap<>(); - int tab = 0; - for (IScriptUnit script : this.getScripts()) { - ++tab; - for (Map.Entry entry : script.getConsole().entrySet()) { - map.put(entry.getKey(), " tab " + tab + ":\n" + entry.getValue()); - } - } - return map; - } - - public void clearConsole() { - for (IScriptUnit script : this.getScripts()) { - script.clearConsole(); - } - } public static final class ToStringHelper { private final String className; diff --git a/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java b/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java index 6b551feb9..69d17beb2 100644 --- a/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java +++ b/src/main/java/noppes/npcs/controllers/data/IScriptHandler.java @@ -1,17 +1,25 @@ package noppes.npcs.controllers.data; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.Event; import noppes.npcs.constants.EnumScriptType; import java.util.List; import java.util.Map; +import java.util.TreeMap; public interface IScriptHandler { - void callScript(EnumScriptType type, Event event); + default void callScript(EnumScriptType type, Event event) { + if (type != null) + callScript(type.function, event); + + } void callScript(String hookName, Event event); - boolean isClient(); + default boolean isClient() { + return FMLCommonHandler.instance().getEffectiveSide().isClient(); + } boolean getEnabled(); @@ -25,11 +33,28 @@ public interface IScriptHandler { List getScripts(); - String noticeString(); + default String noticeString() { + return ""; + } - Map getConsoleText(); + default Map getConsoleText() { + Map map = new TreeMap<>(); + int tab = 0; + + for (IScriptUnit script : getScripts()) { + ++tab; + for (Map.Entry entry : script.getConsole().entrySet()) { + map.put(entry.getKey(), " tab " + tab + ":\n" + entry.getValue()); + } + } + return map; + } - void clearConsole(); + default void clearConsole() { + for (IScriptUnit script : getScripts()) + script.clearConsole(); + + } /** * Create a new Janino (Java) script unit for this handler. diff --git a/src/main/java/noppes/npcs/controllers/data/LinkedItemScript.java b/src/main/java/noppes/npcs/controllers/data/LinkedItemScript.java index a2f3a3025..2796586a2 100644 --- a/src/main/java/noppes/npcs/controllers/data/LinkedItemScript.java +++ b/src/main/java/noppes/npcs/controllers/data/LinkedItemScript.java @@ -1,21 +1,12 @@ package noppes.npcs.controllers.data; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.Event; import io.netty.buffer.ByteBuf; import kamkeel.npcs.util.ByteBufUtils; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.Constants; -import noppes.npcs.config.ConfigScript; -import noppes.npcs.constants.EnumScriptType; import noppes.npcs.controllers.ScriptController; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; public class LinkedItemScript implements IScriptHandler { public IScriptUnit container; @@ -106,26 +97,6 @@ public class LinkedItemScript implements IScriptHandler { return "LinkedItem"; } - @Override - public Map getConsoleText() { - TreeMap map = new TreeMap<>(); - int tab = 0; - for (IScriptUnit script : this.getScripts()) { - ++tab; - for (Map.Entry entry : script.getConsole().entrySet()) { - map.put(entry.getKey(), " tab " + tab + ":\n" + entry.getValue()); - } - } - return map; - } - - @Override - public void clearConsole() { - for (IScriptUnit script : this.getScripts()) { - script.clearConsole(); - } - } - public void saveScript(ByteBuf buffer) throws IOException { int tab = buffer.readInt(); int totalScripts = buffer.readInt(); diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java index c8dd007f7..1fd06d927 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerDataScript.java @@ -89,9 +89,6 @@ public class PlayerDataScript implements IScriptHandler { return ConfigScript.GlobalPlayerScripts && ScriptController.Instance.playerScripts.enabled && ScriptController.HasStart && (this.player == null || !this.player.worldObj.isRemote); } - public void callScript(EnumScriptType type, Event event) { - this.callScript(type.function, event); - } @Override public void callScript(String hookName, Event event) { @@ -187,10 +184,9 @@ public class PlayerDataScript implements IScriptHandler { public String noticeString() { if (this.player == null) { return "Global script"; - } else { - BlockPos pos = new BlockPos(this.player); - return PlayerDataScript.toStringHelper(this.player).add("x", pos.getX()).add("y", pos.getY()).add("z", pos.getZ()).toString(); } + BlockPos pos = new BlockPos(this.player); + return PlayerDataScript.toStringHelper(this.player).add("x", pos.getX()).add("y", pos.getY()).add("z", pos.getZ()).toString(); } public IPlayer getPlayer() { @@ -201,28 +197,19 @@ public class PlayerDataScript implements IScriptHandler { } public Map getConsoleText() { - if (ConfigScript.IndividualPlayerScripts) + if (ConfigScript.IndividualPlayerScripts) { return console; - - TreeMap map = new TreeMap<>(); - int tab = 0; - for (IScriptUnit script : this.getScripts()) { - ++tab; - for (Entry entry : script.getConsole().entrySet()) { - map.put(entry.getKey(), " tab " + tab + ":\n" + entry.getValue()); - } } - return map; + return IScriptHandler.super.getConsoleText(); } + @Override public void clearConsole() { - if (ConfigScript.IndividualPlayerScripts) + if (ConfigScript.IndividualPlayerScripts) { console.clear(); - else { - for (IScriptUnit script : this.getScripts()) { - script.clearConsole(); - } + return; } + IScriptHandler.super.clearConsole(); } public static final class ToStringHelper {