Merge pull request #1721 from Lucwousin/anti-crossdressing
antidrag: improvements/fixes
This commit is contained in:
@@ -101,14 +101,14 @@ public interface AntiDragConfig extends Config
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ConfigItem(
|
@ConfigItem(
|
||||||
keyName = "reqfocus",
|
keyName = "reqFocus",
|
||||||
name = "Reset on focus loss",
|
name = "Reset on focus loss",
|
||||||
description = "Disable antidrag when losing focus (like alt tabbing)",
|
description = "Disable antidrag when losing focus (like alt tabbing)",
|
||||||
position = 5,
|
position = 5,
|
||||||
hidden = true,
|
hidden = true,
|
||||||
unhide = "toggleKeyBind || holdKeyBind"
|
unhide = "toggleKeyBind || holdKeyBind"
|
||||||
)
|
)
|
||||||
default boolean reqfocus()
|
default boolean reqFocus()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ import java.awt.Dimension;
|
|||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Point;
|
import java.awt.Point;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.Setter;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.client.ui.overlay.Overlay;
|
import net.runelite.client.ui.overlay.Overlay;
|
||||||
import net.runelite.client.ui.overlay.OverlayLayer;
|
import net.runelite.client.ui.overlay.OverlayLayer;
|
||||||
@@ -43,12 +45,13 @@ public class AntiDragOverlay extends Overlay
|
|||||||
private static final int RADIUS = 20;
|
private static final int RADIUS = 20;
|
||||||
|
|
||||||
private final Client client;
|
private final Client client;
|
||||||
private final AntiDragPlugin plugin;
|
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
private Color color;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private AntiDragOverlay(final Client client, final AntiDragPlugin plugin)
|
private AntiDragOverlay(final Client client)
|
||||||
{
|
{
|
||||||
this.plugin = plugin;
|
|
||||||
this.client = client;
|
this.client = client;
|
||||||
setPosition(OverlayPosition.TOOLTIP);
|
setPosition(OverlayPosition.TOOLTIP);
|
||||||
setPriority(OverlayPriority.HIGHEST);
|
setPriority(OverlayPriority.HIGHEST);
|
||||||
@@ -58,7 +61,6 @@ public class AntiDragOverlay extends Overlay
|
|||||||
@Override
|
@Override
|
||||||
public Dimension render(Graphics2D g)
|
public Dimension render(Graphics2D g)
|
||||||
{
|
{
|
||||||
final Color color = plugin.getColor();
|
|
||||||
g.setColor(color);
|
g.setColor(color);
|
||||||
|
|
||||||
final net.runelite.api.Point mouseCanvasPosition = client.getMouseCanvasPosition();
|
final net.runelite.api.Point mouseCanvasPosition = client.getMouseCanvasPosition();
|
||||||
|
|||||||
@@ -26,12 +26,10 @@
|
|||||||
package net.runelite.client.plugins.antidrag;
|
package net.runelite.client.plugins.antidrag;
|
||||||
|
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import java.awt.Color;
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import lombok.AccessLevel;
|
|
||||||
import lombok.Getter;
|
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
|
import net.runelite.api.GameState;
|
||||||
import net.runelite.api.events.ConfigChanged;
|
import net.runelite.api.events.ConfigChanged;
|
||||||
import net.runelite.api.events.FocusChanged;
|
import net.runelite.api.events.FocusChanged;
|
||||||
import net.runelite.api.events.GameStateChanged;
|
import net.runelite.api.events.GameStateChanged;
|
||||||
@@ -58,8 +56,6 @@ public class AntiDragPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
private static final int DEFAULT_DELAY = 5;
|
private static final int DEFAULT_DELAY = 5;
|
||||||
|
|
||||||
private boolean toggleDrag;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Client client;
|
private Client client;
|
||||||
|
|
||||||
@@ -90,30 +86,25 @@ public class AntiDragPlugin extends Plugin
|
|||||||
return configManager.getConfig(AntiDragConfig.class);
|
return configManager.getConfig(AntiDragConfig.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean alwaysOn;
|
private boolean toggleDrag;
|
||||||
private boolean toggleKeyBind;
|
|
||||||
private boolean holdKeyBind;
|
|
||||||
private Keybind key;
|
|
||||||
private int dragDelay;
|
|
||||||
private boolean reqfocus;
|
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
private boolean configOverlay;
|
private boolean configOverlay;
|
||||||
@Getter(AccessLevel.PACKAGE)
|
|
||||||
private Color color;
|
|
||||||
private boolean changeCursor;
|
private boolean changeCursor;
|
||||||
private CustomCursor selectedCursor;
|
private CustomCursor selectedCursor;
|
||||||
|
private Keybind key;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void startUp() throws Exception
|
protected void startUp() throws Exception
|
||||||
{
|
{
|
||||||
|
overlay.setColor(config.color());
|
||||||
|
|
||||||
addSubscriptions();
|
addSubscriptions();
|
||||||
updateConfig();
|
updateConfig();
|
||||||
|
updateKeyListeners();
|
||||||
|
|
||||||
if (this.toggleKeyBind || this.holdKeyBind)
|
if (config.alwaysOn())
|
||||||
{
|
{
|
||||||
keyManager.registerKeyListener(hotkeyListener);
|
client.setInventoryDragDelay(config.dragDelay());
|
||||||
}
|
}
|
||||||
client.setInventoryDragDelay(this.alwaysOn ? this.dragDelay : DEFAULT_DELAY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -122,7 +113,8 @@ public class AntiDragPlugin extends Plugin
|
|||||||
eventBus.unregister(this);
|
eventBus.unregister(this);
|
||||||
|
|
||||||
client.setInventoryDragDelay(DEFAULT_DELAY);
|
client.setInventoryDragDelay(DEFAULT_DELAY);
|
||||||
keyManager.unregisterKeyListener(hotkeyListener);
|
keyManager.unregisterKeyListener(holdListener);
|
||||||
|
keyManager.unregisterKeyListener(toggleListener);
|
||||||
toggleDrag = false;
|
toggleDrag = false;
|
||||||
overlayManager.remove(overlay);
|
overlayManager.remove(overlay);
|
||||||
clientUI.resetCursor();
|
clientUI.resetCursor();
|
||||||
@@ -141,92 +133,87 @@ public class AntiDragPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
updateConfig();
|
updateConfig();
|
||||||
|
|
||||||
if (event.getKey().equals("toggleKeyBind"))
|
switch (event.getKey())
|
||||||
{
|
{
|
||||||
if (this.toggleKeyBind)
|
case "toggleKeyBind":
|
||||||
{
|
case "holdKeyBind":
|
||||||
keyManager.registerKeyListener(hotkeyListener);
|
updateKeyListeners();
|
||||||
}
|
break;
|
||||||
else
|
case "alwaysOn":
|
||||||
{
|
client.setInventoryDragDelay(config.alwaysOn() ? config.dragDelay() : DEFAULT_DELAY);
|
||||||
keyManager.unregisterKeyListener(hotkeyListener);
|
break;
|
||||||
}
|
case "dragDelay":
|
||||||
}
|
if (config.alwaysOn())
|
||||||
if
|
{
|
||||||
(event.getKey().equals("holdKeyBind"))
|
client.setInventoryDragDelay(config.dragDelay());
|
||||||
{
|
}
|
||||||
if (this.holdKeyBind)
|
break;
|
||||||
{
|
case ("changeCursor"):
|
||||||
keyManager.registerKeyListener(hotkeyListener);
|
clientUI.resetCursor();
|
||||||
}
|
break;
|
||||||
else
|
case ("color"):
|
||||||
{
|
overlay.setColor(config.color());
|
||||||
keyManager.unregisterKeyListener(hotkeyListener);
|
break;
|
||||||
}
|
|
||||||
}
|
|
||||||
if (event.getKey().equals("alwaysOn"))
|
|
||||||
{
|
|
||||||
client.setInventoryDragDelay(this.alwaysOn ? this.dragDelay : DEFAULT_DELAY);
|
|
||||||
}
|
|
||||||
if (event.getKey().equals("dragDelay") && this.alwaysOn)
|
|
||||||
{
|
|
||||||
client.setInventoryDragDelay(this.dragDelay);
|
|
||||||
}
|
|
||||||
if (event.getKey().equals(("changeCursor")))
|
|
||||||
{
|
|
||||||
clientUI.resetCursor();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onGameStateChanged(GameStateChanged event)
|
private void onGameStateChanged(GameStateChanged event)
|
||||||
{
|
{
|
||||||
switch (event.getGameState())
|
if (event.getGameState() == GameState.LOGIN_SCREEN)
|
||||||
{
|
{
|
||||||
case LOGGED_IN:
|
keyManager.unregisterKeyListener(toggleListener);
|
||||||
if (toggleKeyBind || holdKeyBind)
|
keyManager.unregisterKeyListener(holdListener);
|
||||||
{
|
}
|
||||||
keyManager.registerKeyListener(hotkeyListener);
|
else if (event.getGameState() == GameState.LOGGING_IN)
|
||||||
}
|
{
|
||||||
break;
|
updateKeyListeners();
|
||||||
case LOGIN_SCREEN:
|
|
||||||
keyManager.unregisterKeyListener(hotkeyListener);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateConfig()
|
private void updateConfig()
|
||||||
{
|
{
|
||||||
this.alwaysOn = config.alwaysOn();
|
|
||||||
this.toggleKeyBind = config.toggleKeyBind();
|
|
||||||
this.holdKeyBind = config.holdKeyBind();
|
|
||||||
this.key = config.key();
|
this.key = config.key();
|
||||||
this.dragDelay = config.dragDelay();
|
|
||||||
this.reqfocus = config.reqfocus();
|
|
||||||
this.configOverlay = config.overlay();
|
this.configOverlay = config.overlay();
|
||||||
this.color = config.color();
|
|
||||||
this.changeCursor = config.changeCursor();
|
this.changeCursor = config.changeCursor();
|
||||||
this.selectedCursor = config.selectedCursor();
|
this.selectedCursor = config.selectedCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onFocusChanged(FocusChanged focusChanged)
|
private void onFocusChanged(FocusChanged focusChanged)
|
||||||
{
|
{
|
||||||
if (!this.alwaysOn && !focusChanged.isFocused() && this.reqfocus)
|
if (!focusChanged.isFocused() && config.reqFocus() && !config.alwaysOn())
|
||||||
{
|
{
|
||||||
client.setInventoryDragDelay(DEFAULT_DELAY);
|
client.setInventoryDragDelay(DEFAULT_DELAY);
|
||||||
overlayManager.remove(overlay);
|
overlayManager.remove(overlay);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final HotkeyListener hotkeyListener = new HotkeyListener(() -> this.key)
|
private void updateKeyListeners()
|
||||||
|
{
|
||||||
|
if (config.holdKeyBind())
|
||||||
|
{
|
||||||
|
keyManager.registerKeyListener(holdListener);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
keyManager.unregisterKeyListener(holdListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.toggleKeyBind())
|
||||||
|
{
|
||||||
|
keyManager.registerKeyListener(toggleListener);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
keyManager.unregisterKeyListener(toggleListener);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final HotkeyListener toggleListener = new HotkeyListener(() -> this.key)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void hotkeyPressed()
|
public void hotkeyPressed()
|
||||||
{
|
{
|
||||||
if (alwaysOn)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
toggleDrag = !toggleDrag;
|
toggleDrag = !toggleDrag;
|
||||||
if (toggleDrag)
|
if (toggleDrag)
|
||||||
{
|
{
|
||||||
@@ -239,37 +226,7 @@ public class AntiDragPlugin extends Plugin
|
|||||||
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
|
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
client.setInventoryDragDelay(dragDelay);
|
client.setInventoryDragDelay(config.dragDelay());
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
overlayManager.remove(overlay);
|
|
||||||
client.setInventoryDragDelay(DEFAULT_DELAY);
|
|
||||||
clientUI.resetCursor();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void hotkeyReleased()
|
|
||||||
{
|
|
||||||
if (alwaysOn)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
toggleDrag = !toggleDrag;
|
|
||||||
if (toggleDrag)
|
|
||||||
{
|
|
||||||
if (configOverlay)
|
|
||||||
{
|
|
||||||
overlayManager.add(overlay);
|
|
||||||
}
|
|
||||||
if (changeCursor)
|
|
||||||
{
|
|
||||||
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
client.setInventoryDragDelay(dragDelay);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -279,4 +236,30 @@ public class AntiDragPlugin extends Plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private final HotkeyListener holdListener = new HotkeyListener(() -> this.key)
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void hotkeyPressed()
|
||||||
|
{
|
||||||
|
if (configOverlay)
|
||||||
|
{
|
||||||
|
overlayManager.add(overlay);
|
||||||
|
}
|
||||||
|
if (changeCursor)
|
||||||
|
{
|
||||||
|
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
client.setInventoryDragDelay(config.dragDelay());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hotkeyReleased()
|
||||||
|
{
|
||||||
|
overlayManager.remove(overlay);
|
||||||
|
client.setInventoryDragDelay(DEFAULT_DELAY);
|
||||||
|
clientUI.resetCursor();
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user