diff --git a/src/main/java/noppes/npcs/ServerEventsHandler.java b/src/main/java/noppes/npcs/ServerEventsHandler.java index 9830c27df..3add6c5f5 100644 --- a/src/main/java/noppes/npcs/ServerEventsHandler.java +++ b/src/main/java/noppes/npcs/ServerEventsHandler.java @@ -142,14 +142,16 @@ public class ServerEventsHandler { public void invoke(LivingAttackEvent event) { if(!(event.source != null && event.source.getEntity() instanceof EntityPlayer) || !(event.entityLiving instanceof EntityPlayer) || FMLCommonHandler.instance().getEffectiveSide().isClient()) return; - - EntityPlayer sourcePlayer = (EntityPlayer) event.source.getEntity(); - - PlayerData playerData = PlayerDataController.Instance.getPlayerData(sourcePlayer); - PlayerData targetData = PlayerDataController.Instance.getPlayerData((EntityPlayer) event.entityLiving); - if (playerData.partyUUID != null && playerData.partyUUID.equals(targetData.partyUUID)) { - event.setCanceled(true); - } + + // Check for Friendly Fire + EntityPlayer sourcePlayer = (EntityPlayer) event.source.getEntity(); + PlayerData playerData = PlayerDataController.Instance.getPlayerData(sourcePlayer); + PlayerData targetData = PlayerDataController.Instance.getPlayerData((EntityPlayer) event.entityLiving); + if (playerData.partyUUID != null && playerData.partyUUID.equals(targetData.partyUUID)) { + Party party = PartyController.Instance().getParty(playerData.partyUUID); + if(party != null && party.friendlyFire()) + event.setCanceled(true); + } } @SubscribeEvent