Extra Hard Mode

Extra Hard Mode

63.1k Downloads

Blazes will only explode in the overworld.

Weasel-Beans opened this issue ยท 4 comments

commented

With my settings like this:

Blazes Explode On Death:
  Enable: true
  Below Border:
    Explosion Power: 2
    Set Fire: true
    World Damage: true
  Above Border:
    Explosion Power: 2
    Set Fire: true
    World Damage: true

Blazes will only explode in the overworld, not the Nether or End.

commented

Is the plugin enabled for the nether world?

commented

Yes, the plugin is enabled in all worlds, and all the other settings related to the nether like pigmen being hostile, blazes spawning/splitting, etc. seem to be working properly. And after testing it just now, blazes don't explode in The End either when it's enabled

commented

Here's my full config as it is set up right now: https://pastebin.com/76biqVnm

Explosions are not disabled by any other plugin

commented

Hmm, it seems that blazes respond differently in the nether vs. the overworld, and this is by design. I'm guessing part of it is so the drops aren't destroyed (explosions destroy dropped entities).

// FEATURE: nether blazes drop extra loot (glowstone and gunpowder)
if (entity instanceof Blaze && !EntityHelper.isLootLess(entity))
{
if (world.getEnvironment() == World.Environment.NETHER)
{
if (bonusLoot)
{
// 50% chance of each
if (plugin.getRandom().nextInt(2) == 0)
{
event.getDrops().add(new ItemStack(Material.GUNPOWDER, 2));
} else
{
event.getDrops().add(new ItemStack(Material.GLOWSTONE_DUST, 2));
}
}
} else if (blockDrops)// no drops in the normal world (restricting blaze rods to the nether)
{
event.getDrops().clear();
}
}
// FEATURE: blazes explode on death in normal world
if (blazesExplodeOnDeath && entity instanceof Blaze && world.getEnvironment() == World.Environment.NORMAL)
{
//Label explosion as creeper
Creeper creeper = world.spawn(entity.getLocation(), Creeper.class);
creeper.remove();
new CreateExplosionTask(plugin, entity.getLocation(), ExplosionType.OVERWORLD_BLAZE, creeper).run(); // equal to a TNT blast, sets fires
// fire a fireball straight up in normal worlds
Fireball fireball = (Fireball) world.spawnEntity(entity.getLocation(), EntityType.FIREBALL);
fireball.setDirection(new Vector(0, 10, 0));
fireball.setYield(1.0F);
//TODO EhmBlazeExplodeEvent
}
// FEATURE: nether blazes may multiply on death
if (blazeSplitPercent > 0 && world.getEnvironment() == World.Environment.NETHER && entity instanceof Blaze)
{
//Blazes which have split already are less likely to split