From 1f18e8c5855abd39430ae818ec28bf8f0b43b6a2 Mon Sep 17 00:00:00 2001 From: Treeku Date: Mon, 2 Jun 2014 17:58:13 +0100 Subject: [PATCH] Combat ends if no defenders Some commands put you in combat even without a defender, so this will end that combat after a few seconds. --- src/services/PlayerService.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/services/PlayerService.java b/src/services/PlayerService.java index 0e839581..db2d7e53 100644 --- a/src/services/PlayerService.java +++ b/src/services/PlayerService.java @@ -126,6 +126,13 @@ public class PlayerService implements INetworkDispatch { creature.getClient().getSession().write(packet); }, 45, 45, TimeUnit.SECONDS)); + scheduleList.add(scheduler.scheduleAtFixedRate(() -> { + PlayerObject player = (PlayerObject) creature.getSlottedObject("ghost"); + player.setTotalPlayTime((int) (player.getTotalPlayTime() + ((System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000))); + player.setLastPlayTimeUpdate(System.currentTimeMillis()); + core.collectionService.checkExplorationRegions(creature); + }, 30, 30, TimeUnit.SECONDS)); + scheduleList.add(scheduler.scheduleAtFixedRate(() -> { if (creature.isInStealth() && !creature.getOption(Options.INVULNERABLE) && ((PlayerObject) creature.getSlottedObject("ghost")).getGodLevel() == 0) { List objects = core.simulationService.get(creature.getPlanet(), creature.getPosition().x, creature.getPosition().z, 64); @@ -149,15 +156,12 @@ public class PlayerService implements INetworkDispatch { } } } + + if (creature.getDefendersList().size() == 0 && creature.isInCombat()) { + creature.setInCombat(false); + } }, 15, 15, TimeUnit.SECONDS)); - scheduleList.add(scheduler.scheduleAtFixedRate(() -> { - PlayerObject player = (PlayerObject) creature.getSlottedObject("ghost"); - player.setTotalPlayTime((int) (player.getTotalPlayTime() + ((System.currentTimeMillis() - player.getLastPlayTimeUpdate()) / 1000))); - player.setLastPlayTimeUpdate(System.currentTimeMillis()); - core.collectionService.checkExplorationRegions(creature); - }, 30, 30, TimeUnit.SECONDS)); - scheduleList.add(scheduler.scheduleAtFixedRate(() -> { if(creature.getAction() < creature.getMaxAction() && creature.getPosture() != 14) { if(!creature.isInCombat())