35 lines
1.7 KiB
Java
35 lines
1.7 KiB
Java
package io.gitlab.jfronny.googlechat.server;
|
|
|
|
import io.gitlab.jfronny.googlechat.GoogleChat;
|
|
import io.gitlab.jfronny.googlechat.GoogleChatConfig;
|
|
import net.fabricmc.api.DedicatedServerModInitializer;
|
|
import net.fabricmc.fabric.api.message.v1.ServerMessageDecoratorEvent;
|
|
import net.minecraft.text.Text;
|
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
|
import static io.gitlab.jfronny.googlechat.GoogleChat.hasTarget;
|
|
import static io.gitlab.jfronny.googlechat.GoogleChat.translateIfNeeded;
|
|
import static io.gitlab.jfronny.libjf.LibJf.LOGGER;
|
|
|
|
public class GoogleChatServer implements DedicatedServerModInitializer {
|
|
@Override
|
|
public void onInitializeServer() {
|
|
ServerMessageDecoratorEvent.EVENT.register(ServerMessageDecoratorEvent.CONTENT_PHASE, (sender, message) -> {
|
|
Text original;
|
|
if (sender != null) { // Client messages should first be translated to the server language
|
|
if (hasTarget(GoogleChat.Direction.C2S) && hasTarget(GoogleChat.Direction.S2C)) // Do not translate back and forth
|
|
return CompletableFuture.completedFuture(message);
|
|
original = message;
|
|
message = translateIfNeeded(message, GoogleChat.Direction.C2S, true);
|
|
if (GoogleChatConfig.debugLogs) LOGGER.info("Applied C2S translation from " + original + " to " + message);
|
|
}
|
|
// All messages should be translated to the client language before sending
|
|
original = message;
|
|
message = translateIfNeeded(message, GoogleChat.Direction.S2C, true);
|
|
if (GoogleChatConfig.debugLogs) LOGGER.info("Applied S2C translation from " + original + " to " + message);
|
|
return CompletableFuture.completedFuture(message);
|
|
});
|
|
}
|
|
}
|