Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Исходник Translator | Rich 1.21.4

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
26 Июл 2025
Сообщения
34
Реакции
0
Выберите загрузчик игры
  1. Fabric
  2. Прочие моды
Крутецкий Translator который переводит через google translator
SS:
1773513372662.png


Translator:
Expand Collapse Copy
package ru.arcade.features.impl.misc;

import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket;
import net.minecraft.text.Text;
import ru.arcade.events.packet.PacketEvent;
import ru.arcade.features.module.Module;
import ru.arcade.features.module.ModuleCategory;
import ru.arcade.features.module.setting.implement.BooleanSetting;
import ru.arcade.features.module.setting.implement.SelectSetting;
import ru.arcade.utils.client.managers.event.EventHandler;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public class Translator extends Module {

    ExecutorService executor = Executors.newSingleThreadExecutor();

    public SelectSetting language = new SelectSetting("Язык перевода", "Целевой язык")
            .value("ru", "en", "de", "fr", "es", "zh");

    public BooleanSetting showOriginal = new BooleanSetting("Показывать оригинал", "Показывать оригинальное сообщение").setValue(false);

    public Translator() {
        super("Translator", "Translator", ModuleCategory.MISC);
        setup(language, showOriginal);
    }

    @EventHandler
    public void onPacket(PacketEvent e) {
        if (e.isSend()) return;
        if (!(e.getPacket() instanceof GameMessageS2CPacket packet)) return;

        String message = packet.content().getString();
        if (message == null || message.isBlank()) return;

        String targetLang = language.getSelected();
        boolean showOrig = showOriginal.isValue();

        executor.submit(() -> {
            try {
                String translated = translate(message, targetLang);
                if (translated == null || translated.equalsIgnoreCase(message)) return;

                String display = showOrig
                        ? "[Перевод] " + translated + " §7(" + message + ")"
                        : "[Перевод] " + translated;

                if (mc.player != null) {
                    mc.execute(() -> mc.player.sendMessage(Text.literal(display), false));
                }
            } catch (Exception ignored) {}
        });
    }

    private String translate(String text, String targetLang) throws Exception {
        String encoded = URLEncoder.encode(text, StandardCharsets.UTF_8);
        String urlStr = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl="
                + targetLang + "&dt=t&q=" + encoded;

        URL url = new URL(urlStr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(3000);
        conn.setReadTimeout(3000);
        conn.setRequestProperty("User-Agent", "Mozilla/5.0");

        if (conn.getResponseCode() != 200) return null;

        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) sb.append(line);
        reader.close();

        String response = sb.toString();
        int start = response.indexOf("\"") + 1;
        int end = response.indexOf("\"", start);
        if (start <= 0 || end <= start) return null;
        return response.substring(start, end);
    }
}
 
Крутецкий Translator который переводит через google translator
SS:
Посмотреть вложение 330339

Translator:
Expand Collapse Copy
package ru.arcade.features.impl.misc;

import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket;
import net.minecraft.text.Text;
import ru.arcade.events.packet.PacketEvent;
import ru.arcade.features.module.Module;
import ru.arcade.features.module.ModuleCategory;
import ru.arcade.features.module.setting.implement.BooleanSetting;
import ru.arcade.features.module.setting.implement.SelectSetting;
import ru.arcade.utils.client.managers.event.EventHandler;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
public class Translator extends Module {

    ExecutorService executor = Executors.newSingleThreadExecutor();

    public SelectSetting language = new SelectSetting("Язык перевода", "Целевой язык")
            .value("ru", "en", "de", "fr", "es", "zh");

    public BooleanSetting showOriginal = new BooleanSetting("Показывать оригинал", "Показывать оригинальное сообщение").setValue(false);

    public Translator() {
        super("Translator", "Translator", ModuleCategory.MISC);
        setup(language, showOriginal);
    }

    @EventHandler
    public void onPacket(PacketEvent e) {
        if (e.isSend()) return;
        if (!(e.getPacket() instanceof GameMessageS2CPacket packet)) return;

        String message = packet.content().getString();
        if (message == null || message.isBlank()) return;

        String targetLang = language.getSelected();
        boolean showOrig = showOriginal.isValue();

        executor.submit(() -> {
            try {
                String translated = translate(message, targetLang);
                if (translated == null || translated.equalsIgnoreCase(message)) return;

                String display = showOrig
                        ? "[Перевод] " + translated + " §7(" + message + ")"
                        : "[Перевод] " + translated;

                if (mc.player != null) {
                    mc.execute(() -> mc.player.sendMessage(Text.literal(display), false));
                }
            } catch (Exception ignored) {}
        });
    }

    private String translate(String text, String targetLang) throws Exception {
        String encoded = URLEncoder.encode(text, StandardCharsets.UTF_8);
        String urlStr = "https://translate.googleapis.com/translate_a/single?client=gtx&sl=auto&tl="
                + targetLang + "&dt=t&q=" + encoded;

        URL url = new URL(urlStr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(3000);
        conn.setReadTimeout(3000);
        conn.setRequestProperty("User-Agent", "Mozilla/5.0");

        if (conn.getResponseCode() != 200) return null;

        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) sb.append(line);
        reader.close();

        String response = sb.toString();
        int start = response.indexOf("\"") + 1;
        int end = response.indexOf("\"", start);
        if (start <= 0 || end <= start) return null;
        return response.substring(start, end);
    }
}
как будто не нужно и изи сделать но для галочки в чите надо
 
Назад
Сверху Снизу