2021-12-30 22:16:37 +01:00
|
|
|
package io.gitlab.jfronny.googlechat.mixin;
|
|
|
|
|
2022-01-29 12:22:56 +01:00
|
|
|
import io.gitlab.jfronny.googlechat.GoogleChat;
|
2021-12-30 22:16:37 +01:00
|
|
|
import io.gitlab.jfronny.googlechat.GoogleChatConfig;
|
2022-03-25 19:52:25 +01:00
|
|
|
import io.gitlab.jfronny.libjf.translate.api.Language;
|
2022-01-29 12:22:56 +01:00
|
|
|
import net.fabricmc.api.EnvType;
|
|
|
|
import net.fabricmc.loader.api.FabricLoader;
|
2021-12-30 22:16:37 +01:00
|
|
|
import net.minecraft.network.MessageType;
|
|
|
|
import net.minecraft.network.PacketByteBuf;
|
|
|
|
import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket;
|
2022-04-02 17:34:17 +02:00
|
|
|
import net.minecraft.text.Text;
|
2021-12-30 22:16:37 +01:00
|
|
|
import org.spongepowered.asm.mixin.Final;
|
|
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
|
|
import org.spongepowered.asm.mixin.Mutable;
|
|
|
|
import org.spongepowered.asm.mixin.Shadow;
|
|
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
|
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
@Mixin(GameMessageS2CPacket.class)
|
|
|
|
public class GameMessageS2CPacketMixin {
|
|
|
|
@Shadow @Final @Mutable private Text message;
|
|
|
|
@Shadow @Final private UUID sender;
|
|
|
|
|
2022-01-29 12:22:56 +01:00
|
|
|
@Inject(at = @At("RETURN"), method = "<init>(Lnet/minecraft/text/Text;Lnet/minecraft/network/MessageType;Ljava/util/UUID;)V")
|
|
|
|
private void init(Text message, MessageType type, UUID sender, CallbackInfo ci) {
|
2022-04-02 17:34:17 +02:00
|
|
|
googlechat$translate();
|
2022-01-29 12:22:56 +01:00
|
|
|
}
|
|
|
|
|
2021-12-30 22:16:37 +01:00
|
|
|
@Inject(at = @At("RETURN"), method = "<init>(Lnet/minecraft/network/PacketByteBuf;)V")
|
|
|
|
private void init(PacketByteBuf buf, CallbackInfo ci) {
|
2022-04-02 17:34:17 +02:00
|
|
|
googlechat$translate();
|
2022-01-29 12:22:56 +01:00
|
|
|
}
|
|
|
|
|
2022-04-02 17:34:17 +02:00
|
|
|
private <T extends Language> void googlechat$translate() {
|
2021-12-30 22:16:37 +01:00
|
|
|
if (!GoogleChatConfig.enabled) return;
|
2022-04-02 17:34:17 +02:00
|
|
|
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT && GoogleChat.isSelf(sender)) return;
|
|
|
|
message = GoogleChat.translateIfNeeded(message, GoogleChat.Direction.S2C, true);
|
2022-02-12 09:22:13 +01:00
|
|
|
}
|
2021-12-30 22:16:37 +01:00
|
|
|
}
|