Merge branch 'master' into 1.15
This commit is contained in:
commit
be82935455
4 files changed
+27
-4
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);
|
||||
});
|
||||
scriptServer = new CarpetScriptServer();
|
||||
scriptServer.loadAllWorldScripts();
|
||||
MobAI.resetTrackers();
|
||||
}
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ public class ScriptCommand
|
||||
)))))))));
|
||||
LiteralArgumentBuilder<ServerCommandSource> a = literal("load").requires( (player) -> player.hasPermissionLevel(2) ).
|
||||
then(argument("package", StringArgumentType.word()).
|
||||
suggests( (cc, bb) -> suggestMatching(CarpetServer.scriptServer.listAvailableModules(),bb)).
|
||||
suggests( (cc, bb) -> suggestMatching(CarpetServer.scriptServer.listAvailableModules(true),bb)).
|
||||
executes((cc) ->
|
||||
{
|
||||
boolean success = CarpetServer.scriptServer.addScriptHost(cc.getSource(), StringArgumentType.getString(cc, "package"), true);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package carpet.script;
|
||||
|
||||
import carpet.settings.CarpetSettings;
|
||||
import carpet.CarpetServer;
|
||||
import carpet.script.bundled.CameraPathModule;
|
||||
import carpet.script.bundled.FileModule;
|
||||
@@ -51,6 +52,17 @@ public class CarpetScriptServer
|
||||
stopAll = false;
|
||||
resetErrorSnooper();
|
||||
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,12 +89,15 @@ public class CarpetScriptServer
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<String> listAvailableModules()
|
||||
public List<String> listAvailableModules(boolean includeBuiltIns)
|
||||
{
|
||||
List<String> moduleNames = new ArrayList<>();
|
||||
for (ModuleInterface mi: bundledModuleData)
|
||||
if (includeBuiltIns)
|
||||
{
|
||||
moduleNames.add(mi.getName());
|
||||
for (ModuleInterface mi : bundledModuleData)
|
||||
{
|
||||
moduleNames.add(mi.getName());
|
||||
}
|
||||
}
|
||||
File folder = CarpetServer.minecraft_server.getLevelStorage().resolveFile(
|
||||
CarpetServer.minecraft_server.getLevelName(), "scripts");
|
||||
|
||||
@@ -209,6 +209,13 @@ public class CarpetSettings
|
||||
@Rule(desc = "Enables /script command", extra = "An in-game scripting API for Scarpet programming language", category = COMMAND)
|
||||
public static boolean commandScript = true;
|
||||
|
||||
@Rule(
|
||||
desc = "Scarpet script from world files will autoload on server/world start ",
|
||||
extra = "if /script is enabled",
|
||||
category = CREATIVE
|
||||
)
|
||||
public static boolean scriptsAutoload = false;
|
||||
|
||||
@Rule(desc = "Enables /player command to control/spawn players", category = COMMAND)
|
||||
public static boolean commandPlayer = true;
|
||||
|
||||
|
||||
Reference in new issue
Block a user