Passed default imports to JaninoScript

This commit is contained in:
bigguy345 committed 2026-01-14 03:03:34 +02:00
1 parent 54d0fe2b1b
commit a44cc4f1bb
2 files changed
+19 -15

No files matched your search

@@ -58,11 +58,14 @@ public abstract class JaninoScript<T> implements IScriptUnit {
// Map from EnumScriptType to Method for OLD tab-based script system
private Map<EnumScriptType, Method> hookTypeMap = new HashMap<>();
protected JaninoScript(Class<T> type, Consumer<IScriptBodyBuilder<T>> buildSettings) {
// Default imports for this script type (e.g., noppes.npcs.api.*)
private final String[] defaultImports;
protected JaninoScript(Class<T> type, String[] defaultImports) {
this.type = type;
this.builder = IScriptBodyBuilder
.getBuilder(type, CustomNpcs.getClientCompiler());
buildSettings.accept(builder);
this.defaultImports = defaultImports != null ? defaultImports : new String[0];
this.builder = IScriptBodyBuilder.getBuilder(type, CustomNpcs.getClientCompiler())
.setDefaultImports(defaultImports);
Permissions permissions = new Permissions();
permissions.setReadOnly();
@@ -14,18 +14,19 @@ import noppes.npcs.janino.annotations.ScriptHook;
*/
public class JaninoNpcScript extends JaninoScript<JaninoNpcScript.Functions> {
/** Default imports available to NPC scripts without explicit import statements. */
public static final String[] DEFAULT_IMPORTS = {
"noppes.npcs.api.*",
"noppes.npcs.api.entity.*",
"noppes.npcs.api.event.*",
"noppes.npcs.api.handler.*",
"noppes.npcs.api.handler.data.*",
"noppes.npcs.api.item.*",
"noppes.npcs.api.ability.*"
};
public JaninoNpcScript() {
super(Functions.class, (builder) -> builder
.setDefaultImports(
"noppes.npcs.api.*",
"noppes.npcs.api.entity.*",
"noppes.npcs.api.event.*",
"noppes.npcs.api.handler.*",
"noppes.npcs.api.handler.data.*",
"noppes.npcs.api.item.*",
"noppes.npcs.api.ability.*"
)
);
super(Functions.class, DEFAULT_IMPORTS);
}
/**