handle the no permission message component directly, closes #1421

This commit is contained in:
granny
2023-08-26 23:18:39 -07:00
parent 4240de4a38
commit ab6cc70354

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Gamemode extra permissions
diff --git a/src/main/java/net/minecraft/commands/CommandSourceStack.java b/src/main/java/net/minecraft/commands/CommandSourceStack.java
index f03fd95412883a3a5bbe2b91c603874bf147e6cb..431ad4151023a9fc8549fbd485018457b7efa2e0 100644
index f03fd95412883a3a5bbe2b91c603874bf147e6cb..873659dcf8c8431f21bd2b23b8d7bdb4ea7e03e8 100644
--- a/src/main/java/net/minecraft/commands/CommandSourceStack.java
+++ b/src/main/java/net/minecraft/commands/CommandSourceStack.java
@@ -227,6 +227,21 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
@@ -227,6 +227,19 @@ public class CommandSourceStack implements SharedSuggestionProvider, com.destroy
}
// CraftBukkit end
@@ -17,11 +17,9 @@ index f03fd95412883a3a5bbe2b91c603874bf147e6cb..431ad4151023a9fc8549fbd485018457
+ if (hasPermission(i, bukkitPermission)) {
+ return true;
+ }
+ String permissionMessage = getLevel().getServer().server.getPermissionMessage();
+ if (!permissionMessage.isBlank()) {
+ for (String line : permissionMessage.replace("<permission>", bukkitPermission).split("\n")) {
+ sendFailure(Component.literal(line));
+ }
+ net.kyori.adventure.text.Component permissionMessage = getLevel().getServer().server.permissionMessage();
+ if (!permissionMessage.equals(net.kyori.adventure.text.Component.empty())) {
+ sendFailure(io.papermc.paper.adventure.PaperAdventure.asVanilla(permissionMessage.replaceText(net.kyori.adventure.text.TextReplacementConfig.builder().matchLiteral("<permission>").replacement(bukkitPermission).build())));
+ }
+ return false;
+ }
@@ -75,7 +73,7 @@ index 2959f713ce75a1df9c6c7cf5e021690cfcb6e1e7..3fa9539cfb2c35beeba6d44fa05cee97
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "defaultgamemode", "Allows the user to change the default gamemode of the server", PermissionDefault.OP, commands);
DefaultPermissions.registerPermission(CommandPermissions.PREFIX + "seed", "Allows the user to view the seed of the world", PermissionDefault.OP, commands);
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index a212357e968393f4d303364e63092defad3d7835..3d0fc534454cd8b543e4fa55aa9dfe1e55ee1b49 100644
index 85a41b50a1f0a89264585ecd621e7e5a1de67efc..a66c35ce86437311b38d1787c766bbe179cc5dfa 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -233,6 +233,7 @@ public class PurpurConfig {