Added config options for adding the 'Translate' right-click menu option in the Chatbox.

(More so to hide it while the Public Chat Translate part of the plugin is disabled/hidden.)
This commit is contained in:
Ian William O'Neill
2019-06-30 14:37:49 +01:00
committed by Ian W. ONeill
parent 08134881e8
commit c41709de1f
2 changed files with 52 additions and 36 deletions

View File

@@ -21,11 +21,25 @@ public interface ChatTranslationConfig extends Config
return false; return false;
} }
@ConfigItem(
keyName = "translateOptionVisable",
name = "Show 'Translate' menu option",
description = "Adds 'Translate' to the right-click menu in the Chatbox.",
position = 1,
group = "Public Chat Translation",
hidden = true
// unhide = "publicChat"
)
default boolean translateOptionVisable()
{
return true;
}
@ConfigItem( @ConfigItem(
keyName = "publicTargetLanguage", keyName = "publicTargetLanguage",
name = "Target Language", name = "Target Language",
description = "Language to translate messages too.", description = "Language to translate messages too.",
position = 1, position = 2,
group = "Public Chat Translation", group = "Public Chat Translation",
hidden = true hidden = true
// unhide = "publicChat" // unhide = "publicChat"
@@ -39,7 +53,7 @@ public interface ChatTranslationConfig extends Config
keyName = "playerChat", keyName = "playerChat",
name = "Translate outgoing Messages", name = "Translate outgoing Messages",
description = "Would you like to Translate your Messages?", description = "Would you like to Translate your Messages?",
position = 2, position = 3,
group = "Player Message Translation" group = "Player Message Translation"
) )
default boolean playerChat() default boolean playerChat()
@@ -51,7 +65,7 @@ public interface ChatTranslationConfig extends Config
keyName = "playerTargetLanguage", keyName = "playerTargetLanguage",
name = "Target Language", name = "Target Language",
description = "Language to translate messages too.", description = "Language to translate messages too.",
position = 3, position = 4,
group = "Player Message Translation", group = "Player Message Translation",
hidden = true, hidden = true,
unhide = "playerChat" unhide = "playerChat"

View File

@@ -34,7 +34,7 @@ import java.awt.event.KeyEvent;
public class ChatTranslationPlugin extends Plugin implements KeyListener public class ChatTranslationPlugin extends Plugin implements KeyListener
{ {
public static final String TRANSLATE = "Translate"; private static final String TRANSLATE = "Translate";
private static final ImmutableList<String> AFTER_OPTIONS = ImmutableList.of("Message", "Add ignore", "Remove friend", "Kick"); private static final ImmutableList<String> AFTER_OPTIONS = ImmutableList.of("Message", "Add ignore", "Remove friend", "Kick");
@Inject @Inject
@@ -65,9 +65,12 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
protected void startUp() throws Exception protected void startUp() throws Exception
{ {
if (client != null) if (client != null)
{
if (config.translateOptionVisable())
{ {
menuManager.get().addPlayerMenuItem(TRANSLATE); menuManager.get().addPlayerMenuItem(TRANSLATE);
} }
}
keyManager.registerKeyListener(this); keyManager.registerKeyListener(this);
} }
@@ -75,9 +78,12 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
protected void shutDown() throws Exception protected void shutDown() throws Exception
{ {
if (client != null) if (client != null)
{
if (config.translateOptionVisable())
{ {
menuManager.get().removePlayerMenuItem(TRANSLATE); menuManager.get().removePlayerMenuItem(TRANSLATE);
} }
}
keyManager.unregisterKeyListener(this); keyManager.unregisterKeyListener(this);
} }
@@ -93,6 +99,11 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
@Subscribe @Subscribe
public void onMenuEntryAdded(MenuEntryAdded event) public void onMenuEntryAdded(MenuEntryAdded event)
{ {
if (!config.translateOptionVisable())
{
return;
}
int groupId = WidgetInfo.TO_GROUP(event.getActionParam1()); int groupId = WidgetInfo.TO_GROUP(event.getActionParam1());
String option = event.getOption(); String option = event.getOption();
@@ -185,14 +196,12 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
event.consume(); event.consume();
Translator translator = new Translator(); Translator translator = new Translator();
String message = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT); String message = client.getVar(VarClientStr.CHATBOX_TYPED_TEXT);
try try
{ {
//Automatically check language of message and translate to selected language. //Automatically check language of message and translate to selected language.
String translation = translator.translate("auto", config.playerTargetLanguage().toString(), message); String translation = translator.translate("auto", config.playerTargetLanguage().toString(), message);
if (translation != null) if (translation != null)
{ {
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translation); client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, translation);
@@ -200,11 +209,8 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
clientThread.invoke(() -> clientThread.invoke(() ->
{ {
client.runScript(96, 0, translation); client.runScript(96, 0, translation);
});
} }
);
}
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, ""); client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "");
} }
catch (Exception e) catch (Exception e)
@@ -213,10 +219,6 @@ public class ChatTranslationPlugin extends Plugin implements KeyListener
} }
} }
} }
else
{
return;
}
} }
@Override @Override