fix component flattening (#1266)

This commit is contained in:
tahmid-23 2022-07-24 23:58:03 -04:00 committed by GitHub
parent d596992c0e
commit 3690ad1623
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 1 deletions

View File

@ -3,6 +3,8 @@ package net.minestom.server.adventure.provider;
import net.kyori.adventure.text.TranslatableComponent;
import net.kyori.adventure.text.flattener.ComponentFlattener;
import net.kyori.adventure.translation.GlobalTranslator;
import net.kyori.adventure.translation.TranslationRegistry;
import net.kyori.adventure.translation.Translator;
import net.minestom.server.adventure.MinestomAdventure;
final class MinestomFlattenerProvider {
@ -13,7 +15,11 @@ final class MinestomFlattenerProvider {
// handle server-side translations if needed
builder.complexMapper(TranslatableComponent.class, ((component, consumer) -> {
if (MinestomAdventure.AUTOMATIC_COMPONENT_TRANSLATION) {
consumer.accept(GlobalTranslator.render(component, MinestomAdventure.getDefaultLocale()));
for (final Translator source : GlobalTranslator.translator().sources()) {
if (source instanceof TranslationRegistry registry && registry.contains(component.key())) {
consumer.accept(GlobalTranslator.render(component, MinestomAdventure.getDefaultLocale()));
}
}
}
}));

View File

@ -0,0 +1,20 @@
package net.minestom.server.adventure.provider;
import net.kyori.adventure.text.Component;
import net.minestom.server.adventure.MinestomAdventure;
import org.junit.jupiter.api.Test;
public class TranslationTest {
@Test
public void testUnregisteredTranslation() {
MinestomAdventure.AUTOMATIC_COMPONENT_TRANSLATION = true;
try {
MinestomFlattenerProvider.INSTANCE.flatten(Component.translatable("key.unregistered"), text -> {
});
} finally {
MinestomAdventure.AUTOMATIC_COMPONENT_TRANSLATION = false;
}
}
}