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:
@@ -87,6 +87,7 @@ class WASDCameraListener extends MouseListener implements KeyListener
|
|||||||
case KeyEvent.VK_ENTER:
|
case KeyEvent.VK_ENTER:
|
||||||
case KeyEvent.VK_SLASH:
|
case KeyEvent.VK_SLASH:
|
||||||
// refocus chatbox
|
// refocus chatbox
|
||||||
|
plugin.setTyping(true);
|
||||||
clientThread.invoke(() ->
|
clientThread.invoke(() ->
|
||||||
{
|
{
|
||||||
plugin.unlockChat();
|
plugin.unlockChat();
|
||||||
@@ -126,12 +127,14 @@ class WASDCameraListener extends MouseListener implements KeyListener
|
|||||||
switch (e.getKeyCode())
|
switch (e.getKeyCode())
|
||||||
{
|
{
|
||||||
case KeyEvent.VK_ENTER:
|
case KeyEvent.VK_ENTER:
|
||||||
|
plugin.setTyping(false);
|
||||||
clientThread.invoke(() ->
|
clientThread.invoke(() ->
|
||||||
{
|
{
|
||||||
plugin.lockChat();
|
plugin.lockChat();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case KeyEvent.VK_ESCAPE:
|
case KeyEvent.VK_ESCAPE:
|
||||||
|
plugin.setTyping(false);
|
||||||
clientThread.invoke(() ->
|
clientThread.invoke(() ->
|
||||||
{
|
{
|
||||||
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "");
|
client.setVar(VarClientStr.CHATBOX_TYPED_TEXT, "");
|
||||||
@@ -177,6 +180,7 @@ class WASDCameraListener extends MouseListener implements KeyListener
|
|||||||
{
|
{
|
||||||
switch (e.getKeyCode())
|
switch (e.getKeyCode())
|
||||||
{
|
{
|
||||||
|
case KeyEvent.VK_SLASH:
|
||||||
case KeyEvent.VK_F1:
|
case KeyEvent.VK_F1:
|
||||||
case KeyEvent.VK_F2:
|
case KeyEvent.VK_F2:
|
||||||
case KeyEvent.VK_F3:
|
case KeyEvent.VK_F3:
|
||||||
|
|||||||
@@ -30,8 +30,10 @@ import com.google.inject.Provides;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.api.VarClientStr;
|
||||||
import net.runelite.api.events.ScriptCallbackEvent;
|
import net.runelite.api.events.ScriptCallbackEvent;
|
||||||
import net.runelite.api.widgets.Widget;
|
import net.runelite.api.widgets.Widget;
|
||||||
import net.runelite.api.widgets.WidgetInfo;
|
import net.runelite.api.widgets.WidgetInfo;
|
||||||
@@ -65,6 +67,7 @@ public class WASDCameraPlugin extends Plugin
|
|||||||
private WASDCameraListener inputListener;
|
private WASDCameraListener inputListener;
|
||||||
|
|
||||||
@Getter(AccessLevel.PACKAGE)
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
private boolean typing;
|
private boolean typing;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -143,8 +146,6 @@ public class WASDCameraPlugin extends Plugin
|
|||||||
Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT);
|
Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT);
|
||||||
if (chatboxParent != null && chatboxParent.getOnKeyListener() != null)
|
if (chatboxParent != null && chatboxParent.getOnKeyListener() != null)
|
||||||
{
|
{
|
||||||
typing = false;
|
|
||||||
|
|
||||||
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
|
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
|
||||||
if (chatboxInput != null)
|
if (chatboxInput != null)
|
||||||
{
|
{
|
||||||
@@ -158,14 +159,12 @@ public class WASDCameraPlugin extends Plugin
|
|||||||
Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT);
|
Widget chatboxParent = client.getWidget(WidgetInfo.CHATBOX_PARENT);
|
||||||
if (chatboxParent != null)
|
if (chatboxParent != null)
|
||||||
{
|
{
|
||||||
typing = true;
|
|
||||||
|
|
||||||
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
|
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
|
||||||
if (chatboxInput != null)
|
if (chatboxInput != null)
|
||||||
{
|
{
|
||||||
if (client.getGameState() == GameState.LOGGED_IN)
|
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>");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user