Skip to content

Commit

Permalink
Fix mob spawn flag
Browse files Browse the repository at this point in the history
  • Loading branch information
SergeyDertan committed Mar 10, 2019
1 parent 844bb40 commit 3f24794
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 3 deletions.
25 changes: 25 additions & 0 deletions src/main/java/Sergey_Dertan/SRegionProtector/Event/EmptyEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package Sergey_Dertan.SRegionProtector.Event;

import cn.nukkit.event.Event;
import cn.nukkit.event.entity.EntitySpawnEvent;

/**
* special for
*
* @see RegionEventsHandler#entitySpawn(EntitySpawnEvent)
* because EntitySpawnEvent can`t be cancelled
*/
public final class EmptyEvent extends Event {

private boolean isCancelled;

@Override
public void setCancelled() {
this.isCancelled = true;
}

@Override
public boolean isCancelled() {
return this.isCancelled;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,17 +99,21 @@ public void entityDamage(EntityDamageEvent e) {
}
}

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

}

//lightning strike flag
Expand Down

0 comments on commit 3f24794

Please sign in to comment.