Add support for combat idle 20 minute timer

- Add support for timer that will reset each time hitsplat is applied to
local player and timeout after 20 mins
- Make idle logout configurable
- Add unit tests for new functionality
This commit is contained in:
Magic fTail
2018-09-01 12:31:21 +02:00
committed by Tomas Slusny
parent 9506c672a0
commit e1036922f3
3 changed files with 70 additions and 7 deletions

View File

@@ -31,12 +31,14 @@ import com.google.inject.testing.fieldbinder.BoundFieldModule;
import net.runelite.api.AnimationID;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.Hitsplat;
import net.runelite.api.NPC;
import net.runelite.api.NPCComposition;
import net.runelite.api.Player;
import net.runelite.api.events.AnimationChanged;
import net.runelite.api.events.GameStateChanged;
import net.runelite.api.events.GameTick;
import net.runelite.api.events.HitsplatApplied;
import net.runelite.api.events.InteractingChanged;
import net.runelite.client.Notifier;
import org.junit.Before;
@@ -102,6 +104,7 @@ public class IdleNotifierPluginTest
when(client.getLocalPlayer()).thenReturn(player);
// Mock config
when(config.logoutIdle()).thenReturn(true);
when(config.animationIdle()).thenReturn(true);
when(config.combatIdle()).thenReturn(true);
when(config.getIdleNotificationDelay()).thenReturn(0);
@@ -223,4 +226,19 @@ public class IdleNotifierPluginTest
plugin.onGameTick(new GameTick());
verify(notifier, times(0)).notify(any());
}
@Test
public void checkCombatLogoutIdle()
{
// Player is idle
when(client.getMouseIdleTicks()).thenReturn(282 * 50);
// But player is being damaged (is in combat)
final HitsplatApplied hitsplatApplied = new HitsplatApplied();
hitsplatApplied.setActor(player);
hitsplatApplied.setHitsplat(new Hitsplat(Hitsplat.HitsplatType.DAMAGE, 0, 0));
plugin.onHitsplatApplied(hitsplatApplied);
plugin.onGameTick(new GameTick());
verify(notifier, times(0)).notify(any());
}
}