diff --git a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/JoinLocalString.java b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/JoinLocalString.java index af4641b..7546789 100644 --- a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/JoinLocalString.java +++ b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/JoinLocalString.java @@ -1,6 +1,7 @@ package eu.mizerak.alemiz.translationlib.common.string; import java.util.Locale; +import java.util.function.Consumer; import java.util.function.Function; public class JoinLocalString implements LocalString { @@ -60,8 +61,8 @@ public String getFormatted(Locale locale) { } @Override - public String getText(T object) { - return this.left.getText(object) + this.delimiter + this.right.getText(object); + public String getText(T object, Consumer> handler) { + return this.left.getText(object, handler) + this.delimiter + this.right.getText(object, handler); } @Override diff --git a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalString.java b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalString.java index a49912f..4c6c39e 100644 --- a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalString.java +++ b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalString.java @@ -4,6 +4,7 @@ import eu.mizerak.alemiz.translationlib.common.structure.TranslationTerm; import java.util.Locale; +import java.util.function.Consumer; import java.util.function.Function; public interface LocalString { @@ -59,7 +60,11 @@ default LocalString withArgument(String name, Object argument) { String getFormatted(Locale locale); - String getText(T object); + default String getText(T object) { + return this.getText(object, null); + } + + String getText(T object, Consumer> handler); void uploadFallbackMessage(); diff --git a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalStringBase.java b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalStringBase.java index ab61989..309e95d 100644 --- a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalStringBase.java +++ b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/LocalStringBase.java @@ -5,6 +5,7 @@ import java.util.*; import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Consumer; import java.util.function.Function; public abstract class LocalStringBase implements LocalString { @@ -63,7 +64,7 @@ public Collection getArgumentNames() { } @Override - public String getText(T object) { + public String getText(T object, Consumer> handler) { TranslationContext.Factory factory = contextFactories.get(object.getClass()); if (factory == null) { factory = contextFactories.get(object.getClass().getSuperclass()); @@ -73,6 +74,9 @@ public String getText(T object) { } TranslationContext ctx = ((TranslationContext.Factory) factory).create(object); + if (handler != null) { + handler.accept(ctx); + } String formatted = this.getFormatted(ctx.getLocale()); if (!this.arguments.isEmpty()) { diff --git a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/StringWrapper.java b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/StringWrapper.java index dcf6c75..a66f200 100644 --- a/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/StringWrapper.java +++ b/common/src/main/java/eu/mizerak/alemiz/translationlib/common/string/StringWrapper.java @@ -1,6 +1,7 @@ package eu.mizerak.alemiz.translationlib.common.string; import java.util.Locale; +import java.util.function.Consumer; import java.util.function.Function; /** @@ -52,7 +53,7 @@ public String getFormatted(Locale locale) { } @Override - public String getText(T t) { + public String getText(T object, Consumer> handler) { return this.text; }