diff --git a/src/main/java/world/bentobox/acidisland/listeners/AcidEffect.java b/src/main/java/world/bentobox/acidisland/listeners/AcidEffect.java index 67f42d3..887454a 100644 --- a/src/main/java/world/bentobox/acidisland/listeners/AcidEffect.java +++ b/src/main/java/world/bentobox/acidisland/listeners/AcidEffect.java @@ -258,7 +258,7 @@ public class AcidEffect implements Listener { * @param player - player * @return true if player is safe */ - private boolean isSafeFromAcid(Player player) { + boolean isSafeFromAcid(Player player) { // Check for GodMode if (isEssentialsGodMode(player) // Protect visitors @@ -275,7 +275,8 @@ public class AcidEffect implements Listener { return true; } // Check if player is on a boat - if (player.getVehicle() != null && player.getVehicle().getType().equals(EntityType.BOAT)) { + if (player.getVehicle() != null && (player.getVehicle().getType().equals(EntityType.BOAT) + || player.getVehicle().getType().equals(EntityType.CHEST_BOAT))) { // I'M ON A BOAT! I'M ON A BOAT! A %^&&* BOAT! SNL Sketch. https://youtu.be/avaSdC0QOUM. return true; } diff --git a/src/test/java/world/bentobox/acidisland/AcidIslandTest.java b/src/test/java/world/bentobox/acidisland/AcidIslandTest.java index 1150df7..4ed6d4c 100644 --- a/src/test/java/world/bentobox/acidisland/AcidIslandTest.java +++ b/src/test/java/world/bentobox/acidisland/AcidIslandTest.java @@ -60,7 +60,6 @@ import world.bentobox.bentobox.managers.CommandsManager; import world.bentobox.bentobox.managers.FlagsManager; import world.bentobox.bentobox.managers.IslandWorldManager; import world.bentobox.bentobox.managers.IslandsManager; -import world.bentobox.bentobox.managers.RanksManager; /** * @author tastybento @@ -202,11 +201,6 @@ public class AcidIslandTest { // Settings when(plugin.getSettings()).thenReturn(settings); - - // RanksManager - RanksManager rm = new RanksManager(); - when(plugin.getRanksManager()).thenReturn(rm); - } /** diff --git a/src/test/java/world/bentobox/acidisland/listeners/AcidEffectTest.java b/src/test/java/world/bentobox/acidisland/listeners/AcidEffectTest.java index 3177247..22d55b2 100644 --- a/src/test/java/world/bentobox/acidisland/listeners/AcidEffectTest.java +++ b/src/test/java/world/bentobox/acidisland/listeners/AcidEffectTest.java @@ -648,4 +648,57 @@ public class AcidEffectTest { verify(player).damage(2.0d); // Reduced due to armor } + /** + * Test method for {@link world.bentobox.acidisland.listeners.AcidEffect#isSafeFromAcid(Player)}. + */ + @Test + public void testIsSafeFromAcid() { + assertFalse(ae.isSafeFromAcid(player)); + } + + /** + * Test method for {@link world.bentobox.acidisland.listeners.AcidEffect#isSafeFromAcid(Player)}. + */ + @Test + public void testIsSafeFromAcidEssentialGodMode() { + when(essentialsUser.isGodModeEnabled()).thenReturn(true); + assertTrue(ae.isSafeFromAcid(player)); + } + + /** + * Test method for {@link world.bentobox.acidisland.listeners.AcidEffect#isSafeFromAcid(Player)}. + */ + @Test + public void testIsSafeFromAcidBoat() { + when(player.isInsideVehicle()).thenReturn(true); + Entity boat = mock(Entity.class); + when(boat.getType()).thenReturn(EntityType.BOAT); + when(player.getVehicle()).thenReturn(boat); + assertTrue(ae.isSafeFromAcid(player)); + } + + /** + * Test method for {@link world.bentobox.acidisland.listeners.AcidEffect#isSafeFromAcid(Player)}. + */ + @Test + public void testIsSafeFromAcidChestBoat() { + when(player.isInsideVehicle()).thenReturn(true); + Entity boat = mock(Entity.class); + when(boat.getType()).thenReturn(EntityType.CHEST_BOAT); + when(player.getVehicle()).thenReturn(boat); + assertTrue(ae.isSafeFromAcid(player)); + } + + /** + * Test method for {@link world.bentobox.acidisland.listeners.AcidEffect#isSafeFromAcid(Player)}. + */ + @Test + public void testIsSafeFromAcidFullArmor() { + when(settings.isFullArmorProtection()).thenReturn(true); + ItemStack[] armor = { new ItemStack(Material.CHAINMAIL_CHESTPLATE), new ItemStack(Material.CHAINMAIL_HELMET) }; + when(inv.getArmorContents()).thenReturn(armor); + when(player.getInventory()).thenReturn(inv); + assertTrue(ae.isSafeFromAcid(player)); + } + }