本文整理匯總了Java中org.bukkit.event.block.BlockIgniteEvent.getIgnitingEntity方法的典型用法代碼示例。如果您正苦於以下問題:Java BlockIgniteEvent.getIgnitingEntity方法的具體用法?Java BlockIgniteEvent.getIgnitingEntity怎麽用?Java BlockIgniteEvent.getIgnitingEntity使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.bukkit.event.block.BlockIgniteEvent
的用法示例。
在下文中一共展示了BlockIgniteEvent.getIgnitingEntity方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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: 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;
}
示例3: onBlockStartBurn
import org.bukkit.event.block.BlockIgniteEvent; //導入方法依賴的package包/類
@EventHandler
public void onBlockStartBurn(BlockIgniteEvent e){
RedProtect.get().logger.debug("RPBlockListener - Is BlockIgniteEvent event");
if (e.isCancelled()){
return;
}
Block b = e.getBlock();
Block bignit = e.getIgnitingBlock();
if (b == null){
return;
}
RedProtect.get().logger.debug("Is BlockIgniteEvent event. Canceled? " + e.isCancelled());
Region r = RedProtect.get().rm.getTopRegion(b.getLocation());
if (r != null && !r.canFire()){
if (e.getIgnitingEntity() != null){
if (e.getIgnitingEntity() instanceof Player){
Player p = (Player) e.getIgnitingEntity();
if (!r.canBuild(p)){
RPLang.sendMessage(p, "blocklistener.region.cantplace");
e.setCancelled(true);
return;
}
} else {
e.setCancelled(true);
return;
}
}
if (bignit != null && (bignit.getType().equals(Material.FIRE) || bignit.getType().name().contains("LAVA"))){
e.setCancelled(true);
return;
}
if (e.getCause().equals(IgniteCause.LIGHTNING) || e.getCause().equals(IgniteCause.EXPLOSION) || e.getCause().equals(IgniteCause.FIREBALL)){
e.setCancelled(true);
}
}
}
示例4: onBlockIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入方法依賴的package包/類
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onBlockIgnite(BlockIgniteEvent event) {
if (event.getIgnitingEntity() == null) {
return;
}
Location location = BukkitUtil.adapt(event.getBlock().getLocation());
PlotMapInfo pmi = manager.getMap(location);
if (pmi != null) {
if (pmi.isDisableIgnition()) {
event.setCancelled(true);
} else {
Plot plot = manager.getPlot(location);
if (plot == null) {
event.setCancelled(true);
} else {
if (plot.getOwnerId().equals(event.getPlayer().getUniqueId())) {
return;
}
Optional<Plot.AccessLevel> member = plot.isMember(event.getIgnitingEntity().getUniqueId());
if (member.isPresent()) {
if (member.get().equals(Plot.AccessLevel.TRUSTED) && !api.getServerBridge().getOfflinePlayer(plot.getOwnerId()).isOnline()) {
event.setCancelled(true);
} else if (api.isPlotLocked(plot.getId())) {
event.setCancelled(true);
}
} else {
event.setCancelled(true);
}
}
}
}
}
示例5: onIgnite
import org.bukkit.event.block.BlockIgniteEvent; //導入方法依賴的package包/類
@EventHandler(ignoreCancelled = true)
public void onIgnite(BlockIgniteEvent ignite) {
if (ignite.getIgnitingBlock() == null && ignite.getIgnitingEntity() == null) {
return;
}
Game game = null;
if (ignite.getIgnitingBlock() == null) {
if (ignite.getIgnitingEntity() instanceof Player) {
game = BedwarsRel.getInstance().getGameManager()
.getGameOfPlayer((Player) ignite.getIgnitingEntity());
} else {
game = BedwarsRel.getInstance().getGameManager()
.getGameByLocation(ignite.getIgnitingEntity().getLocation());
}
} else {
game = BedwarsRel.getInstance().getGameManager()
.getGameByLocation(ignite.getIgnitingBlock().getLocation());
}
if (game == null) {
return;
}
if (game.getState() == GameState.STOPPED) {
return;
}
if (ignite.getCause() == IgniteCause.ENDER_CRYSTAL || ignite.getCause() == IgniteCause.LIGHTNING
|| ignite.getCause() == IgniteCause.SPREAD) {
ignite.setCancelled(true);
return;
}
if (ignite.getIgnitingEntity() == null) {
ignite.setCancelled(true);
return;
}
if (game.getState() == GameState.WAITING) {
return;
}
if (!game.getRegion().isPlacedBlock(ignite.getIgnitingBlock())
&& ignite.getIgnitingBlock() != null) {
game.getRegion().addPlacedBlock(ignite.getIgnitingBlock(),
ignite.getIgnitingBlock().getState());
}
}