wasd plugin: fix slash to talk

The typing=true in unlockChat on the client thread was racing with the awt event thread for keyTyped/Released making the slash not get typed
This commit is contained in:
Adam
2018-08-16 14:55:50 -04:00
parent 34b513f433
commit f05df703ea
2 changed files with 8 additions and 5 deletions

View File

@@ -87,6 +87,7 @@ class WASDCameraListener extends MouseListener implements KeyListener
case KeyEvent.VK_ENTER:
case KeyEvent.VK_SLASH:
// refocus chatbox
plugin.setTyping(true);
clientThread.invoke(() ->
{
plugin.unlockChat();
@@ -126,12 +127,14 @@ class WASDCameraListener extends MouseListener implements KeyListener
switch (e.getKeyCode())
{
case KeyEvent.VK_ENTER:
plugin.setTyping(false);
clientThread.invoke(() ->
{
plugin.lockChat();
});
break;
case KeyEvent.VK_ESCAPE:
plugin.setTyping(false);
clientThread.invoke(() ->
{
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "");
@@ -177,6 +180,7 @@ class WASDCameraListener extends MouseListener implements KeyListener
{
switch (e.getKeyCode())
{
case KeyEvent.VK_SLASH:
case KeyEvent.VK_F1:
case KeyEvent.VK_F2:
case KeyEvent.VK_F3:

View File

@@ -30,8 +30,10 @@ import com.google.inject.Provides;
import javax.inject.Inject;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.VarClientStr;
import net.runelite.api.events.ScriptCallbackEvent;
import net.runelite.api.widgets.Widget;
import net.runelite.api.widgets.WidgetInfo;
@@ -65,6 +67,7 @@ public class WASDCameraPlugin extends Plugin
private WASDCameraListener inputListener;
@Getter(AccessLevel.PACKAGE)
@Setter(AccessLevel.PACKAGE)
private boolean typing;
@Override
@@ -143,8 +146,6 @@ public class WASDCameraPlugin extends Plugin
Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT);
if (chatboxParent != null && chatboxParent.getOnKeyListener() != null)
{
typing = false;
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null)
{
@@ -158,14 +159,12 @@ public class WASDCameraPlugin extends Plugin
Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT);
if (chatboxParent != null)
{
typing = true;
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null)
{
if (client.getGameState() == GameState.LOGGED_IN)
{
chatboxInput.setText(client.getLocalPlayer().getName() + ": <col=0000ff>*</col>");
chatboxInput.setText(client.getLocalPlayer().getName() + ": <col=0000ff>" + client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*</col>");
}
}
}