Skip to content

Commit db9b725

Browse files
committed
Properly localise message replacement even if message itself is not localised
1 parent 9fa4772 commit db9b725

File tree

3 files changed

+24
-32
lines changed

3 files changed

+24
-32
lines changed

src/main/java/org/mvplugins/multiverse/core/command/MVCommandIssuer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ public void sendMessage(MessageType messageType, Message message) {
112112
} else {
113113
var formatter = getManager().getFormat(messageType);
114114
if (formatter != null) {
115-
sendMessage(formatter.format(message.formatted()));
115+
sendMessage(formatter.format(message.formatted(getManager().getLocales(), this)));
116116
} else {
117-
sendMessage(message.formatted());
117+
sendMessage(message.formatted(getManager().getLocales(), this));
118118
}
119119
}
120120
}

src/main/java/org/mvplugins/multiverse/core/locale/message/LocalizedMessage.java

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,39 +27,12 @@ public MessageKey getMessageKey() {
2727
return messageKeyProvider.getMessageKey();
2828
}
2929

30-
@Override
31-
public @NotNull String[] getReplacements(@NotNull Locales locales, @Nullable CommandIssuer commandIssuer) {
32-
return toReplacementsArray(locales, commandIssuer, replacements);
33-
}
34-
35-
@Override
36-
public @NotNull String formatted(@NotNull CommandIssuer commandIssuer) {
37-
return formatted(commandIssuer.getManager().getLocales(), commandIssuer);
38-
}
39-
4030
@Override
4131
public @NotNull String formatted(@NotNull Locales locales, @Nullable CommandIssuer commandIssuer) {
42-
Objects.requireNonNull(locales, "locales must not be null");
43-
4432
String[] parsedReplacements = getReplacements(locales, commandIssuer);
4533
if (parsedReplacements.length == 0) {
4634
return locales.getMessage(commandIssuer, getMessageKey());
4735
}
4836
return ACFUtil.replaceStrings(locales.getMessage(commandIssuer, getMessageKey()), parsedReplacements);
4937
}
50-
51-
private static String[] toReplacementsArray(
52-
@NotNull Locales locales,
53-
@Nullable CommandIssuer commandIssuer,
54-
@NotNull MessageReplacement... replacements) {
55-
String[] replacementsArray = new String[replacements.length * 2];
56-
int i = 0;
57-
for (MessageReplacement replacement : replacements) {
58-
replacementsArray[i++] = replacement.getKey();
59-
replacementsArray[i++] = replacement.getReplacement().fold(
60-
str -> str,
61-
message -> message.formatted(locales, commandIssuer));
62-
}
63-
return replacementsArray;
64-
}
6538
}

src/main/java/org/mvplugins/multiverse/core/locale/message/Message.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ protected Message(@NotNull String message, @NotNull MessageReplacement... replac
103103
* @return The replacements
104104
*/
105105
public @NotNull String[] getReplacements(@NotNull Locales locales, @Nullable CommandIssuer commandIssuer) {
106-
return getReplacements();
106+
return toReplacementsArray(locales, commandIssuer, replacements);
107107
}
108108

109109
/**
@@ -152,7 +152,7 @@ protected Message(@NotNull String message, @NotNull MessageReplacement... replac
152152
* @return The formatted, localized message
153153
*/
154154
public @NotNull String formatted(@NotNull CommandIssuer commandIssuer) {
155-
return formatted();
155+
return formatted(commandIssuer.getManager().getLocales(), commandIssuer);
156156
}
157157

158158
/**
@@ -166,7 +166,11 @@ protected Message(@NotNull String message, @NotNull MessageReplacement... replac
166166
* @return The formatted, localized message
167167
*/
168168
public @NotNull String formatted(@NotNull Locales locales, @Nullable CommandIssuer commandIssuer) {
169-
return formatted();
169+
String[] parsedReplacements = getReplacements(locales, commandIssuer);
170+
if (parsedReplacements.length == 0) {
171+
return raw();
172+
}
173+
return ACFUtil.replaceStrings(message, parsedReplacements);
170174
}
171175

172176
private static String[] toReplacementsArray(@NotNull MessageReplacement... replacements) {
@@ -178,4 +182,19 @@ private static String[] toReplacementsArray(@NotNull MessageReplacement... repla
178182
}
179183
return replacementsArray;
180184
}
185+
186+
private static String[] toReplacementsArray(
187+
@NotNull Locales locales,
188+
@Nullable CommandIssuer commandIssuer,
189+
@NotNull MessageReplacement... replacements) {
190+
String[] replacementsArray = new String[replacements.length * 2];
191+
int i = 0;
192+
for (MessageReplacement replacement : replacements) {
193+
replacementsArray[i++] = replacement.getKey();
194+
replacementsArray[i++] = replacement.getReplacement().fold(
195+
str -> str,
196+
message -> message.formatted(locales, commandIssuer));
197+
}
198+
return replacementsArray;
199+
}
181200
}

0 commit comments

Comments
 (0)