diff --git a/pom.xml b/pom.xml index a7c4749..d649693 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.youhavetrouble PreventStabby - 2.0.0-rc-2 + 2.0.0-rc-3 jar PreventStabby diff --git a/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java b/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java index 7e70dca..6171e74 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java +++ b/src/main/java/me/youhavetrouble/preventstabby/data/PlayerManager.java @@ -3,6 +3,7 @@ package me.youhavetrouble.preventstabby.data; import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.api.event.PlayerEnterCombatEvent; import me.youhavetrouble.preventstabby.api.event.PlayerLeaveCombatEvent; +import me.youhavetrouble.preventstabby.hooks.WorldGuardHook; import me.youhavetrouble.preventstabby.util.PluginMessages; import me.youhavetrouble.preventstabby.util.PvpState; import org.bukkit.Bukkit; @@ -174,7 +175,7 @@ public class PlayerManager { } } - if (!attackerPlayerData.isPvpEnabled()) { + if (!attackerPlayerData.isPvpEnabled() && !WorldGuardHook.isPlayerForcedToPvp(Bukkit.getPlayer(attackerId))) { String message = switch (victimClassifier) { case PLAYER -> plugin.getConfigCache().cannot_attack_attacker; case PET -> plugin.getConfigCache().cannot_attack_pets_victim; @@ -184,7 +185,7 @@ public class PlayerManager { return new DamageCheckResult(false, attackerId, victimId, message, victimClassifier.equals(Target.EntityClassifier.PLAYER)); } - if (!victimPlayerData.isPvpEnabled()) { + if (!victimPlayerData.isPvpEnabled() && !WorldGuardHook.isPlayerForcedToPvp(Bukkit.getPlayer(victimId))) { String message = switch (victimClassifier) { case PLAYER -> plugin.getConfigCache().cannot_attack_victim; case PET -> plugin.getConfigCache().cannot_attack_pets_attacker; diff --git a/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java b/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java index 3907852..5130d4b 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java +++ b/src/main/java/me/youhavetrouble/preventstabby/hooks/WorldGuardHook.java @@ -52,6 +52,8 @@ public class WorldGuardHook { } public static boolean isPlayerForcedToPvp(Player player) { + if (player == null) return false; + if (!PreventStabby.worldGuardHookEnabled()) return false; RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer(); RegionQuery query = container.createQuery(); org.bukkit.Location loc = player.getLocation();