Adds a configuration option to make the inventory anti-drag enabled by default (#795)

Signed-off-by: PKLite <stonewall@pklite.xyz>
This commit is contained in:
pklite
2019-06-28 13:18:04 -04:00
committed by Kyleeld
parent 5d47520071
commit e7af9222fb
2 changed files with 73 additions and 29 deletions

View File

@@ -118,4 +118,15 @@ public interface AntiDragConfig extends Config
{
return CustomCursor.DRAGON_SCIMITAR;
}
@ConfigItem(
keyName = "alwaysOn",
name = "Always On",
description = "Makes the anti-drag always active and disables the hotkey toggle",
position = 8
)
default boolean alwaysOn()
{
return false;
}
}

View File

@@ -28,6 +28,7 @@ package net.runelite.client.plugins.antidrag;
import com.google.inject.Provides;
import javax.inject.Inject;
import net.runelite.api.Client;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.FocusChanged;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe;
@@ -51,6 +52,7 @@ import net.runelite.client.util.HotkeyListener;
public class AntiDragPlugin extends Plugin
{
private static final int DEFAULT_DELAY = 5;
private static final String CONFIG_GROUP_NAME = "antiDrag";
private boolean toggleDrag;
@Inject
@@ -84,7 +86,8 @@ public class AntiDragPlugin extends Plugin
protected void startUp() throws Exception
{
keyManager.registerKeyListener(hotkeyListener);
toggleDrag = false;
toggleDrag = config.alwaysOn();
enableAntiDrag();
}
@@ -97,46 +100,76 @@ public class AntiDragPlugin extends Plugin
overlayManager.remove(overlay);
}
@Subscribe
public void onConfigChanged(ConfigChanged event)
{
if (event.getGroup().equals(CONFIG_GROUP_NAME))
{
toggleDrag = config.alwaysOn();
enableAntiDrag();
}
}
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!config.alwaysOn())
{
if (!focusChanged.isFocused() && config.reqfocus())
{
client.setInventoryDragDelay(DEFAULT_DELAY);
overlayManager.remove(overlay);
}
}
}
private void enableAntiDrag()
{
if (toggleDrag)
{
client.setInventoryDragDelay(config.dragDelay());
}
else
{
client.setInventoryDragDelay(DEFAULT_DELAY);
}
}
private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.key())
{
@Override
public void hotkeyPressed()
{
toggleDrag = !toggleDrag;
if (toggleDrag)
if (!config.alwaysOn())
{
if (config.overlay())
toggleDrag = !toggleDrag;
if (toggleDrag)
{
overlayManager.add(overlay);
}
if (config.changeCursor())
{
CustomCursor selectedCursor = config.selectedCursor();
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
}
if (config.overlay())
{
overlayManager.add(overlay);
}
if (config.changeCursor())
{
CustomCursor selectedCursor = config.selectedCursor();
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
}
client.setInventoryDragDelay(config.dragDelay());
}
else
{
overlayManager.remove(overlay);
client.setInventoryDragDelay(DEFAULT_DELAY);
if (config.changeCursor())
client.setInventoryDragDelay(config.dragDelay());
}
else
{
net.runelite.client.plugins.customcursor.CustomCursor selectedCursor = configManager.getConfig(CustomCursorConfig.class).selectedCursor();
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
overlayManager.remove(overlay);
client.setInventoryDragDelay(DEFAULT_DELAY);
if (config.changeCursor())
{
net.runelite.client.plugins.customcursor.CustomCursor selectedCursor = configManager.getConfig(CustomCursorConfig.class).selectedCursor();
clientUI.setCursor(selectedCursor.getCursorImage(), selectedCursor.toString());
}
}
}
}
};
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused() && config.reqfocus())
{
client.setInventoryDragDelay(DEFAULT_DELAY);
overlayManager.remove(overlay);
}
}
}