diff --git a/src/main/java/com/deeme/modules/SentinelModule.java b/src/main/java/com/deeme/modules/SentinelModule.java index ae4c4651..3d5e86c6 100644 --- a/src/main/java/com/deeme/modules/SentinelModule.java +++ b/src/main/java/com/deeme/modules/SentinelModule.java @@ -347,7 +347,10 @@ private GameMap getWorkingMap() { private boolean isAttacking() { if (this.randomWaitTime > System.currentTimeMillis()) { - return this.oldTarget != null; + if (shouldKeepOldTarget()) { + return true; + } + clearAttackTargets(); } if (sConfig.humanizer.addRandomTime) { @@ -373,11 +376,32 @@ private boolean isAttacking() { target = SharedFunctions.getAttacker(heroapi, npcs, heroapi); } + if (target == null) { + clearAttackTargets(); + return false; + } + changeTarget(target); this.oldTarget = target; - return target != null; + return true; + } + + private boolean shouldKeepOldTarget() { + if (this.oldTarget == null || !this.oldTarget.isValid() || this.sentinel == null) { + return false; + } + + Entity sentinelTarget = this.sentinel.getTarget(); + return sentinelTarget != null && sentinelTarget.getId() == this.oldTarget.getId(); + } + + private void clearAttackTargets() { + this.oldTarget = null; + this.isNpc = false; + this.attacker.setTarget(null); + this.shipAttacker.resetDefenseData(); } private void changeTarget(Entity target) { diff --git a/src/main/resources/plugin.json b/src/main/resources/plugin.json index 5e3bec5c..7d863920 100644 --- a/src/main/resources/plugin.json +++ b/src/main/resources/plugin.json @@ -1,7 +1,7 @@ { "name": "DmPlugin", "author": "Dm94Dani", - "version": "2.11.1 beta 4", + "version": "2.11.1 beta 5", "minVersion": "1.131.6 beta 3", "supportedVersion": "1.132.0", "basePackage": "com.deeme",