diff --git a/pvpmanager/pom.xml b/pvpmanager/pom.xml
index 6220c8e7..5cb0727b 100644
--- a/pvpmanager/pom.xml
+++ b/pvpmanager/pom.xml
@@ -122,7 +122,7 @@
org.spigotmc
spigot-api
- 1.20.3-R0.1-SNAPSHOT
+ 1.20.5-R0.1-SNAPSHOT
provided
@@ -286,7 +286,7 @@
com.github.cryptomorin
kingdoms
- 1.16.20.5
+ 1.16.8.1.1
provided
diff --git a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java
index ede8c459..82b423ee 100644
--- a/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java
+++ b/pvpmanager/src/main/java/me/NoChance/PvPManager/Listeners/EntityListener1_9.java
@@ -62,7 +62,7 @@ public final void onLingeringPotionSplash(final AreaEffectCloudApplyEvent event)
if (event.getAffectedEntities().isEmpty() || !(areaCloudSource instanceof Player))
return;
- final PotionEffectType potionType = areaCloud.getBasePotionData().getType().getEffectType();
+ final PotionEffectType potionType = areaCloud.getBasePotionType().getEffectType();
if (potionType == null || !CombatUtils.isHarmfulPotion(potionType))
return;
diff --git a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java
index 2f65acc1..c277d822 100644
--- a/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java
+++ b/pvpmanager/src/test/java/me/NoChance/PvPManager/Listeners/EntityListenerTest.java
@@ -7,20 +7,21 @@
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Zombie;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
-import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentMatchers;
+import org.mockito.Mockito;
import me.NoChance.PvPManager.InstanceCreator;
import me.NoChance.PvPManager.PluginTest;
@@ -58,35 +59,42 @@ public final void setup() {
}
private void createAttack(final boolean cancelled) {
- mockEvent = spy(new EntityDamageByEntityEvent(attacker, defender, DamageCause.ENTITY_ATTACK, 5));
- mockEvent.setCancelled(cancelled);
+ mockEvent = createDamageEvent(attacker, defender, cancelled);
final Projectile proj = mock(Projectile.class);
when(proj.getShooter()).thenReturn(attacker);
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 5));
- projMockEvent.setCancelled(cancelled);
+ projMockEvent = createDamageEvent(proj, defender, cancelled);
callEvent(mockEvent);
callEvent(projMockEvent);
}
+ private EntityDamageByEntityEvent createDamageEvent(final Entity attackerEntity, final Entity defenderEntity, final boolean cancelled) {
+ final EntityDamageByEntityEvent event = mock(EntityDamageByEntityEvent.class);
+ when(event.getDamager()).thenReturn(attackerEntity);
+ when(event.getEntity()).thenReturn(defenderEntity);
+ when(event.getDamage()).thenReturn(5.0);
+ Mockito.doCallRealMethod().when(event).setCancelled(ArgumentMatchers.anyBoolean());
+ when(event.isCancelled()).thenCallRealMethod();
+ event.setCancelled(cancelled);
+ return event;
+ }
+
private void createMobAttack(final boolean mobAttacker, final boolean cancelled) {
final Zombie zombie = mock(Zombie.class, RETURNS_MOCKS);
if (mobAttacker) {
- mockEvent = spy(new EntityDamageByEntityEvent(zombie, defender, DamageCause.ENTITY_ATTACK, 5));
+ mockEvent = createDamageEvent(zombie, defender, cancelled);
} else {
- mockEvent = spy(new EntityDamageByEntityEvent(attacker, zombie, DamageCause.ENTITY_ATTACK, 5));
+ mockEvent = createDamageEvent(attacker, zombie, cancelled);
}
- mockEvent.setCancelled(cancelled);
final Projectile proj = mock(Projectile.class);
when(proj.getShooter()).thenReturn(attacker);
if (mobAttacker) {
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 5));
+ projMockEvent = createDamageEvent(proj, defender, cancelled);
} else {
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, zombie, DamageCause.PROJECTILE, 5));
+ projMockEvent = createDamageEvent(proj, zombie, cancelled);
}
- projMockEvent.setCancelled(cancelled);
callEvent(mockEvent);
callEvent(projMockEvent);
@@ -116,8 +124,7 @@ final void testMobAttack() {
@Test
final void testSelfTag() {
final Projectile proj = mock(Projectile.class);
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 5));
- projMockEvent.setCancelled(false);
+ projMockEvent = createDamageEvent(proj, defender, false);
assertFalse(Settings.isSelfTag());
// attacker different from defender
@@ -152,20 +159,24 @@ final void testNoDamageHits() {
// ignore no damage hits
assertTrue(Settings.isIgnoreNoDamageHits());
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 5));
+ projMockEvent = createDamageEvent(proj, defender, false);
+ when(projMockEvent.getDamage()).thenReturn(5.0);
assertTrue(CombatUtils.isPvP(projMockEvent));
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 0));
+ projMockEvent = createDamageEvent(proj, defender, false);
+ when(projMockEvent.getDamage()).thenReturn(0.0);
assertFalse(CombatUtils.isPvP(projMockEvent));
// don't ignore any hits
Settings.setIgnoreNoDamageHits(false);
assertFalse(Settings.isIgnoreNoDamageHits());
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 5));
+ projMockEvent = createDamageEvent(proj, defender, false);
+ when(projMockEvent.getDamage()).thenReturn(5.0);
assertTrue(CombatUtils.isPvP(projMockEvent));
- projMockEvent = spy(new EntityDamageByEntityEvent(proj, defender, DamageCause.PROJECTILE, 0));
+ projMockEvent = createDamageEvent(proj, defender, false);
+ when(projMockEvent.getDamage()).thenReturn(0.0);
assertTrue(CombatUtils.isPvP(projMockEvent));
}