From 6ffe71e58815bcd8ea4649590b81ac358d6ea181 Mon Sep 17 00:00:00 2001 From: okx-code Date: Mon, 29 Sep 2025 00:58:31 +0100 Subject: [PATCH] make nlpp work --- .../civcraft/mc/namelayer/GroupManager.java | 3 +- .../command/commands/PromotePlayer.java | 39 ++++++++++--------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/GroupManager.java b/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/GroupManager.java index c79cb2c1b..0d76b63a7 100644 --- a/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/GroupManager.java +++ b/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/GroupManager.java @@ -10,6 +10,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.database.GroupManagerDao; import vg.civcraft.mc.namelayer.events.GroupCreateEvent; @@ -587,7 +588,7 @@ public class GroupManager { return ranks.toString(); } - public static void displayPlayerTypes(Player p) { + public static void displayPlayerTypes(CommandSender p) { p.sendMessage(ChatColor.RED + "That PlayerType does not exist.\n" + "The current types are: " + getStringOfTypes()); diff --git a/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java b/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java index 67a307b0d..b3078e36c 100644 --- a/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java +++ b/plugins/namelayer-paper/src/main/java/vg/civcraft/mc/namelayer/command/commands/PromotePlayer.java @@ -8,6 +8,8 @@ import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; +import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import vg.civcraft.mc.namelayer.GroupManager.PlayerType; import vg.civcraft.mc.namelayer.NameAPI; @@ -22,20 +24,19 @@ public class PromotePlayer extends BaseCommandMiddle { @Syntax(" ") @Description("Promote/Demote a Player in a Group") @CommandCompletion("@NL_Groups @allplayers @NL_Ranks") - public void execute(Player sender, String groupName, String playerName, String playerType) { - Player p = (Player) sender; - - UUID executor = NameAPI.getUUID(p.getName()); + public void execute(CommandSender sender, String groupName, String playerName, String playerType) { + final boolean isAdmin = sender instanceof ConsoleCommandSender || sender.hasPermission("namelayer.admin"); + UUID executor = sender instanceof Player p ? NameAPI.getUUID(p.getName()) : null; UUID promotee = NameAPI.getUUID(playerName); if (promotee == null) { - p.sendMessage(ChatColor.RED + "That player does not exist"); + sender.sendMessage(ChatColor.RED + "That player does not exist"); return; } if (promotee.equals(executor)) { - p.sendMessage(ChatColor.RED + "You cannot promote yourself"); + sender.sendMessage(ChatColor.RED + "You cannot promote yourself"); return; } @@ -44,26 +45,28 @@ public class PromotePlayer extends BaseCommandMiddle { return; } if (group.isDisciplined()) { - p.sendMessage(ChatColor.RED + "This group is disiplined."); + sender.sendMessage(ChatColor.RED + "This group is disiplined."); return; } PlayerType promoteecurrentType = group.getPlayerType(promotee); PlayerType promoteeType = PlayerType.getPlayerType(playerType); if (promoteeType == null) { - PlayerType.displayPlayerTypes(p); + PlayerType.displayPlayerTypes(sender); return; } if (promoteeType == PlayerType.NOT_BLACKLISTED) { - p.sendMessage(ChatColor.RED + "Nice try"); + sender.sendMessage(ChatColor.RED + "Nice try"); return; } - PlayerType t = group.getPlayerType(executor); // playertype for the player running the command. + if (!isAdmin) { + PlayerType t = group.getPlayerType(executor); // playertype for the player running the command. - if (t == null) { - p.sendMessage(ChatColor.RED + "You are not on that group."); - return; + if (t == null) { + sender.sendMessage(ChatColor.RED + "You are not on that group."); + return; + } } boolean allowed = false; @@ -86,7 +89,7 @@ public class PromotePlayer extends BaseCommandMiddle { } if (!allowed) { - p.sendMessage(ChatColor.RED + "You do not have permissions to promote to this rank"); + sender.sendMessage(ChatColor.RED + "You do not have permissions to promote to this rank"); return; } if (promoteecurrentType != null) { @@ -112,12 +115,12 @@ public class PromotePlayer extends BaseCommandMiddle { } if (!allowed || !group.isMember(promotee)) { //can't edit a player who isn't in the group - p.sendMessage(ChatColor.RED + NameAPI.getCurrentName(promotee) + " is not a member of this group or you do not have permission to edit their rank"); + sender.sendMessage(ChatColor.RED + NameAPI.getCurrentName(promotee) + " is not a member of this group or you do not have permission to edit their rank"); return; } if (group.isOwner(promotee)) { - p.sendMessage(ChatColor.RED + "That player owns the group, you cannot " + sender.sendMessage(ChatColor.RED + "That player owns the group, you cannot " + "demote the player."); return; } @@ -132,7 +135,7 @@ public class PromotePlayer extends BaseCommandMiddle { } group.removeMember(promotee); group.addMember(promotee, promoteeType); - p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(promotee) + " has been added as (PlayerType) " + + sender.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(promotee) + " has been added as (PlayerType) " + promoteeType.toString() + " in (Group) " + group.getName()); oProm.sendMessage(ChatColor.GREEN + "You have been promoted to (PlayerType) " + promoteeType.toString() + " in (Group) " + group.getName()); @@ -140,7 +143,7 @@ public class PromotePlayer extends BaseCommandMiddle { //player is offline change their perms group.removeMember(promotee); group.addMember(promotee, promoteeType); - p.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(promotee) + " has been added as (PlayerType) " + + sender.sendMessage(ChatColor.GREEN + NameAPI.getCurrentName(promotee) + " has been added as (PlayerType) " + promoteeType.toString() + " in (Group) " + group.getName()); } }