diff --git a/Essentials/src/main/java/com/earth2me/essentials/I18n.java b/Essentials/src/main/java/com/earth2me/essentials/I18n.java index c7ae82eaada..247661938a2 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/I18n.java +++ b/Essentials/src/main/java/com/earth2me/essentials/I18n.java @@ -141,10 +141,10 @@ public void blockingLoadBundle(final Locale locale) { ResourceBundle bundle; try { bundle = ResourceBundle.getBundle(MESSAGES, locale, new FileResClassLoader(I18n.class.getClassLoader(), ess), new UTF8PropertiesControl()); - } catch (MissingResourceException ex) { + } catch (final MissingResourceException ex) { try { bundle = ResourceBundle.getBundle(MESSAGES, locale, new UTF8PropertiesControl()); - } catch (MissingResourceException ex2) { + } catch (final MissingResourceException ex2) { bundle = NULL_BUNDLE; } } @@ -190,7 +190,14 @@ private String format(final Locale locale, final String string, final Object... return ess.getAdventureFacet().legacyToMini(ess.getAdventureFacet().escapeTags(arg.toString())); }); - return messageFormat.format(processedArgs).replace(' ', ' '); // replace nbsp with a space + String result = messageFormat.format(processedArgs).replace('\u00A0', ' '); // replace nbsp with a spaceeplace(' ', ' '); // replace nbsp with a space + + // Replace temporary placeholders back to actual values for MiniMessage tags + for (int i = 0; i < processedArgs.length; i++) { + result = result.replace("{" + i + "}", processedArgs[i].toString()); + } + + return result; } public static Object[] mutateArgs(final Object[] objects, final Function mutator) { @@ -312,7 +319,7 @@ public ResourceBundle newBundle(final String baseName, final Locale locale, fina } @Override - public Locale getFallbackLocale(String baseName, Locale locale) { + public Locale getFallbackLocale(final String baseName, final Locale locale) { if (baseName == null || locale == null) { throw new NullPointerException(); } diff --git a/Essentials/src/main/java/com/earth2me/essentials/commands/Commandtpa.java b/Essentials/src/main/java/com/earth2me/essentials/commands/Commandtpa.java index 151d5654130..76d3eb88c6f 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/commands/Commandtpa.java +++ b/Essentials/src/main/java/com/earth2me/essentials/commands/Commandtpa.java @@ -50,8 +50,8 @@ public void run(final Server server, final User user, final String commandLabel, teleport.teleport(player.getBase(), charge, PlayerTeleportEvent.TeleportCause.COMMAND, future); future.thenAccept(success -> { if (success) { - player.sendTl("requestAcceptedAuto", user.getDisplayName()); - user.sendTl("requestAcceptedFromAuto", player.getDisplayName()); + player.sendTl("requestAcceptedAuto", user.getDisplayName(), user.getName()); + user.sendTl("requestAcceptedFromAuto", player.getDisplayName(), player.getName()); } }); throw new NoChargeException(); @@ -61,20 +61,20 @@ public void run(final Server server, final User user, final String commandLabel, final TPARequestEvent tpaEvent = new TPARequestEvent(user.getSource(), player, false); ess.getServer().getPluginManager().callEvent(tpaEvent); if (tpaEvent.isCancelled()) { - throw new TranslatableException("teleportRequestCancelled", player.getDisplayName()); + throw new TranslatableException("teleportRequestCancelled", player.getDisplayName(), player.getName()); } player.requestTeleport(user, false); - player.sendTl("teleportRequest", user.getDisplayName()); - player.sendTl("typeTpaccept"); - player.sendTl("typeTpdeny"); + player.sendTl("teleportRequest", user.getDisplayName(), user.getName()); + player.sendTl("typeTpaccept", user.getDisplayName(), user.getName()); + player.sendTl("typeTpdeny", user.getDisplayName(), user.getName()); if (ess.getSettings().getTpaAcceptCancellation() != 0) { player.sendTl("teleportRequestTimeoutInfo", ess.getSettings().getTpaAcceptCancellation()); } } - user.sendTl("requestSent", player.getDisplayName()); + user.sendTl("requestSent", player.getDisplayName(), player.getName()); if (user.isAuthorized("essentials.tpacancel")) { - user.sendTl("typeTpacancel"); + user.sendTl("typeTpacancel", player.getDisplayName(), player.getName()); } }