From 56a0a83ddb1b7472dbc9762e2aca396605c62085 Mon Sep 17 00:00:00 2001 From: File Date: Sun, 20 Apr 1997 05:37:42 -0800 Subject: [PATCH] purpur File Patches diff --git a/net/minecraft/server/commands/GameModeCommand.java b/net/minecraft/server/commands/GameModeCommand.java index 503447fbb54bed493f1d867c75ef3f344fe7b81b..a601df223c685f435241cd193a912898e60bab03 100644 --- a/net/minecraft/server/commands/GameModeCommand.java +++ b/net/minecraft/server/commands/GameModeCommand.java @@ -53,6 +53,18 @@ public class GameModeCommand { } private static int setMode(CommandContext context, Collection players, GameType gameType) { + // Purpur start - Gamemode extra permissions + if (org.purpurmc.purpur.PurpurConfig.commandGamemodeRequiresPermission) { + String gamemode = gameType.getName(); + CommandSourceStack sender = context.getSource(); + if (!sender.testPermission(Permissions.COMMANDS_GAMEMASTER, "minecraft.command.gamemode." + gamemode)) { + return 0; + } + if (sender.getEntity() instanceof ServerPlayer player && (players.size() > 1 || !players.contains(player)) && !sender.testPermission(Permissions.COMMANDS_GAMEMASTER, "minecraft.command.gamemode." + gamemode + ".other")) { + return 0; + } + } + // Purpur end - Gamemode extra permissions int i = 0; for (ServerPlayer serverPlayer : players) {