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.SearchTags;
|
||||||
import net.wurstclient.events.ChatInputListener;
|
import net.wurstclient.events.ChatInputListener;
|
||||||
import net.wurstclient.hack.Hack;
|
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.ChatUtils;
|
||||||
import net.wurstclient.util.GoogleTranslate;
|
import net.wurstclient.util.GoogleTranslate;
|
||||||
|
|
||||||
@ -23,11 +24,11 @@ import net.wurstclient.util.GoogleTranslate;
|
|||||||
"google translator", "GoogleTranslation", "google translation"})
|
"google translator", "GoogleTranslation", "google translation"})
|
||||||
public final class ChatTranslatorHack extends Hack implements ChatInputListener
|
public final class ChatTranslatorHack extends Hack implements ChatInputListener
|
||||||
{
|
{
|
||||||
private final EnumSetting<FromLanguage> langFrom = new EnumSetting<>(
|
private final LanguageSetting langFrom =
|
||||||
"Translate from", FromLanguage.values(), FromLanguage.AUTO_DETECT);
|
LanguageSetting.withAutoDetect("Translate from", Language.AUTO_DETECT);
|
||||||
|
|
||||||
private final EnumSetting<ToLanguage> langTo = new EnumSetting<>(
|
private final LanguageSetting langTo =
|
||||||
"Translate to", ToLanguage.values(), ToLanguage.ENGLISH);
|
LanguageSetting.withoutAutoDetect("Translate to", Language.ENGLISH);
|
||||||
|
|
||||||
public ChatTranslatorHack()
|
public ChatTranslatorHack()
|
||||||
{
|
{
|
||||||
@ -61,105 +62,18 @@ public final class ChatTranslatorHack extends Hack implements ChatInputListener
|
|||||||
private void translate(String message)
|
private void translate(String message)
|
||||||
{
|
{
|
||||||
String prefix =
|
String prefix =
|
||||||
"\u00a7a[\u00a7b" + langTo.getSelected().name + "\u00a7a]:\u00a7r ";
|
"\u00a7a[\u00a7b" + langTo.getSelected() + "\u00a7a]:\u00a7r ";
|
||||||
|
|
||||||
if(message.startsWith(ChatUtils.WURST_PREFIX)
|
if(message.startsWith(ChatUtils.WURST_PREFIX)
|
||||||
|| message.startsWith(prefix))
|
|| message.startsWith(prefix))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
String translated = GoogleTranslate.translate(message,
|
String translated = GoogleTranslate.translate(message,
|
||||||
langFrom.getSelected().value, langTo.getSelected().value);
|
langFrom.getSelected().getValue(), langTo.getSelected().getValue());
|
||||||
|
|
||||||
if(translated == null)
|
if(translated == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
MC.inGameHud.getChatHud().addMessage(Text.literal(prefix + translated));
|
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