diff --git a/API/src/main/java/com/bgsoftware/superiorskyblock/api/island/PlayerRole.java b/API/src/main/java/com/bgsoftware/superiorskyblock/api/island/PlayerRole.java index fca18ea83..7824cdf23 100644 --- a/API/src/main/java/com/bgsoftware/superiorskyblock/api/island/PlayerRole.java +++ b/API/src/main/java/com/bgsoftware/superiorskyblock/api/island/PlayerRole.java @@ -14,6 +14,12 @@ public interface PlayerRole { */ String getName(); + /** + * Get the display-name of the role. + * This is shown in chat, placeholders, etc. + */ + String getDisplayName(); + /** * Get the weight of the role in the ladder. */ diff --git a/src/main/java/com/bgsoftware/superiorskyblock/island/SPlayerRole.java b/src/main/java/com/bgsoftware/superiorskyblock/island/SPlayerRole.java index fefead9ba..7c1d12a04 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/island/SPlayerRole.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/island/SPlayerRole.java @@ -5,6 +5,7 @@ import com.bgsoftware.superiorskyblock.island.permissions.RolePermissionNode; import com.google.common.base.Preconditions; +import javax.annotation.Nullable; import java.util.List; import java.util.Locale; import java.util.Objects; @@ -15,12 +16,15 @@ public final class SPlayerRole implements PlayerRole { private static final SuperiorSkyblockPlugin plugin = SuperiorSkyblockPlugin.getPlugin(); private final String name; + private final String displayName; private final int id; private final int weight; private final RolePermissionNode defaultPermissions; - public SPlayerRole(String name, int id, int weight, List defaultPermissions, SPlayerRole previousRole) { + public SPlayerRole(String name, @Nullable String displayName, int id, int weight, List defaultPermissions, + SPlayerRole previousRole) { this.name = name; + this.displayName = displayName == null ? name : displayName; this.id = id; this.weight = weight; @@ -76,6 +80,11 @@ public String getName() { return name; } + @Override + public String getDisplayName() { + return displayName; + } + @Override public int getWeight() { return weight; diff --git a/src/main/java/com/bgsoftware/superiorskyblock/listeners/PlayersListener.java b/src/main/java/com/bgsoftware/superiorskyblock/listeners/PlayersListener.java index 908f53df4..bfa588e0e 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/listeners/PlayersListener.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/listeners/PlayersListener.java @@ -365,12 +365,12 @@ public void onPlayerAsyncChat(AsyncPlayerChatEvent e) { IslandUtils.sendMessage(island, Message.TEAM_CHAT_FORMAT, new ArrayList<>(), superiorPlayer.getPlayerRole(), superiorPlayer.getName(), eventResult.getResult()); - Message.SPY_TEAM_CHAT_FORMAT.send(Bukkit.getConsoleSender(), superiorPlayer.getPlayerRole(), + Message.SPY_TEAM_CHAT_FORMAT.send(Bukkit.getConsoleSender(), superiorPlayer.getPlayerRole().getDisplayName(), superiorPlayer.getName(), eventResult.getResult()); for (Player _onlinePlayer : Bukkit.getOnlinePlayers()) { SuperiorPlayer onlinePlayer = plugin.getPlayers().getSuperiorPlayer(_onlinePlayer); if (onlinePlayer.hasAdminSpyEnabled()) - Message.SPY_TEAM_CHAT_FORMAT.send(onlinePlayer, superiorPlayer.getPlayerRole(), + Message.SPY_TEAM_CHAT_FORMAT.send(onlinePlayer, superiorPlayer.getPlayerRole().getDisplayName(), superiorPlayer.getName(), eventResult.getResult()); } } else { @@ -386,6 +386,7 @@ public void onPlayerAsyncChat(AsyncPlayerChatEvent e) { .replace("{island-worth-format}", String.valueOf(island == null ? 0 : Formatters.FANCY_NUMBER_FORMATTER.format(island.getWorth(), superiorPlayer.getUserLocale()))) .replace("{island-name}", islandNameFormat == null ? "" : islandNameFormat) + .replace("{island-role}", superiorPlayer.getPlayerRole().getDisplayName()) .replace("{island-position-worth}", island == null ? "" : (plugin.getGrid().getIslandPosition(island, SortingTypes.BY_WORTH) + 1) + "") .replace("{island-position-level}", island == null ? "" : (plugin.getGrid().getIslandPosition(island, SortingTypes.BY_LEVEL) + 1) + "") .replace("{island-position-rating}", island == null ? "" : (plugin.getGrid().getIslandPosition(island, SortingTypes.BY_RATING) + 1) + "") diff --git a/src/main/java/com/bgsoftware/superiorskyblock/menu/button/impl/menu/TopIslandsPagedObjectButton.java b/src/main/java/com/bgsoftware/superiorskyblock/menu/button/impl/menu/TopIslandsPagedObjectButton.java index 50645231e..8b5172ab3 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/menu/button/impl/menu/TopIslandsPagedObjectButton.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/menu/button/impl/menu/TopIslandsPagedObjectButton.java @@ -108,7 +108,8 @@ public ItemStack modifyButtonItem(ItemStack buttonItem, MenuTopIslands superiorM lore.add(placeholdersService.parsePlaceholders(member.asOfflinePlayer(), memberFormat .replace("{}", member.getName()) .replace("{0}", member.getName()) - .replace("{1}", onlineMessage == null ? "" : onlineMessage)) + .replace("{1}", onlineMessage == null ? "" : onlineMessage) + .replace("{2}", member.getPlayerRole().getDisplayName())) ); }); } diff --git a/src/main/java/com/bgsoftware/superiorskyblock/role/RolesHandler.java b/src/main/java/com/bgsoftware/superiorskyblock/role/RolesHandler.java index 4d321759f..33f0744ad 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/role/RolesHandler.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/role/RolesHandler.java @@ -81,8 +81,9 @@ private int loadRole(ConfigurationSection section, int type, SPlayerRole previou int weight = section.getInt("weight", type); int id = section.getInt("id", weight); String name = section.getString("name"); + String displayName = section.getString("display-name"); - PlayerRole playerRole = new SPlayerRole(name, id, weight, section.getStringList("permissions"), previousRole); + PlayerRole playerRole = new SPlayerRole(name, displayName, id, weight, section.getStringList("permissions"), previousRole); this.rolesContainer.addPlayerRole(playerRole); diff --git a/src/main/java/com/bgsoftware/superiorskyblock/service/placeholders/PlaceholdersServiceImpl.java b/src/main/java/com/bgsoftware/superiorskyblock/service/placeholders/PlaceholdersServiceImpl.java index 0cd8f85ce..4d722612f 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/service/placeholders/PlaceholdersServiceImpl.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/service/placeholders/PlaceholdersServiceImpl.java @@ -64,6 +64,7 @@ public final class PlaceholdersServiceImpl implements PlaceholdersService { new ImmutableMap.Builder() .put("texture", SuperiorPlayer::getTextureValue) .put("role", superiorPlayer -> superiorPlayer.getPlayerRole().toString()) + .put("role_display", superiorPlayer -> superiorPlayer.getPlayerRole().getDisplayName()) .put("locale", superiorPlayer -> Formatters.LOCALE_FORMATTER.format(superiorPlayer.getUserLocale())) .put("world_border", superiorPlayer -> Formatters.BOOLEAN_FORMATTER.format(superiorPlayer.hasWorldBorderEnabled(), superiorPlayer.getUserLocale())) .put("blocks_stacker", superiorPlayer -> Formatters.BOOLEAN_FORMATTER.format(superiorPlayer.hasBlocksStackerEnabled(), superiorPlayer.getUserLocale()))