本文整理匯總了Java中org.bukkit.event.block.BlockIgniteEvent類的典型用法代碼示例。如果您正苦於以下問題:Java BlockIgniteEvent類的具體用法?Java BlockIgniteEvent怎麽用?Java BlockIgniteEvent使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
BlockIgniteEvent類屬於org.bukkit.event.block包,在下文中一共展示了BlockIgniteEvent類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventWrapper
public void onBlockIgnite(final BlockIgniteEvent event) {
// Flint & steel generates a BlockPlaceEvent
if(event.getCause() == BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL) return;
BlockState oldState = event.getBlock().getState();
BlockState newState = BlockStateUtils.cloneWithMaterial(event.getBlock(), Material.FIRE);
ParticipantState igniter = null;
if(event.getIgnitingEntity() != null) {
// The player themselves using flint & steel, or any of
// several types of owned entity starting or spreading a fire.
igniter = entityResolver.getOwner(event.getIgnitingEntity());
} else if(event.getIgnitingBlock() != null) {
// Fire, lava, or flint & steel in a dispenser
igniter = blockResolver.getOwner(event.getIgnitingBlock());
}
callEvent(event, oldState, newState, igniter);
}
示例2: ignite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@SuppressWarnings("deprecation")
public boolean ignite(Player igniter, Location loc, IgniteCause cause) {
Random rand = new Random();
loc.add(0.5, 0.5, 0.5);
BlockIgniteEvent igniteEvent = new BlockIgniteEvent(loc.getBlock(),
cause, (org.bukkit.entity.Entity) igniter);
Bukkit.getServer().getPluginManager().callEvent(igniteEvent);
if (igniteEvent.isCancelled()) {
return false;
}
BlockState blockState = loc.getBlock().getState();
BlockPlaceEvent placeEvent = new BlockPlaceEvent(loc.getBlock(),
blockState, loc.getBlock(), igniter.getItemInHand(), igniter, true);
Bukkit.getServer().getPluginManager().callEvent(placeEvent);
if (placeEvent.isCancelled() || !placeEvent.canBuild()) {
placeEvent.getBlockPlaced().setTypeIdAndData(0, (byte) 0, false);
return false;
}
loc.getWorld().playSound(loc, Sound.ITEM_FLINTANDSTEEL_USE, 1.0F, rand.nextFloat() * 0.4F + 0.8F);
loc.getBlock().setType(Material.FIRE);
return true;
}
示例3: FireSpread
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void FireSpread(BlockIgniteEvent e) {
if (ConfigGServerEvent.getConfig().getBoolean("Server.Disable.BlockIgnite-FireSpread.Enable")) {
if (!ConfigGServerEvent.getConfig().getBoolean("Server.Disable.BlockIgnite-FireSpread.World.All_World")) {
if (WorldUtils.getWFS().contains(e.getBlock().getWorld().getName())) {
if (e.getCause() == IgniteCause.SPREAD) {
e.setCancelled(true);
}
}
} else {
if (e.getCause() == IgniteCause.SPREAD) {
e.setCancelled(true);
}
}
}
}
示例4: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void onBlockIgnite(BlockIgniteEvent event) {
Player player = event.getPlayer();
if(player != null){
Block block = event.getBlock();
if(block != null && block.getRelative(BlockFace.DOWN).getType().equals(Material.NETHERRACK) && block.getRelative(BlockFace.DOWN, 2).getType().equals(Material.NETHERRACK)){
if(block.getRelative(BlockFace.DOWN).getRelative(BlockFace.EAST).getType().equals(Material.TRAP_DOOR) || block.getRelative(BlockFace.DOWN).getRelative(BlockFace.WEST).getType().equals(Material.TRAP_DOOR) || block.getRelative(BlockFace.DOWN).getRelative(BlockFace.SOUTH).getType().equals(Material.TRAP_DOOR) || block.getRelative(BlockFace.DOWN).getRelative(BlockFace.NORTH).getType().equals(Material.TRAP_DOOR)){
if(player.hasPermission("pmf.createfireplace")){
block.getRelative(BlockFace.DOWN).setType(Material.FIRE, false);
player.sendMessage(ChatColor.GREEN + "[PMF] Fireplace has been created!");
} else {
player.sendMessage(ChatColor.RED + "[PMF] You need the permission pmf.createfireplace to create a fireplace!");
}
}
}
}
}
示例5: onBlockStartBurn
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void onBlockStartBurn(BlockIgniteEvent e){
if (e.isCancelled()){
return;
}
Block b = e.getBlock();
Block bignit = e.getIgnitingBlock();
if ( b == null || bignit == null){
return;
}
RedProtect.get().logger.debug("Is BlockIgniteEvent event from global-listener");
Region r = RedProtect.get().rm.getTopRegion(b.getLocation());
if (r != null){
return;
}
if ((bignit.getType().equals(Material.FIRE) || bignit.getType().name().contains("LAVA")) && !RPConfig.getGlobalFlagBool(b.getWorld().getName()+".fire-spread")){
e.setCancelled(true);
}
}
示例6: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler(priority = EventPriority.HIGH)
public void onBlockIgnite(final BlockIgniteEvent event) {
if (event.isCancelled())
return;
final Block block = event.getBlock();
// Ok so a frame block ignites
// Find the nearest gate!
final WorldCoord blockCoord = new WorldCoord(block);
final Gate nearestGate = Gates.gateFromFrameAndSurround(blockCoord);
if (nearestGate != null) {
event.setCancelled(true);
}
}
示例7: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void onBlockIgnite(BlockIgniteEvent event) {
Block block = event.getBlock();
String world = block.getWorld().getUID().toString();
Integer x = block.getLocation().getChunk().getX(), z = block.getLocation().getChunk().getZ();
if (QuickChecks.isWorldChunkClaimed(serverdata.get("worldmap").get(world), x, z, "cla")) {
String pvillage = ((HashMap) ((HashMap) serverdata.get("worldmap").get(world).get(x)).get(z)).get("cla").toString();
if (serverdata.get("villages").get(pvillage).containsKey("fire")) {
if (serverdata.get("villages").get(pvillage).get("fire").equals("off")) {
event.setCancelled(true);
}
} else if (Config.getString("Village Settings.Toggle Settings.Fire Enabled").equals("off")) {
event.setCancelled(true);
}
}
}
示例8: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler(priority = EventPriority.LOWEST)
public void onBlockIgnite(BlockIgniteEvent event) {
final Location location = event.getBlock().getLocation();
if (!reinforcementManager.isWorldActive(location.getWorld().getName())) {
return;
}
// If the block is not reinforced, it is allowed to burn normally.
if (!reinforcementManager.isReinforced(location)) {
return;
}
Player player = null;
if (BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL.equals(event.getCause())) {
player = event.getPlayer();
}
// If the block is reinforced, the burn event is cancelled for the block.
event.setCancelled(true);
// The block reinforcement is then damaged.
reinforcementManager.damageBlock(location, player, BlockSaverDamageCause.FIRE);
}
示例9: WhenFireLimitor
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void WhenFireLimitor(BlockIgniteEvent event) {
if (ConfigOptimize.FireLimitorenable == true) {
if (event.getCause() == IgniteCause.FLINT_AND_STEEL) {
return;
}
Block block = event.getBlock();
if (CheckFast(block.getChunk())) {
event.setCancelled(true);
} else {
ChunkChecked.put(block.getChunk(), System.currentTimeMillis());
}
}
}
示例10: isManual
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
/**
* Return true if the block transformation was performed "by hand".
*
* Handled:
* - place
* - mine
* - bucket fill/empty
* - flint & steel fire/tnt
*
* Not handled:
* - bonemeal
* - probably lots of other things
*/
public boolean isManual() {
final Event event = getCause();
if(Types.instanceOfAny(
event,
BlockPlaceEvent.class,
BlockBreakEvent.class,
PlayerBucketEmptyEvent.class,
PlayerBucketFillEvent.class
)) return true;
if(event instanceof BlockIgniteEvent) {
BlockIgniteEvent igniteEvent = (BlockIgniteEvent) event;
if(igniteEvent.getCause() == BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL && igniteEvent.getIgnitingEntity() != null) {
return true;
}
}
if(event instanceof ExplosionPrimeByEntityEvent && ((ExplosionPrimeByEntityEvent) event).getPrimer() instanceof Player) {
return true;
}
return false;
}
示例11: fireSpread
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void fireSpread(final BlockIgniteEvent e) {
if (!cm.fireSpreadControllerEnabled) {
return;
}
if (BlockIgniteEvent.IgniteCause.SPREAD == e.getCause()) {
long now = System.currentTimeMillis();
if (now > this.lastfireSpread + cm.fireSpreadInterval) {
this.lastfireSpread = now;
} else {
e.setCancelled(true);
}
}
}
示例12: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGH)
public void onBlockIgnite(BlockIgniteEvent event) {
Player player = event.getPlayer();
if (player == null)
return;
long remaining = getRemaining(player);
if (remaining > 0L) {
event.setCancelled(true);
player.sendMessage(ChatColor.RED + "You cannot ignite blocks as your " + getDisplayName() + ChatColor.RED + " timer is active [" + ChatColor.BOLD
+ DurationFormatter.getRemaining(remaining, true, false) + ChatColor.RED + " remaining]");
}
}
示例13: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void onBlockIgnite(BlockIgniteEvent event)
{
//logger.info("Cause: " + event.getCause().name());
// Because we don't have any info about which player sent the fireball, disable block burning in World only (won't affect nether)
if(event.getCause() == BlockIgniteEvent.IgniteCause.FIREBALL
&& event.getBlock().getWorld().getName().equalsIgnoreCase("World"))
{
event.setCancelled(true);
}
}
示例14: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler(ignoreCancelled = true)
public void onBlockIgnite(BlockIgniteEvent event) {
BlockIgniteEvent.IgniteCause cause =
BlockIgniteEvent.IgniteCause.FLINT_AND_STEEL;
if (event.getCause().equals(cause)) {
return;
}
BlockState newState = this.applyState(event.getBlock(), Material.FIRE);
this.post(event,
event.getBlock().getState(),
newState,
event.getPlayer());
}
示例15: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入依賴的package包/類
@EventHandler
public void onBlockIgnite(BlockIgniteEvent event)
{
IgniteCause ic = event.getCause();
if(ic != IgniteCause.FLINT_AND_STEEL)
event.setCancelled(true);
}