Easier for extensions to add their own built-in apps
This commit is contained in:
1 parent
3140a4fe53
commit
5f34b5c96c
2 files changed
+29
-14
No files matched your search
@@ -43,14 +43,22 @@ public class CarpetScriptServer
|
||||
private final Set<String> holyMoly;
|
||||
public final CarpetEventServer events;
|
||||
|
||||
private static final List<Module> bundledModuleData = new ArrayList<Module>(){{
|
||||
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<Module> 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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user