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