diff --git a/src/main/java/com/artillexstudios/axrewards/guis/impl/RewardGui.java b/src/main/java/com/artillexstudios/axrewards/guis/impl/RewardGui.java index 0bab8ca..83d861a 100644 --- a/src/main/java/com/artillexstudios/axrewards/guis/impl/RewardGui.java +++ b/src/main/java/com/artillexstudios/axrewards/guis/impl/RewardGui.java @@ -123,8 +123,14 @@ public void open() { AxRewards.getDatabase().claimReward(player, reward); Scheduler.get().run(scheduledTask -> { + String playerName = player.getName(); + String strippedPlayerName = stripNamePrefix(playerName); for (String command : reward.claimCommands()) { - command = command.replace("%player%", player.getName()); + command = command + .replace("%player%", playerName == null ? "" : playerName) + .replace("%player_with_prefix%", playerName == null ? "" : playerName) + .replace("%player_without_prefix%", strippedPlayerName) + .replace("%player_uuid%", player.getUniqueId().toString()); Bukkit.dispatchCommand(Bukkit.getConsoleSender(), AxRewards.getPlaceholderParser().setPlaceholders(player, command)); } for (Map map : reward.claimItems()) { @@ -181,6 +187,13 @@ public static Set getOpenMenus() { return openMenus; } + private static String stripNamePrefix(String playerName) { + if (playerName == null) return ""; + if (!playerName.startsWith(".")) return playerName; + if (playerName.length() == 1) return playerName; + return playerName.substring(1); + } + private static Map normalizeItemMap(Map original) { final Map copy = new LinkedHashMap<>(); for (Map.Entry entry : original.entrySet()) {