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:
@@ -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);
|
||||||
|
@@ -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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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"),
|
||||||
|
Reference in New Issue
Block a user