1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-15 19:14:18 +02:00

Prevent blockdamage by enderdragon (default true) in EssentialsProtect CB#1566 B#1058

This commit is contained in:
snowleo
2011-12-08 00:48:53 +01:00
parent ff75975ae7
commit 4efb3174cd
4 changed files with 22 additions and 8 deletions

View File

@@ -61,7 +61,7 @@ import org.yaml.snakeyaml.error.YAMLException;
public class Essentials extends JavaPlugin implements IEssentials public class Essentials extends JavaPlugin implements IEssentials
{ {
public static final int BUKKIT_VERSION = 1560; public static final int BUKKIT_VERSION = 1566;
private static final Logger LOGGER = Logger.getLogger("Minecraft"); private static final Logger LOGGER = Logger.getLogger("Minecraft");
private transient ISettings settings; private transient ISettings settings;
private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this); private final transient TNTExplodeListener tntListener = new TNTExplodeListener(this);

View File

@@ -409,6 +409,7 @@ protect:
creeper-explosion: false creeper-explosion: false
creeper-playerdamage: false creeper-playerdamage: false
creeper-blockdamage: false creeper-blockdamage: false
enderdragon-blockdamage: true
enderman-pickup: false enderman-pickup: false
villager-death: false villager-death: false
# Monsters won't follow players # Monsters won't follow players

View File

@@ -32,13 +32,13 @@ public class EssentialsProtectEntityListener extends EntityListener
return; return;
} }
final Entity target = event.getEntity(); final Entity target = event.getEntity();
if (target instanceof Villager && prot.getSettingBool(ProtectConfig.prevent_villager_death)) if (target instanceof Villager && prot.getSettingBool(ProtectConfig.prevent_villager_death))
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
final User user = ess.getUser(target); final User user = ess.getUser(target);
if (event instanceof EntityDamageByBlockEvent) if (event instanceof EntityDamageByBlockEvent)
{ {
@@ -197,12 +197,23 @@ public class EssentialsProtectEntityListener extends EntityListener
return; return;
} }
final int maxHeight = ess.getSettings().getProtectCreeperMaxHeight(); final int maxHeight = ess.getSettings().getProtectCreeperMaxHeight();
//Nicccccccccce plaaacccccccccce..
if (event.getEntity() instanceof LivingEntity if (event.getEntity() instanceof EnderDragon
&& (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion) && prot.getSettingBool(ProtectConfig.prevent_enderdragon_blockdmg))
|| prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg)
|| (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight)))
{ {
if (prot.getSettingBool(ProtectConfig.enderdragon_fakeexplosions))
{
FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers());
}
event.setCancelled(true);
return;
}
else if (event.getEntity() instanceof Creeper
&& (prot.getSettingBool(ProtectConfig.prevent_creeper_explosion)
|| prot.getSettingBool(ProtectConfig.prevent_creeper_blockdmg)
|| (maxHeight >= 0 && event.getLocation().getBlockY() > maxHeight)))
{
//Nicccccccccce plaaacccccccccce..
FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers()); FakeExplosion.createExplosion(event, ess.getServer(), ess.getServer().getOnlinePlayers());
event.setCancelled(true); event.setCancelled(true);
return; return;

View File

@@ -41,11 +41,13 @@ public enum ProtectConfig
prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false), prevent_creeper_blockdmg("protect.prevent.creeper-blockdamage", false),
prevent_enderman_pickup("protect.prevent.enderman-pickup", false), prevent_enderman_pickup("protect.prevent.enderman-pickup", false),
prevent_villager_death("protect.prevent.villager-death", false), prevent_villager_death("protect.prevent.villager-death", false),
prevent_enderdragon_blockdmg("protect.prevent.enderdragon-blockdamage", true),
prevent_entitytarget("protect.prevent.entitytarget", false), prevent_entitytarget("protect.prevent.entitytarget", false),
protect_rails("protect.protect.rails", true), protect_rails("protect.protect.rails", true),
protect_below_rails("protect.protect.block-below", true), protect_below_rails("protect.protect.block-below", true),
protect_signs("protect.protect.signs", true), protect_signs("protect.protect.signs", true),
protect_against_signs("protect.protect.block-below", true), protect_against_signs("protect.protect.block-below", true),
enderdragon_fakeexplosions("protect.enderdragon-fakeexplosions", false),
alert_on_placement("protect.alert.on-placement"), alert_on_placement("protect.alert.on-placement"),
alert_on_use("protect.alert.on-use"), alert_on_use("protect.alert.on-use"),
alert_on_break("protect.alert.on-break"), alert_on_break("protect.alert.on-break"),