diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java index a4233666..98ec2ef2 100644 --- a/src/main/java/carpet/script/CarpetScriptHost.java +++ b/src/main/java/carpet/script/CarpetScriptHost.java @@ -56,7 +56,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.function.BiPredicate; import java.util.function.Consumer; -import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -76,10 +76,10 @@ public class CarpetScriptHost extends ScriptHost public Map appConfig; public Map appArgTypes; - Function commandValidator; + Predicate commandValidator; boolean isRuleApp; - private CarpetScriptHost(CarpetScriptServer server, Module code, boolean perUser, ScriptHost parent, Map config, Map argTypes, Function commandValidator, boolean isRuleApp) + private CarpetScriptHost(CarpetScriptServer server, Module code, boolean perUser, ScriptHost parent, Map config, Map argTypes, Predicate commandValidator, boolean isRuleApp) { super(code, perUser, parent); this.saveTimeout = 0; @@ -100,7 +100,7 @@ public class CarpetScriptHost extends ScriptHost this.isRuleApp = isRuleApp; } - public static CarpetScriptHost create(CarpetScriptServer scriptServer, Module module, boolean perPlayer, ServerCommandSource source, Function commandValidator, boolean isRuleApp) + public static CarpetScriptHost create(CarpetScriptServer scriptServer, Module module, boolean perPlayer, ServerCommandSource source, Predicate commandValidator, boolean isRuleApp) { CarpetScriptHost host = new CarpetScriptHost(scriptServer, module, perPlayer, null, Collections.emptyMap(), new HashMap<>(), commandValidator, isRuleApp); // parse code and convert to expression @@ -180,13 +180,13 @@ public class CarpetScriptHost extends ScriptHost } public LiteralArgumentBuilder getNewCommandTree( - List,FunctionArgument>> entries, Function useValidator + List,FunctionArgument>> entries, Predicate useValidator ) throws CommandSyntaxException { String hostName = main.getName(); - Function configValidator = getCommandConfigPermissions(); + Predicate configValidator = getCommandConfigPermissions(); LiteralArgumentBuilder command = literal(hostName). - requires((player) -> CarpetServer.scriptServer.modules.containsKey(hostName) && useValidator.apply(player) && configValidator.apply(player)); + requires((player) -> CarpetServer.scriptServer.modules.containsKey(hostName) && useValidator.test(player) && configValidator.test(player)); for (Pair,FunctionArgument> commandData : entries) { command = this.addPathToCommand(command, commandData.getKey(), commandData.getValue()); @@ -194,7 +194,7 @@ public class CarpetScriptHost extends ScriptHost return command; } - public Function getCommandConfigPermissions() throws CommandSyntaxException + public Predicate getCommandConfigPermissions() throws CommandSyntaxException { Value confValue = appConfig.get(StringValue.of("command_permission")); if (confValue == null) return s -> true; @@ -475,7 +475,7 @@ public class CarpetScriptHost extends ScriptHost return null; } - Function configValidator; + Predicate configValidator; try { configValidator = getCommandConfigPermissions(); @@ -487,7 +487,7 @@ public class CarpetScriptHost extends ScriptHost } String hostName = getName(); LiteralArgumentBuilder command = literal(hostName). - requires((player) -> scriptServer.modules.containsKey(hostName) && commandValidator.apply(player) && configValidator.apply(player)). + requires((player) -> scriptServer.modules.containsKey(hostName) && commandValidator.test(player) && configValidator.test(player)). executes( (c) -> { CarpetScriptHost targetHost = scriptServer.modules.get(hostName).retrieveOwnForExecution(c.getSource()); @@ -540,7 +540,7 @@ public class CarpetScriptHost extends ScriptHost return true; } - public LiteralArgumentBuilder readCommands(Function useValidator) throws CommandSyntaxException + public LiteralArgumentBuilder readCommands(Predicate useValidator) throws CommandSyntaxException { Value commands = appConfig.get(StringValue.of("commands")); diff --git a/src/main/java/carpet/script/CarpetScriptServer.java b/src/main/java/carpet/script/CarpetScriptServer.java index d15c7144..92185750 100644 --- a/src/main/java/carpet/script/CarpetScriptServer.java +++ b/src/main/java/carpet/script/CarpetScriptServer.java @@ -37,7 +37,7 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.function.Function; +import java.util.function.Predicate; import java.util.stream.Collectors; import static net.minecraft.server.command.CommandManager.argument; @@ -226,7 +226,7 @@ public class CarpetScriptServer return modules.get(name); } - public boolean addScriptHost(ServerCommandSource source, String name, Function commandValidator, + public boolean addScriptHost(ServerCommandSource source, String name, Predicate commandValidator, boolean perPlayer, boolean autoload, boolean isRuleApp) { CarpetProfiler.ProfilerToken currentSection = CarpetProfiler.start_section(null, "Scarpet load", CarpetProfiler.TYPE.GENERAL); @@ -457,7 +457,7 @@ public class CarpetScriptServer static class TransferData { boolean perUser; - Function commandValidator; + Predicate commandValidator; boolean isRuleApp; private TransferData(CarpetScriptHost host) { diff --git a/src/main/java/carpet/script/api/WorldAccess.java b/src/main/java/carpet/script/api/WorldAccess.java index fcab18ee..2b22e6df 100644 --- a/src/main/java/carpet/script/api/WorldAccess.java +++ b/src/main/java/carpet/script/api/WorldAccess.java @@ -113,6 +113,7 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.function.BiFunction; +import java.util.function.BiPredicate; import java.util.function.Predicate; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -132,7 +133,7 @@ public class WorldAccess { Context c, String name, List params, - BiFunction test + BiPredicate test ) { CarpetContext cc = (CarpetContext) c; @@ -140,9 +141,9 @@ public class WorldAccess { throw new InternalExpressionException("'" + name + "' requires at least one parameter"); Value v0 = params.get(0); if (v0 instanceof BlockValue) - return BooleanValue.of(test.apply(((BlockValue) v0).getBlockState(), ((BlockValue) v0).getPos())); + return BooleanValue.of(test.test(((BlockValue) v0).getBlockState(), ((BlockValue) v0).getPos())); BlockValue block = BlockArgument.findIn(cc, params, 0).block; - return BooleanValue.of(test.apply(block.getBlockState(), block.getPos())); + return BooleanValue.of(test.test(block.getBlockState(), block.getPos())); } private static Value stateStringQuery(