mirror of https://github.com/Minestom/Minestom.git
68 lines
2.7 KiB
Java
68 lines
2.7 KiB
Java
package net.minestom.server.utils;
|
|
|
|
import net.kyori.adventure.key.Key;
|
|
import net.kyori.adventure.text.Component;
|
|
import net.kyori.adventure.translation.GlobalTranslator;
|
|
import net.kyori.adventure.translation.TranslationRegistry;
|
|
import net.minestom.server.adventure.MinestomAdventure;
|
|
import net.minestom.testing.Env;
|
|
import net.minestom.testing.EnvTest;
|
|
import net.minestom.server.coordinate.Pos;
|
|
import net.minestom.server.network.packet.server.play.SystemChatPacket;
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.text.MessageFormat;
|
|
import java.util.List;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
|
|
|
@EnvTest
|
|
public class TranslationIntegrationTest {
|
|
|
|
@BeforeAll
|
|
static void translator() {
|
|
final var translator = TranslationRegistry.create(Key.key("test.reg"));
|
|
translator.register("test.key", MinestomAdventure.getDefaultLocale(), new MessageFormat("This is a test message", MinestomAdventure.getDefaultLocale()));
|
|
|
|
GlobalTranslator.translator().addSource(translator);
|
|
}
|
|
|
|
@Test
|
|
public void testTranslationEnabled(final Env env) {
|
|
final var instance = env.createFlatInstance();
|
|
final var connection = env.createConnection();
|
|
final var player = connection.connect(instance, new Pos(0, 40, 0)).join();
|
|
final var collector = connection.trackIncoming(SystemChatPacket.class);
|
|
|
|
MinestomAdventure.AUTOMATIC_COMPONENT_TRANSLATION = true;
|
|
final var message = Component.translatable("test.key");
|
|
final var packet = new SystemChatPacket(message, false);
|
|
PacketUtils.sendGroupedPacket(List.of(player), packet);
|
|
|
|
// the message should not be changed if translations are enabled.
|
|
// the translation of the message itself will be proceeded in PlayerConnectionImpl class
|
|
collector.assertSingle(received -> {
|
|
assertNotEquals(message, received.message());
|
|
});
|
|
}
|
|
|
|
@Test
|
|
public void testTranslationDisabled(final Env env) {
|
|
final var instance = env.createFlatInstance();
|
|
final var connection = env.createConnection();
|
|
final var player = connection.connect(instance, new Pos(0, 40, 0)).join();
|
|
final var collector = connection.trackIncoming(SystemChatPacket.class);
|
|
|
|
MinestomAdventure.AUTOMATIC_COMPONENT_TRANSLATION = false;
|
|
final var message = Component.translatable("test.key");
|
|
final var packet = new SystemChatPacket(message, false);
|
|
PacketUtils.sendGroupedPacket(List.of(player), packet);
|
|
|
|
collector.assertSingle(received -> {
|
|
assertEquals(message, received.message());
|
|
});
|
|
}
|
|
}
|