player listeners ignores events outside players list

master
Benjamin Kraft 3 years ago
parent 4f54c961d2
commit ffd5d3f8aa
  1. 51
      src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java

@ -21,19 +21,27 @@ public class PlayerListeners implements Listener{
@EventHandler @EventHandler
public void onJoin(PlayerJoinEvent e){ public void onJoin(PlayerJoinEvent e){
Player p = e.getPlayer();
if (Sharehealth.GetPlayers().contains(p))
Sharehealth.Instance.onPlayerJoin(e.getPlayer()); Sharehealth.Instance.onPlayerJoin(e.getPlayer());
} }
@EventHandler @EventHandler
public void onPlayerRespawn(final PlayerRespawnEvent event){ public void onPlayerRespawn(final PlayerRespawnEvent e){
Sharehealth.Instance.onPlayerRespawn(event.getPlayer()); Player p = e.getPlayer();
if (Sharehealth.GetPlayers().contains(p))
Sharehealth.Instance.onPlayerRespawn(e.getPlayer());
} }
@EventHandler @EventHandler
public void onEntityGotDamage(final EntityDamageEvent event){ public void onEntityGotDamage(final EntityDamageEvent event){
Entity damagedEntity = event.getEntity(); Entity damagedEntity = event.getEntity();
double damage = event.getFinalDamage();
if (damagedEntity instanceof Player){
if (!Sharehealth.GetPlayers().contains(damagedEntity))
return;
double damage = event.getFinalDamage();
DamageCause cause = event.getCause(); DamageCause cause = event.getCause();
// not allowed triggering message // not allowed triggering message
// because these types trigger an extra event by entity or by block with more // because these types trigger an extra event by entity or by block with more
@ -45,7 +53,6 @@ public class PlayerListeners implements Listener{
DamageCause.CONTACT DamageCause.CONTACT
}; };
if (damagedEntity instanceof Player){
boolean isMessageAllowed = !Arrays.asList(messageNotAllowed).contains(cause); boolean isMessageAllowed = !Arrays.asList(messageNotAllowed).contains(cause);
double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION);
Sharehealth.Instance.onPlayerGotDamage((Player) damagedEntity, damage, cause, isMessageAllowed, absorbedDamage); Sharehealth.Instance.onPlayerGotDamage((Player) damagedEntity, damage, cause, isMessageAllowed, absorbedDamage);
@ -54,37 +61,45 @@ public class PlayerListeners implements Listener{
@EventHandler @EventHandler
public void onEntityGotDamageByEntity(final EntityDamageByEntityEvent event){ public void onEntityGotDamageByEntity(final EntityDamageByEntityEvent event){
Entity entity = event.getEntity(); Entity damagedEntity = event.getEntity();
if (damagedEntity instanceof Player) {
if (!Sharehealth.GetPlayers().contains(damagedEntity))
return;
double damage = event.getFinalDamage(); double damage = event.getFinalDamage();
Entity cause = event.getDamager(); Entity cause = event.getDamager();
if (entity instanceof Player) {
double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION);
Sharehealth.Instance.onPlayerGotDamageByEntity((Player)entity, damage, cause, absorbedDamage); Sharehealth.Instance.onPlayerGotDamageByEntity((Player)damagedEntity, damage, cause, absorbedDamage);
} }
} }
@EventHandler @EventHandler
public void onEntityGotDamageByBlock(final EntityDamageByBlockEvent event){ public void onEntityGotDamageByBlock(final EntityDamageByBlockEvent event){
Entity entity = event.getEntity(); Entity damagedEntity = event.getEntity();
if (damagedEntity instanceof Player) {
if (!Sharehealth.GetPlayers().contains(damagedEntity))
return;
double damage = event.getFinalDamage(); double damage = event.getFinalDamage();
Block cause = event.getDamager(); Block cause = event.getDamager();
if (entity instanceof Player) {
double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION); double absorbedDamage = -event.getOriginalDamage(DamageModifier.ABSORPTION);
Sharehealth.Instance.onPlayerGotDamageByBlock((Player)entity, damage, cause, absorbedDamage); Sharehealth.Instance.onPlayerGotDamageByBlock((Player)damagedEntity, damage, cause, absorbedDamage);
} }
} }
@EventHandler @EventHandler
public void onEntityRegainedHealth(final EntityRegainHealthEvent event){ public void onEntityRegainedHealth(final EntityRegainHealthEvent event){
Entity entity = event.getEntity(); Entity healedEntity = event.getEntity();
if (healedEntity instanceof Player){
if (!Sharehealth.GetPlayers().contains(healedEntity))
return;
double amount = event.getAmount(); double amount = event.getAmount();
RegainReason reason = event.getRegainReason(); RegainReason reason = event.getRegainReason();
if (!Sharehealth.Instance.onPlayerRegainedHealth((Player) healedEntity, amount, reason)){
if (entity instanceof Player){
Player player = (Player) entity;
if (!Sharehealth.Instance.onPlayerRegainedHealth(player, amount, reason)){
event.setCancelled(true); event.setCancelled(true);
} }
} }
@ -94,6 +109,8 @@ public class PlayerListeners implements Listener{
public void onEntityPotionEffectModified(final EntityPotionEffectEvent event){ public void onEntityPotionEffectModified(final EntityPotionEffectEvent event){
Entity entity = event.getEntity(); Entity entity = event.getEntity();
if (entity instanceof Player){ if (entity instanceof Player){
if (!Sharehealth.GetPlayers().contains(entity))
return;
PotionEffect newEffect = event.getNewEffect(); PotionEffect newEffect = event.getNewEffect();
if (newEffect != null){ if (newEffect != null){
if (newEffect.getType().equals(PotionEffectType.ABSORPTION)){ if (newEffect.getType().equals(PotionEffectType.ABSORPTION)){

Loading…
Cancel
Save