mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2024-11-08 11:59:43 +01:00
Add a flag that blocks the damage from withers.
Doesn't cover the skull projectiles, just body damage. Fixes WORLDGUARD-3787.
This commit is contained in:
parent
fb90b1446f
commit
e019890f1d
@ -462,8 +462,6 @@ public void onEntityExplode(EntityExplodeEvent event) {
|
|||||||
}
|
}
|
||||||
// allow wither skull blocking since there is no dedicated flag atm
|
// allow wither skull blocking since there is no dedicated flag atm
|
||||||
if (wcfg.useRegions) {
|
if (wcfg.useRegions) {
|
||||||
RegionManager mgr = plugin.getGlobalRegionManager().get(world);
|
|
||||||
|
|
||||||
for (Block block : event.blockList()) {
|
for (Block block : event.blockList()) {
|
||||||
if (!plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation()).allows(DefaultFlag.GHAST_FIREBALL)) {
|
if (!plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation()).allows(DefaultFlag.GHAST_FIREBALL)) {
|
||||||
event.blockList().clear();
|
event.blockList().clear();
|
||||||
@ -481,6 +479,15 @@ public void onEntityExplode(EntityExplodeEvent event) {
|
|||||||
event.blockList().clear();
|
event.blockList().clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (wcfg.useRegions) {
|
||||||
|
for (Block block : event.blockList()) {
|
||||||
|
if (!plugin.getGlobalRegionManager().allows(DefaultFlag.WITHER_DAMAGE, block.getLocation())) {
|
||||||
|
event.blockList().clear();
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// unhandled entity
|
// unhandled entity
|
||||||
if (wcfg.blockOtherExplosions) {
|
if (wcfg.blockOtherExplosions) {
|
||||||
@ -691,6 +698,12 @@ public void onEntityChangeBlock(EntityChangeBlockEvent event) {
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (wcfg.useRegions) {
|
||||||
|
if (!plugin.getGlobalRegionManager().allows(DefaultFlag.WITHER_DAMAGE, location)) {
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (/*ent instanceof Zombie && */event instanceof EntityBreakDoorEvent) {
|
} else if (/*ent instanceof Zombie && */event instanceof EntityBreakDoorEvent) {
|
||||||
if (wcfg.blockZombieDoorDestruction) {
|
if (wcfg.blockZombieDoorDestruction) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -75,6 +75,7 @@ public final class DefaultFlag {
|
|||||||
public static final StateFlag GHAST_FIREBALL = new StateFlag("ghast-fireball", true);
|
public static final StateFlag GHAST_FIREBALL = new StateFlag("ghast-fireball", true);
|
||||||
public static final StateFlag FIREWORK_DAMAGE = new StateFlag("firework-damage", true);
|
public static final StateFlag FIREWORK_DAMAGE = new StateFlag("firework-damage", true);
|
||||||
public static final StateFlag OTHER_EXPLOSION = new StateFlag("other-explosion", true);
|
public static final StateFlag OTHER_EXPLOSION = new StateFlag("other-explosion", true);
|
||||||
|
public static final StateFlag WITHER_DAMAGE = new StateFlag("wither-damage", true);
|
||||||
public static final StateFlag FIRE_SPREAD = new StateFlag("fire-spread", true);
|
public static final StateFlag FIRE_SPREAD = new StateFlag("fire-spread", true);
|
||||||
public static final StateFlag LAVA_FIRE = new StateFlag("lava-fire", true);
|
public static final StateFlag LAVA_FIRE = new StateFlag("lava-fire", true);
|
||||||
public static final StateFlag LIGHTNING = new StateFlag("lightning", true);
|
public static final StateFlag LIGHTNING = new StateFlag("lightning", true);
|
||||||
@ -146,7 +147,7 @@ public final class DefaultFlag {
|
|||||||
public static final Flag<?>[] flagsList = new Flag<?>[] {
|
public static final Flag<?>[] flagsList = new Flag<?>[] {
|
||||||
PASSTHROUGH, BUILD, BLOCK_BREAK, BLOCK_PLACE, PVP, CHEST_ACCESS, PISTONS,
|
PASSTHROUGH, BUILD, BLOCK_BREAK, BLOCK_PLACE, PVP, CHEST_ACCESS, PISTONS,
|
||||||
TNT, LIGHTER, RIDE, USE, INTERACT, PLACE_VEHICLE, DESTROY_VEHICLE, DAMAGE_ANIMALS, SLEEP,
|
TNT, LIGHTER, RIDE, USE, INTERACT, PLACE_VEHICLE, DESTROY_VEHICLE, DAMAGE_ANIMALS, SLEEP,
|
||||||
MOB_DAMAGE, MOB_SPAWNING, DENY_SPAWN, INVINCIBILITY, EXP_DROPS, FIREWORK_DAMAGE,
|
MOB_DAMAGE, MOB_SPAWNING, DENY_SPAWN, INVINCIBILITY, EXP_DROPS, FIREWORK_DAMAGE, WITHER_DAMAGE,
|
||||||
CREEPER_EXPLOSION, OTHER_EXPLOSION, ENDERDRAGON_BLOCK_DAMAGE, GHAST_FIREBALL, ENDER_BUILD,
|
CREEPER_EXPLOSION, OTHER_EXPLOSION, ENDERDRAGON_BLOCK_DAMAGE, GHAST_FIREBALL, ENDER_BUILD,
|
||||||
DENY_MESSAGE, ENTRY_DENY_MESSAGE, EXIT_DENY_MESSAGE, EXIT_OVERRIDE, EXIT_VIA_TELEPORT,
|
DENY_MESSAGE, ENTRY_DENY_MESSAGE, EXIT_DENY_MESSAGE, EXIT_OVERRIDE, EXIT_VIA_TELEPORT,
|
||||||
GREET_MESSAGE, FAREWELL_MESSAGE, NOTIFY_ENTER, NOTIFY_LEAVE,
|
GREET_MESSAGE, FAREWELL_MESSAGE, NOTIFY_ENTER, NOTIFY_LEAVE,
|
||||||
|
Loading…
Reference in New Issue
Block a user