Skip to content

Commit

Permalink
Fix lighter and lightning strike events
Browse files Browse the repository at this point in the history
SergeyDertan committed Mar 10, 2019
1 parent 6953bde commit 844bb40
Showing 2 changed files with 18 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -63,7 +63,7 @@ public void playerInteract(PlayerInteractEvent e) {
this.handleEvent(RegionFlags.FLAG_INTERACT, e.getBlock(), e.getPlayer(), e);
if (e.isCancelled()) return;
if (e.getItem().getId() == ItemID.FLINT_AND_STEEL) {
this.handleEvent(RegionFlags.FLAG_LIGHTER, e.getBlock(), e.getPlayer(), e);
this.handleEvent(RegionFlags.FLAG_LIGHTER, e.getBlock(), e.getPlayer(), e, false, true);
return;
}
Block block = e.getBlock();
@@ -81,7 +81,7 @@ public void playerInteract(PlayerInteractEvent e) {
this.handleEvent(RegionFlags.FLAG_USE, e.getBlock(), e.getPlayer(), e);
}

//pvp, mob damage & invincible flags
//pvp, mob damage, lightning strike & invincible flags
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void entityDamage(EntityDamageEvent e) {
Entity ent = e.getEntity();
@@ -94,15 +94,22 @@ public void entityDamage(EntityDamageEvent e) {
this.handleEvent(RegionFlags.FLAG_PVP, ent, (Player) ((EntityDamageByEntityEvent) e).getDamager(), e, false, false);
} else if (((EntityDamageByEntityEvent) e).getDamager() instanceof EntityMob) {
this.handleEvent(RegionFlags.FLAG_MOB_DAMAGE, e.getEntity(), (Player) e.getEntity(), e, false, false);
} else if (((EntityDamageByEntityEvent) e).getDamager() instanceof EntityLightning) {
this.handleEvent(RegionFlags.FLAG_LIGHTNING_STRIKE, e.getEntity(), e);
}
}

//mob spawn flag
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void entitySpawn(EntitySpawnEvent e) {
if (!(e.getEntity() instanceof EntityMob) && !(e.getEntity() instanceof EntityAnimal) && !(e.getEntity() instanceof EntityWaterAnimal))
if (e.getEntity() instanceof EntityLightning) {
this.handleEvent(RegionFlags.FLAG_LIGHTNING_STRIKE, e.getPosition(), e);
return;
this.handleEvent(RegionFlags.FLAG_MOB_SPAWN, e.getPosition(), null, e, false, false);
}
if (!(e.getEntity() instanceof EntityMob) && !(e.getEntity() instanceof EntityAnimal) && !(e.getEntity() instanceof EntityWaterAnimal)) {
return;
}
this.handleEvent(RegionFlags.FLAG_MOB_SPAWN, e.getPosition(), e);
}

//lightning strike flag
Original file line number Diff line number Diff line change
@@ -22,6 +22,13 @@

import static Sergey_Dertan.SRegionProtector.Utils.Tags.*;

/**
* Region manager taking care synchronization
* see usages of
*
* @see Region#lock
*/

public final class Region implements AxisAlignedBB {

public final Object lock = new Object();

0 comments on commit 844bb40

Please sign in to comment.