mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-09-18 19:11:09 +02:00
Exclude Citizens NPCs from player listener; resolves #874
This commit is contained in:
parent
cae69090be
commit
cc8f23f56f
@ -86,9 +86,16 @@ public class DPlayerListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onEntityDamage(EntityDamageEvent event) {
|
public void onEntityDamage(EntityDamageEvent event) {
|
||||||
|
if (!(event.getEntity() instanceof LivingEntity)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LivingEntity entity = ((LivingEntity) event.getEntity());
|
||||||
|
if (isCitizensNPC(entity)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
World world = event.getEntity().getWorld();
|
World world = event.getEntity().getWorld();
|
||||||
GameWorld gameWorld = plugin.getGameWorld(world);
|
GameWorld gameWorld = plugin.getGameWorld(world);
|
||||||
|
|
||||||
if (gameWorld == null) {
|
if (gameWorld == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -98,24 +105,20 @@ public class DPlayerListener implements Listener {
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(event.getEntity() instanceof LivingEntity)) {
|
boolean dead = entity.getHealth() - event.getFinalDamage() <= 0;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean dead = ((LivingEntity) event.getEntity()).getHealth() - event.getFinalDamage() <= 0;
|
|
||||||
if (!dead) {
|
if (!dead) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.getEntity() instanceof Player && !gameWorld.getDungeon().getRules().getState(GameRule.DEATH_SCREEN)) {
|
if (entity instanceof Player && !gameWorld.getDungeon().getRules().getState(GameRule.DEATH_SCREEN)) {
|
||||||
event.setDamage(0);
|
event.setDamage(0);
|
||||||
GamePlayer gamePlayer = plugin.getPlayerCache().getGamePlayer((Player) event.getEntity());
|
GamePlayer gamePlayer = plugin.getPlayerCache().getGamePlayer((Player) entity);
|
||||||
if (gamePlayer == null) {
|
if (gamePlayer == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
((DGamePlayer) gamePlayer).onDeath(null);
|
((DGamePlayer) gamePlayer).onDeath(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.getDungeonMob((LivingEntity) event.getEntity()) != null) {
|
if (plugin.getDungeonMob(entity) != null) {
|
||||||
String killer = null;
|
String killer = null;
|
||||||
|
|
||||||
if (event instanceof EntityDamageByEntityEvent) {
|
if (event instanceof EntityDamageByEntityEvent) {
|
||||||
|
Loading…
Reference in New Issue
Block a user