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; 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 com.google.inject.Provides;
import javax.inject.Inject; import javax.inject.Inject;
import net.runelite.api.Client; import net.runelite.api.Client;
import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.FocusChanged; import net.runelite.api.events.FocusChanged;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
@@ -51,6 +52,7 @@ import net.runelite.client.util.HotkeyListener;
public class AntiDragPlugin extends Plugin public class AntiDragPlugin extends Plugin
{ {
private static final int DEFAULT_DELAY = 5; private static final int DEFAULT_DELAY = 5;
private static final String CONFIG_GROUP_NAME = "antiDrag";
private boolean toggleDrag; private boolean toggleDrag;
@Inject @Inject
@@ -84,7 +86,8 @@ public class AntiDragPlugin extends Plugin
protected void startUp() throws Exception protected void startUp() throws Exception
{ {
keyManager.registerKeyListener(hotkeyListener); keyManager.registerKeyListener(hotkeyListener);
toggleDrag = false; toggleDrag = config.alwaysOn();
enableAntiDrag();
} }
@@ -97,10 +100,47 @@ public class AntiDragPlugin extends Plugin
overlayManager.remove(overlay); 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()) private final HotkeyListener hotkeyListener = new HotkeyListener(() -> config.key())
{ {
@Override @Override
public void hotkeyPressed() public void hotkeyPressed()
{
if (!config.alwaysOn())
{ {
toggleDrag = !toggleDrag; toggleDrag = !toggleDrag;
if (toggleDrag) if (toggleDrag)
@@ -128,15 +168,8 @@ public class AntiDragPlugin extends Plugin
} }
} }
} }
}
}; };
@Subscribe
public void onFocusChanged(FocusChanged focusChanged)
{
if (!focusChanged.isFocused() && config.reqfocus())
{
client.setInventoryDragDelay(DEFAULT_DELAY);
overlayManager.remove(overlay);
}
}
} }