diff options
author | maxcom1 <[email protected]> | 2024-03-23 22:26:17 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2024-03-23 17:26:17 -0400 |
commit | b6001403e9703cadaa6e8c8558e732b91c3c6d6e (patch) | |
tree | a8c57bbc334a8ad48d4ad2b43db335667b142bee /patches/server/0628-Vanilla-command-permission-fixes.patch | |
parent | 9ec7dfcbc41c6e625de0050b6997160a75df9f44 (diff) | |
download | Paper-b6001403e9703cadaa6e8c8558e732b91c3c6d6e.tar.gz Paper-b6001403e9703cadaa6e8c8558e732b91c3c6d6e.zip |
Add methods to change entity physics (#10334)
Diffstat (limited to 'patches/server/0628-Vanilla-command-permission-fixes.patch')
-rw-r--r-- | patches/server/0628-Vanilla-command-permission-fixes.patch | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/patches/server/0628-Vanilla-command-permission-fixes.patch b/patches/server/0628-Vanilla-command-permission-fixes.patch deleted file mode 100644 index 25c28237d6..0000000000 --- a/patches/server/0628-Vanilla-command-permission-fixes.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jason Penilla <[email protected]> -Date: Wed, 25 Aug 2021 13:19:53 -0700 -Subject: [PATCH] Vanilla command permission fixes - -Fixes permission checks for vanilla commands which don't have a -requirement, as well as for namespaced vanilla commands. - -== AT == -public-f com.mojang.brigadier.tree.CommandNode requirement - -diff --git a/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java b/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java -index 899008b2980d13f1be6280cd8cb959c53a29bebf..d5f7da3502575f6847f3c22ab0e942848a7c6031 100644 ---- a/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java -+++ b/src/main/java/com/mojang/brigadier/builder/ArgumentBuilder.java -@@ -14,9 +14,17 @@ import java.util.Collections; - import java.util.function.Predicate; - - public abstract class ArgumentBuilder<S, T extends ArgumentBuilder<S, T>> { -+ // Paper start - Vanilla command permission fixes -+ private static final Predicate<Object> DEFAULT_REQUIREMENT = s -> true; -+ -+ @SuppressWarnings("unchecked") -+ public static <S> Predicate<S> defaultRequirement() { -+ return (Predicate<S>) DEFAULT_REQUIREMENT; -+ } -+ // Paper end - Vanilla command permission fixes - private final RootCommandNode<S> arguments = new RootCommandNode<>(); - private Command<S> command; -- private Predicate<S> requirement = s -> true; -+ private Predicate<S> requirement = defaultRequirement(); // Paper - Vanilla command permission fixes - private CommandNode<S> target; - private RedirectModifier<S> modifier = null; - private boolean forks; -diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java -index c11977dceeba4120cdb63972c4ec486640d8114e..8be58d29f2a4753a241e68bd305b3e30186ca0e9 100644 ---- a/src/main/java/net/minecraft/commands/Commands.java -+++ b/src/main/java/net/minecraft/commands/Commands.java -@@ -257,6 +257,13 @@ public class Commands { - } - this.vanillaCommandNodes.addAll(this.dispatcher.getRoot().getChildren()); // Paper - Add UnknownCommandEvent - -+ // Paper start - Vanilla command permission fixes -+ for (final CommandNode<CommandSourceStack> node : this.dispatcher.getRoot().getChildren()) { -+ if (node.getRequirement() == com.mojang.brigadier.builder.ArgumentBuilder.<CommandSourceStack>defaultRequirement()) { -+ node.requirement = stack -> stack.source == CommandSource.NULL || stack.getBukkitSender().hasPermission(org.bukkit.craftbukkit.command.VanillaCommandWrapper.getPermission(node)); -+ } -+ } -+ // Paper end - Vanilla command permission fixes - // CraftBukkit start - } - -diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -index 5e6645e16b185aaa6f719055ddbf670b8741fead..bda9a0b99184adce28bb7851612ed7f4e324826d 100644 ---- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java -@@ -86,7 +86,23 @@ public final class VanillaCommandWrapper extends BukkitCommand { - } - - public static String getPermission(CommandNode<CommandSourceStack> vanillaCommand) { -- return "minecraft.command." + ((vanillaCommand.getRedirect() == null) ? vanillaCommand.getName() : vanillaCommand.getRedirect().getName()); -+ // Paper start - Vanilla command permission fixes -+ final String commandName; -+ if (vanillaCommand.getRedirect() == null) { -+ commandName = vanillaCommand.getName(); -+ } else { -+ commandName = vanillaCommand.getRedirect().getName(); -+ } -+ return "minecraft.command." + stripDefaultNamespace(commandName); -+ } -+ -+ private static String stripDefaultNamespace(final String maybeNamespaced) { -+ final String prefix = "minecraft:"; -+ if (maybeNamespaced.startsWith(prefix)) { -+ return maybeNamespaced.substring(prefix.length()); -+ } -+ return maybeNamespaced; -+ // Paper end - Vanilla command permission fixes - } - - private String toDispatcher(String[] args, String name) { |