added rule autoloadScripts to load scripts at startup.
This commit is contained in:
1 parent
9050a8a0ef
commit
b89bb3e503
3 files changed
+19
-3
No files matched your search
@@ -61,6 +61,7 @@ public class CarpetServer // static for now - easier to handle all around the co
|
|||||||
e.onServerLoaded(server);
|
e.onServerLoaded(server);
|
||||||
});
|
});
|
||||||
scriptServer = new CarpetScriptServer();
|
scriptServer = new CarpetScriptServer();
|
||||||
|
scriptServer.loadAllWorldScripts();
|
||||||
MobAI.resetTrackers();
|
MobAI.resetTrackers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ public class ScriptCommand
|
|||||||
)))))))));
|
)))))))));
|
||||||
LiteralArgumentBuilder<ServerCommandSource> a = literal("load").requires( (player) -> player.hasPermissionLevel(2) ).
|
LiteralArgumentBuilder<ServerCommandSource> a = literal("load").requires( (player) -> player.hasPermissionLevel(2) ).
|
||||||
then(argument("package", StringArgumentType.word()).
|
then(argument("package", StringArgumentType.word()).
|
||||||
suggests( (cc, bb) -> suggestMatching(CarpetServer.scriptServer.listAvailableModules(),bb)).
|
suggests( (cc, bb) -> suggestMatching(CarpetServer.scriptServer.listAvailableModules(true),bb)).
|
||||||
executes((cc) ->
|
executes((cc) ->
|
||||||
{
|
{
|
||||||
boolean success = CarpetServer.scriptServer.addScriptHost(cc.getSource(), StringArgumentType.getString(cc, "package"), true);
|
boolean success = CarpetServer.scriptServer.addScriptHost(cc.getSource(), StringArgumentType.getString(cc, "package"), true);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package carpet.script;
|
package carpet.script;
|
||||||
|
|
||||||
|
import carpet.settings.CarpetSettings;
|
||||||
import carpet.CarpetServer;
|
import carpet.CarpetServer;
|
||||||
import carpet.script.bundled.CameraPathModule;
|
import carpet.script.bundled.CameraPathModule;
|
||||||
import carpet.script.bundled.FileModule;
|
import carpet.script.bundled.FileModule;
|
||||||
@@ -51,6 +52,17 @@ public class CarpetScriptServer
|
|||||||
stopAll = false;
|
stopAll = false;
|
||||||
resetErrorSnooper();
|
resetErrorSnooper();
|
||||||
holyMoly = CarpetServer.minecraft_server.getCommandManager().getDispatcher().getRoot().getChildren().stream().map(CommandNode::getName).collect(Collectors.toSet());
|
holyMoly = CarpetServer.minecraft_server.getCommandManager().getDispatcher().getRoot().getChildren().stream().map(CommandNode::getName).collect(Collectors.toSet());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadAllWorldScripts()
|
||||||
|
{
|
||||||
|
if (CarpetSettings.scriptsAutoload)
|
||||||
|
{
|
||||||
|
for (String moduleName: listAvailableModules(false))
|
||||||
|
{
|
||||||
|
addScriptHost(CarpetServer.minecraft_server.getCommandSource(), moduleName, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,13 +89,16 @@ public class CarpetScriptServer
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> listAvailableModules()
|
public List<String> listAvailableModules(boolean includeBuiltIns)
|
||||||
{
|
{
|
||||||
List<String> moduleNames = new ArrayList<>();
|
List<String> moduleNames = new ArrayList<>();
|
||||||
for (ModuleInterface mi: bundledModuleData)
|
if (includeBuiltIns)
|
||||||
|
{
|
||||||
|
for (ModuleInterface mi : bundledModuleData)
|
||||||
{
|
{
|
||||||
moduleNames.add(mi.getName());
|
moduleNames.add(mi.getName());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
File folder = CarpetServer.minecraft_server.getLevelStorage().resolveFile(
|
File folder = CarpetServer.minecraft_server.getLevelStorage().resolveFile(
|
||||||
CarpetServer.minecraft_server.getLevelName(), "scripts");
|
CarpetServer.minecraft_server.getLevelName(), "scripts");
|
||||||
File[] listOfFiles = folder.listFiles();
|
File[] listOfFiles = folder.listFiles();
|
||||||
|
|||||||
Reference in new issue
Block a user