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:
parent
745be6cfd8
commit
3f7f61092a
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
101
src/main/java/net/wurstclient/settings/LanguageSetting.java
Normal file
101
src/main/java/net/wurstclient/settings/LanguageSetting.java
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user