From e92f85a83f2efde68aa3894c118f41a25a21358d Mon Sep 17 00:00:00 2001 From: James McNair Date: Sat, 18 Sep 2021 11:34:23 +0100 Subject: [PATCH] Fixed bug causing potions to work incorrectly Issue Reference: #226 --- changelog.txt | 1 + src/com/booksaw/betterTeams/Team.java | 1 - .../betterTeams/events/DamageManagement.java | 15 ++++----------- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/changelog.txt b/changelog.txt index d3b1edcb..94fcf46c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -414,6 +414,7 @@ Bug Fixes: Bug Fixes: - Fixed bug with OfflinePlayer name being null (#230) +- Fixed bug which caused potions to not damage players when they should (#226) TODO (any TODO which is not specifically code), mainly used for reminders to update documentation diff --git a/src/com/booksaw/betterTeams/Team.java b/src/com/booksaw/betterTeams/Team.java index 60407d87..f4feafe5 100644 --- a/src/com/booksaw/betterTeams/Team.java +++ b/src/com/booksaw/betterTeams/Team.java @@ -1221,7 +1221,6 @@ public boolean canDamage(Player player, Player source) { */ public boolean canDamage(Team team, Player source) { if (team.isAlly(getID()) || team == this) { - if (pvp && team.pvp) { return true; } diff --git a/src/com/booksaw/betterTeams/events/DamageManagement.java b/src/com/booksaw/betterTeams/events/DamageManagement.java index a5445bff..aa9ed57d 100644 --- a/src/com/booksaw/betterTeams/events/DamageManagement.java +++ b/src/com/booksaw/betterTeams/events/DamageManagement.java @@ -39,13 +39,9 @@ public DamageManagement() { * * @param e the damage event */ - @EventHandler + @EventHandler(ignoreCancelled = true) public void onDamage(EntityDamageByEntityEvent e) { - if (e.isCancelled()) { - return; - } - if (!(e.getEntity() instanceof Player)) { return; } @@ -91,12 +87,11 @@ public void onDamage(EntityDamageByEntityEvent e) { * * @param e the potion splash event */ - @EventHandler + @EventHandler(ignoreCancelled = true) public void onPotion(PotionSplashEvent e) { - if (!(e.getEntity().getShooter() instanceof Player) || e.isCancelled() || !disablePotions) { + if (!(e.getEntity().getShooter() instanceof Player) || !disablePotions) { return; } - Player thrower = (Player) e.getEntity().getShooter(); Team team = Team.getTeam(thrower); // thrower is not in team @@ -105,9 +100,7 @@ public void onPotion(PotionSplashEvent e) { } Collection effects = e.getPotion().getEffects(); - boolean cancel = false; - for (PotionEffect effect : effects) { String type = effect.getType().getName(); if (type.equals(PotionEffectType.BAD_OMEN.getName()) || type.equals(PotionEffectType.BLINDNESS.getName()) @@ -126,7 +119,7 @@ public void onPotion(PotionSplashEvent e) { for (LivingEntity entity : affectedEntities) { try { if (entity instanceof Player - && Objects.requireNonNull(Team.getTeam((Player) entity)).canDamage(team, thrower)) { + && !Objects.requireNonNull(Team.getTeam((Player) entity)).canDamage(team, thrower)) { if (disableSelf && entity == thrower) { continue; }