/**
* @version 1.1
* @author tristan Roche (Stan_fear)
*
* for MoreMaterials 1.8 and later
*/
import java.util.Map;
import net.morematerials.MoreMaterials;
import net.morematerials.handlers.GenericHandler;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.event.Event;
import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockIgniteEvent;
import org.bukkit.event.block.BlockRedstoneEvent;
import org.bukkit.event.player.PlayerInteractEvent;
public class FireHandler extends GenericHandler {
@Override
public void init(MoreMaterials arg0) {
// TODO Auto-generated method stub
}
@Override
public void onActivation(Event event, Map<String, Object> config) {
World world = null;
Location loc = null;
// checking all possible way to make the block gets set on fire
// (so we can get the location of the block)
if(event instanceof PlayerInteractEvent)
{
if (((PlayerInteractEvent) event).hasBlock()) // if the event involve a block
{
world = ((PlayerInteractEvent) event).getClickedBlock().getWorld();
loc = ((PlayerInteractEvent) event).getClickedBlock().getLocation();
}
else // we use the player position
{
world = ((PlayerInteractEvent) event).getPlayer().getWorld();
loc = ((PlayerInteractEvent) event).getPlayer().getLocation();
}
}
else if(event instanceof BlockBurnEvent) // if we want the fire to expand
{
world = ((BlockBurnEvent) event).getBlock().getWorld();
loc = ((BlockBurnEvent) event).getBlock().getLocation();
}
else if(event instanceof BlockRedstoneEvent) // ideal for a lantern turned on with redstone
{
world = ((BlockRedstoneEvent) event).getBlock().getWorld();
loc = ((BlockRedstoneEvent) event).getBlock().getLocation();
}
else if(event instanceof BlockIgniteEvent) // if we want the fire to expand
{
world = ((BlockIgniteEvent) event).getBlock().getWorld();
loc = ((BlockIgniteEvent) event).getBlock().getLocation();
}
else return; // if this is not one of these events, the block is not supposed to be set on fire
world.playEffect(loc, Effect.MOBSPAWNER_FLAMES, 0);
}
public void shutdown() {
}
}