0
0
mirror of https://github.com/Wurst-Imperium/Wurst7.git synced 2024-09-19 17:02:13 +02:00

Create a LanguageSetting class for use in ChatTranslator

This commit is contained in:
Alexander01998 2024-07-21 23:22:01 +02:00
parent 745be6cfd8
commit 3f7f61092a
2 changed files with 109 additions and 94 deletions

View File

@ -12,7 +12,8 @@ import net.wurstclient.Category;
import net.wurstclient.SearchTags;
import net.wurstclient.events.ChatInputListener;
import net.wurstclient.hack.Hack;
import net.wurstclient.settings.EnumSetting;
import net.wurstclient.settings.LanguageSetting;
import net.wurstclient.settings.LanguageSetting.Language;
import net.wurstclient.util.ChatUtils;
import net.wurstclient.util.GoogleTranslate;
@ -23,11 +24,11 @@ import net.wurstclient.util.GoogleTranslate;
"google translator", "GoogleTranslation", "google translation"})
public final class ChatTranslatorHack extends Hack implements ChatInputListener
{
private final EnumSetting<FromLanguage> langFrom = new EnumSetting<>(
"Translate from", FromLanguage.values(), FromLanguage.AUTO_DETECT);
private final LanguageSetting langFrom =
LanguageSetting.withAutoDetect("Translate from", Language.AUTO_DETECT);
private final EnumSetting<ToLanguage> langTo = new EnumSetting<>(
"Translate to", ToLanguage.values(), ToLanguage.ENGLISH);
private final LanguageSetting langTo =
LanguageSetting.withoutAutoDetect("Translate to", Language.ENGLISH);
public ChatTranslatorHack()
{
@ -61,105 +62,18 @@ public final class ChatTranslatorHack extends Hack implements ChatInputListener
private void translate(String message)
{
String prefix =
"\u00a7a[\u00a7b" + langTo.getSelected().name + "\u00a7a]:\u00a7r ";
"\u00a7a[\u00a7b" + langTo.getSelected() + "\u00a7a]:\u00a7r ";
if(message.startsWith(ChatUtils.WURST_PREFIX)
|| message.startsWith(prefix))
return;
String translated = GoogleTranslate.translate(message,
langFrom.getSelected().value, langTo.getSelected().value);
langFrom.getSelected().getValue(), langTo.getSelected().getValue());
if(translated == null)
return;
MC.inGameHud.getChatHud().addMessage(Text.literal(prefix + translated));
}
public static enum FromLanguage
{
AUTO_DETECT("Detect Language", "auto"),
AFRIKAANS("Afrikaans", "af"),
ARABIC("Arabic", "ar"),
CZECH("Czech", "cs"),
CHINESE_SIMPLIFIED("Chinese (simplified)", "zh-CN"),
CHINESE_TRADITIONAL("Chinese (traditional)", "zh-TW"),
DANISH("Danish", "da"),
DUTCH("Dutch", "nl"),
ENGLISH("English", "en"),
FINNISH("Finnish", "fi"),
FRENCH("French", "fr"),
GERMAN("Deutsch!", "de"),
GREEK("Greek", "el"),
HINDI("Hindi", "hi"),
ITALIAN("Italian", "it"),
JAPANESE("Japanese", "ja"),
KOREAN("Korean", "ko"),
NORWEGIAN("Norwegian", "no"),
POLISH("Polish", "pl"),
PORTUGUESE("Portugese", "pt"),
RUSSIAN("Russian", "ru"),
SPANISH("Spanish", "es"),
SWAHILI("Swahili", "sw"),
SWEDISH("Swedish", "sv"),
TURKISH("Turkish", "tr");
private final String name;
private final String value;
private FromLanguage(String name, String value)
{
this.name = name;
this.value = value;
}
@Override
public String toString()
{
return name;
}
}
public static enum ToLanguage
{
AFRIKAANS("Afrikaans", "af"),
ARABIC("Arabic", "ar"),
CZECH("Czech", "cs"),
CHINESE_SIMPLIFIED("Chinese (simplified)", "zh-CN"),
CHINESE_TRADITIONAL("Chinese (traditional)", "zh-TW"),
DANISH("Danish", "da"),
DUTCH("Dutch", "nl"),
ENGLISH("English", "en"),
FINNISH("Finnish", "fi"),
FRENCH("French", "fr"),
GERMAN("Deutsch!", "de"),
GREEK("Greek", "el"),
HINDI("Hindi", "hi"),
ITALIAN("Italian", "it"),
JAPANESE("Japanese", "ja"),
KOREAN("Korean", "ko"),
NORWEGIAN("Norwegian", "no"),
POLISH("Polish", "pl"),
PORTUGUESE("Portugese", "pt"),
RUSSIAN("Russian", "ru"),
SPANISH("Spanish", "es"),
SWAHILI("Swahili", "sw"),
SWEDISH("Swedish", "sv"),
TURKISH("Turkish", "tr");
private final String name;
private final String value;
private ToLanguage(String name, String value)
{
this.name = name;
this.value = value;
}
@Override
public String toString()
{
return name;
}
}
}

View File

@ -0,0 +1,101 @@
/*
* Copyright (c) 2014-2024 Wurst-Imperium and contributors.
*
* This source code is subject to the terms of the GNU General Public
* License, version 3. If a copy of the GPL was not distributed with this
* file, You can obtain one at: https://www.gnu.org/licenses/gpl-3.0.txt
*/
package net.wurstclient.settings;
public final class LanguageSetting extends EnumSetting<LanguageSetting.Language>
{
private LanguageSetting(String name, String description, Language[] values,
Language selected)
{
super(name, description, values, selected);
}
public static LanguageSetting withAutoDetect(String name,
String description, Language selected)
{
return new LanguageSetting(name, description, Language.values(),
selected);
}
public static LanguageSetting withAutoDetect(String name, Language selected)
{
return new LanguageSetting(name, "", Language.values(), selected);
}
public static LanguageSetting withoutAutoDetect(String name,
String description, Language selected)
{
Language[] values = Language.valuesWithoutAutoDetect();
return new LanguageSetting(name, description, values, selected);
}
public static LanguageSetting withoutAutoDetect(String name,
Language selected)
{
Language[] values = Language.valuesWithoutAutoDetect();
return new LanguageSetting(name, "", values, selected);
}
public enum Language
{
AUTO_DETECT("Detect Language", "auto"),
AFRIKAANS("Afrikaans", "af"),
ARABIC("Arabic", "ar"),
CZECH("Czech", "cs"),
CHINESE_SIMPLIFIED("Chinese (simplified)", "zh-CN"),
CHINESE_TRADITIONAL("Chinese (traditional)", "zh-TW"),
DANISH("Danish", "da"),
DUTCH("Dutch", "nl"),
ENGLISH("English", "en"),
FINNISH("Finnish", "fi"),
FRENCH("French", "fr"),
GERMAN("Deutsch!", "de"),
GREEK("Greek", "el"),
HINDI("Hindi", "hi"),
ITALIAN("Italian", "it"),
JAPANESE("Japanese", "ja"),
KOREAN("Korean", "ko"),
NORWEGIAN("Norwegian", "no"),
POLISH("Polish", "pl"),
PORTUGUESE("Portugese", "pt"),
RUSSIAN("Russian", "ru"),
SPANISH("Spanish", "es"),
SWAHILI("Swahili", "sw"),
SWEDISH("Swedish", "sv"),
TURKISH("Turkish", "tr");
private final String name;
private final String value;
private Language(String name, String value)
{
this.name = name;
this.value = value;
}
public String getValue()
{
return value;
}
@Override
public String toString()
{
return name;
}
private static Language[] valuesWithoutAutoDetect()
{
Language[] allValues = values();
Language[] valuesWithoutAuto = new Language[allValues.length - 1];
System.arraycopy(allValues, 1, valuesWithoutAuto, 0,
valuesWithoutAuto.length);
return valuesWithoutAuto;
}
}
}