diff --git a/Essentials/src/main/java/com/earth2me/essentials/ISettings.java b/Essentials/src/main/java/com/earth2me/essentials/ISettings.java index f08e3adf0..9328050eb 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/main/java/com/earth2me/essentials/ISettings.java @@ -33,6 +33,8 @@ public interface ISettings extends IConf { String getChatFormat(String group); + String getWorldAlias(String world); + int getChatRadius(); int getNearRadius(); diff --git a/Essentials/src/main/java/com/earth2me/essentials/Settings.java b/Essentials/src/main/java/com/earth2me/essentials/Settings.java index dfec0e975..767999f30 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/Settings.java +++ b/Essentials/src/main/java/com/earth2me/essentials/Settings.java @@ -129,6 +129,7 @@ public class Settings implements net.ess3.api.ISettings { private Set> nickBlacklist; private double maxProjectileSpeed; private boolean removeEffectsOnHeal; + private Map worldAliases; public Settings(final IEssentials ess) { this.ess = ess; @@ -542,6 +543,20 @@ public class Settings implements net.ess3.api.ISettings { return mFormat; } + @Override + public String getWorldAlias(String world) { + return worldAliases.getOrDefault(world.toLowerCase(), world); + } + + private Map _getWorldAliases() { + final Map map = new HashMap<>(); + final ConfigurationSection section = config.getConfigurationSection(""); + for (String world : section.getKeys(false)) { + map.put(world.toLowerCase(), FormatUtil.replaceFormat(section.getString(world))); + } + return map; + } + @Override public boolean getAnnounceNewPlayers() { return !config.getString("newbies.announce-format", "-").isEmpty(); @@ -656,6 +671,7 @@ public class Settings implements net.ess3.api.ISettings { vanishingItemPolicy = _getVanishingItemsPolicy(); bindingItemPolicy = _getBindingItemsPolicy(); currencySymbol = _getCurrencySymbol(); + worldAliases = _getWorldAliases(); } void _lateLoadItemSpawnBlacklist() { diff --git a/Essentials/src/main/resources/config.yml b/Essentials/src/main/resources/config.yml index cc0df88fb..fdde19667 100644 --- a/Essentials/src/main/resources/config.yml +++ b/Essentials/src/main/resources/config.yml @@ -828,6 +828,12 @@ chat: # You can use permissions to control whether players can use formatting codes in their chat messages. # See https://essentialsx.net/wiki/Color-Permissions.html for more information. + # World aliases allow you to replace the world name with something different in the chat format. + # If you are using world aliases, make sure to remove the '#' at the start to allow the setting to be read. + world-aliases: + # plots: "&dP&r" + # creative: "&eC&r" + ############################################################ # +------------------------------------------------------+ # # | EssentialsX Protect | # diff --git a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java index 0b280a723..1af1b1531 100644 --- a/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java +++ b/EssentialsChat/src/main/java/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java @@ -54,7 +54,7 @@ public class EssentialsChatPlayerListenerLowest extends EssentialsChatPlayer { String format = ess.getSettings().getChatFormat(group); format = format.replace("{0}", group); - format = format.replace("{1}", world); + format = format.replace("{1}", ess.getSettings().getWorldAlias(world)); format = format.replace("{2}", world.substring(0, 1).toUpperCase(Locale.ENGLISH)); format = format.replace("{3}", team == null ? "" : team.getPrefix()); format = format.replace("{4}", team == null ? "" : team.getSuffix());