--- a/net/minecraft/commands/CommandSourceStack.java +++ b/net/minecraft/commands/CommandSourceStack.java @@ -431,6 +_,19 @@ } // CraftBukkit end + // Purpur start - Gamemode extra permissions + public boolean testPermission(int i, String bukkitPermission) { + if (hasPermission(i, bukkitPermission)) { + return true; + } + 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("").replacement(bukkitPermission).build()))); + } + return false; + } + // Purpur end - Gamemode extra permissions + public Vec3 getPosition() { return this.worldPosition; } @@ -516,6 +_,30 @@ } } } + + // Purpur start - Purpur config files + public void sendSuccess(@Nullable String message) { + sendSuccess(message, false); + } + + public void sendSuccess(@Nullable String message, boolean broadcastToOps) { + if (message == null) { + return; + } + sendSuccess(net.kyori.adventure.text.minimessage.MiniMessage.miniMessage().deserialize(message), broadcastToOps); + } + + public void sendSuccess(@Nullable net.kyori.adventure.text.Component message) { + sendSuccess(message, false); + } + + public void sendSuccess(@Nullable net.kyori.adventure.text.Component message, boolean broadcastToOps) { + if (message == null) { + return; + } + sendSuccess(() -> io.papermc.paper.adventure.PaperAdventure.asVanilla(message), broadcastToOps); + } + // Purpur end - Purpur config files public void sendSuccess(Supplier messageSupplier, boolean allowLogging) { boolean flag = this.source.acceptsSuccess() && !this.silent;