diff --git a/src/main/java/carpet/script/CarpetScriptServer.java b/src/main/java/carpet/script/CarpetScriptServer.java index 2f0e627d..99fa716f 100644 --- a/src/main/java/carpet/script/CarpetScriptServer.java +++ b/src/main/java/carpet/script/CarpetScriptServer.java @@ -43,14 +43,22 @@ public class CarpetScriptServer private final Set holyMoly; public final CarpetEventServer events; - private static final List bundledModuleData = new ArrayList(){{ - add(new BundledModule("camera", false)); - add(new BundledModule("overlay", false)); - add(new BundledModule("event_test", false)); - add(new BundledModule("stats_test", false)); - add(new BundledModule("math", true)); - add(new BundledModule("chunk_display", false)); - }}; + private static final List bundledModuleData = new ArrayList<>(); + + public static void registerBuiltInScript(BundledModule app) + { + bundledModuleData.add(app); + } + + static + { + registerBuiltInScript(BundledModule.carpetNative("camera", false)); + registerBuiltInScript(BundledModule.carpetNative("overlay", false)); + registerBuiltInScript(BundledModule.carpetNative("event_test", false)); + registerBuiltInScript(BundledModule.carpetNative("stats_test", false)); + registerBuiltInScript(BundledModule.carpetNative("math", true)); + registerBuiltInScript(BundledModule.carpetNative("chunk_display", false)); + } public CarpetScriptServer(MinecraftServer server) { diff --git a/src/main/java/carpet/script/bundled/BundledModule.java b/src/main/java/carpet/script/bundled/BundledModule.java index 019673ca..08145546 100644 --- a/src/main/java/carpet/script/bundled/BundledModule.java +++ b/src/main/java/carpet/script/bundled/BundledModule.java @@ -11,22 +11,29 @@ public class BundledModule extends Module private String name; private String code; private boolean library; - public BundledModule(String scriptName, boolean isLibrary) + public BundledModule(String name, String code, boolean isLibrary) { library = isLibrary; + this.name = name; + this.code = code; + } + public static BundledModule carpetNative(String scriptName, boolean isLibrary) + { + BundledModule module = new BundledModule(null, null, isLibrary); try { - name = scriptName.toLowerCase(Locale.ROOT); - code = IOUtils.toString( - getClass().getClassLoader().getResourceAsStream("assets/carpet/scripts/"+name+(isLibrary?".scl":".sc")), + module.name = scriptName.toLowerCase(Locale.ROOT); + module.code = IOUtils.toString( + BundledModule.class.getClassLoader().getResourceAsStream("assets/carpet/scripts/"+scriptName+(isLibrary?".scl":".sc")), StandardCharsets.UTF_8 ); } catch ( NullPointerException | IOException e) { - name = null; - code = null; + module.name = null; + module.code = null; } + return module; } @Override