diff options
Diffstat (limited to 'patch-remap/mache-vineflower/net/minecraft/server/commands/GameRuleCommand.java.patch')
-rw-r--r-- | patch-remap/mache-vineflower/net/minecraft/server/commands/GameRuleCommand.java.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/patch-remap/mache-vineflower/net/minecraft/server/commands/GameRuleCommand.java.patch b/patch-remap/mache-vineflower/net/minecraft/server/commands/GameRuleCommand.java.patch new file mode 100644 index 0000000000..4ac723ebec --- /dev/null +++ b/patch-remap/mache-vineflower/net/minecraft/server/commands/GameRuleCommand.java.patch @@ -0,0 +1,73 @@ +--- a/net/minecraft/server/commands/GameRuleCommand.java ++++ b/net/minecraft/server/commands/GameRuleCommand.java +@@ -4,39 +4,48 @@ + import com.mojang.brigadier.builder.LiteralArgumentBuilder; + import com.mojang.brigadier.context.CommandContext; + import net.minecraft.commands.CommandSourceStack; +-import net.minecraft.commands.Commands; + import net.minecraft.network.chat.Component; + import net.minecraft.world.level.GameRules; + + public class GameRuleCommand { ++ ++ public GameRuleCommand() {} ++ + public static void register(CommandDispatcher<CommandSourceStack> dispatcher) { +- final LiteralArgumentBuilder<CommandSourceStack> literalArgumentBuilder = Commands.literal("gamerule").requires(source -> source.hasPermission(2)); +- GameRules.visitGameRuleTypes( +- new GameRules.GameRuleTypeVisitor() { +- @Override +- public <T extends GameRules.Value<T>> void visit(GameRules.Key<T> key, GameRules.Type<T> type) { +- literalArgumentBuilder.then( +- Commands.literal(key.getId()) +- .executes(context -> GameRuleCommand.queryRule(context.getSource(), key)) +- .then(type.createArgument("value").executes(context -> GameRuleCommand.setRule(context, key))) +- ); +- } ++ final LiteralArgumentBuilder<CommandSourceStack> literalargumentbuilder = (LiteralArgumentBuilder) net.minecraft.commands.Commands.literal("gamerule").requires((commandlistenerwrapper) -> { ++ return commandlistenerwrapper.hasPermission(2); ++ }); ++ ++ GameRules.visitGameRuleTypes(new GameRules.GameRuleTypeVisitor() { ++ @Override ++ public <T extends GameRules.Value<T>> void visit(GameRules.Key<T> key, GameRules.Type<T> type) { ++ literalargumentbuilder.then(((LiteralArgumentBuilder) net.minecraft.commands.Commands.literal(key.getId()).executes((commandcontext) -> { ++ return GameRuleCommand.queryRule((CommandSourceStack) commandcontext.getSource(), key); ++ })).then(type.createArgument("value").executes((commandcontext) -> { ++ return GameRuleCommand.setRule(commandcontext, key); ++ }))); + } +- ); +- dispatcher.register(literalArgumentBuilder); ++ }); ++ dispatcher.register(literalargumentbuilder); + } + + static <T extends GameRules.Value<T>> int setRule(CommandContext<CommandSourceStack> source, GameRules.Key<T> gameRule) { +- CommandSourceStack commandSourceStack = source.getSource(); +- T rule = commandSourceStack.getServer().getGameRules().getRule(gameRule); +- rule.setFromArgument(source, "value"); +- commandSourceStack.sendSuccess(() -> Component.translatable("commands.gamerule.set", gameRule.getId(), rule.toString()), true); +- return rule.getCommandResult(); ++ CommandSourceStack commandlistenerwrapper = (CommandSourceStack) source.getSource(); ++ T t0 = commandlistenerwrapper.getLevel().getGameRules().getRule(gameRule); // CraftBukkit ++ ++ t0.setFromArgument(source, "value"); ++ commandlistenerwrapper.sendSuccess(() -> { ++ return Component.translatable("commands.gamerule.set", gameRule.getId(), t0.toString()); ++ }, true); ++ return t0.getCommandResult(); + } + + static <T extends GameRules.Value<T>> int queryRule(CommandSourceStack source, GameRules.Key<T> gameRule) { +- T rule = source.getServer().getGameRules().getRule(gameRule); +- source.sendSuccess(() -> Component.translatable("commands.gamerule.query", gameRule.getId(), rule.toString()), false); +- return rule.getCommandResult(); ++ T t0 = source.getLevel().getGameRules().getRule(gameRule); // CraftBukkit ++ ++ source.sendSuccess(() -> { ++ return Component.translatable("commands.gamerule.query", gameRule.getId(), t0.toString()); ++ }, false); ++ return t0.getCommandResult(); + } + } |