Skip to content

Commit 4609881

Browse files
committed
Citizen NPCs are not island visitors so do not protect them.
BentoBoxWorld#1518
1 parent 5a5435d commit 4609881

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

src/main/java/world/bentobox/bentobox/listeners/flags/worldsettings/InvincibleVisitorsListener.java

+1
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ public void onVisitorGetDamage(EntityDamageEvent e) {
103103
World world = e.getEntity().getWorld();
104104
if (!(e.getEntity() instanceof Player)
105105
|| !getIWM().inWorld(world)
106+
|| e.getEntity().hasMetadata("NPC")
106107
|| !getIWM().getIvSettings(world).contains(e.getCause().name())
107108
|| getIslands().userIsOnIsland(world, User.getInstance(e.getEntity()))) {
108109
return;

src/test/java/world/bentobox/bentobox/listeners/flags/worldsettings/InvincibleVisitorsListenerTest.java

+8
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,14 @@ public void testOnVisitorGetDamageNotVoid() {
255255
assertTrue(e.isCancelled());
256256
verify(player, never()).setGameMode(eq(GameMode.SPECTATOR));
257257
}
258+
259+
@Test
260+
public void testOnVisitorGetDamageNPC() {
261+
when(player.hasMetadata(eq("NPC"))).thenReturn(true);
262+
EntityDamageEvent e = new EntityDamageEvent(player, EntityDamageEvent.DamageCause.CRAMMING, 0D);
263+
listener.onVisitorGetDamage(e);
264+
assertFalse(e.isCancelled());
265+
}
258266

259267

260268
@Test

0 commit comments

Comments
 (0)