Java 类org.bukkit.event.block.BlockPlaceEvent 实例源码

项目:EscapeLag    文件:AntiInfSuagr.java   
@EventHandler
 public void PlaceCheckDoor(BlockPlaceEvent e) {
     if(ConfigPatch.AntiInfSuagrenable){
if(e.isCancelled()){
    Player p = e.getPlayer();
             List<Entity> entities = p.getNearbyEntities(2, 2, 2);
             for(int i=0;i<entities.size();i++){
                 Entity ent = entities.get(i);
                 if(ent.getType() == EntityType.DROPPED_ITEM){
                     Item item = (Item)ent;
                     if(item.getItemStack().getType() == Material.SUGAR_CANE||item.getItemStack().getType() == Material.CACTUS){
                         ent.remove();
                     }
                 }
             }
}
     }
 }
项目:Scorch    文件:RegionMapListener.java   
public void onBlockPlace(BlockPlaceEvent e) {

        Map cpl = RegionMapGen.getPlayerLocations();
        cpl.put(e.getPlayer().getUniqueId(), RegionMapGen.getMap()[(int)e.getPlayer().getLocation().getX()][(int)e.getPlayer().getLocation().getZ()]);
        RegionMapGen.setPlayerLocations(cpl);

        if (cpl.get(e.getPlayer().getUniqueId()).equals("lava")) {
            Broadcast.toPlayer(e.getPlayer(), Broadcast.BroadcastType.FAILURE, "You cannot build in Warvale's territory.");
            e.setCancelled(true);
        } else if (cpl.get(e.getPlayer().getUniqueId()).equals(Main.get().getConfig().getString("Player-Data."+e.getPlayer().getUniqueId()+"Guild-Name"))) {
            e.setCancelled(false);
        } else {
            Broadcast.toPlayer(e.getPlayer(), Broadcast.BroadcastType.FAILURE, "You cannot build in "+cpl.get(e.getPlayer().getUniqueId())+"'s territory.");
            e.setCancelled(true);
        }
    }
项目:bskyblock    文件:NetherEvents.java   
/**
 * Prevents placing of blocks
 *
 * @param e
 */
@EventHandler(priority = EventPriority.LOW)
public void onPlayerBlockPlace(final BlockPlaceEvent e) {
    if (DEBUG)
        plugin.getLogger().info("DEBUG: " + e.getEventName());
    if (!Settings.netherIslands) {
        if (e.getPlayer().getWorld().getName().equalsIgnoreCase(Settings.worldName + "_nether")
                || e.getPlayer().getWorld().getName().equalsIgnoreCase(Settings.worldName + "_the_end")) {
            if (VaultHelper.hasPerm(e.getPlayer(), Settings.PERMPREFIX + "mod.bypassprotect")) {
                return;
            }
            if (!awayFromSpawn(e.getPlayer()) && !e.getPlayer().isOp()) {
                e.setCancelled(true);
            }
        }
    }
}
项目:Chambers    文件:TeamBlockListener.java   
@EventHandler
public void onPlace(BlockPlaceEvent event) {
    Game game = Chambers.getInstance().getGameManager().getGame();
    if (!game.hasStarted()) {
        return;
    }
    Location location = event.getBlock().getLocation();
    Profile profile = Chambers.getInstance().getProfileManager().getProfileByUuid(event.getPlayer().getUniqueId());
    if (profile.isBypassMode()) {
        event.setCancelled(false);
        return;
    }
    if (profile.getTeam() == null) {
        event.setCancelled(true);
        return;
    }
    Team team = Chambers.getInstance().getClaimManager().getTeamAt(location);
    if (team.isRaidable()) {
        event.setCancelled(false);
        return;
    }
    if (team != profile.getTeam()) {
        event.setCancelled(true);
        profile.sendMessage(ChatColor.YELLOW + "You cannot do that in the territory of " + team.getFormattedName() + ChatColor.YELLOW + ".");
    }
    }
项目:Slimefun4-Chinese-Version    文件:ToolListener.java   
@EventHandler(priority=EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockRegister(BlockPlaceEvent e) {
    if (BlockStorage.hasBlockInfo(e.getBlock())) {
        e.setCancelled(true);
        return;
    }
    ItemStack item = e.getItemInHand();
    if (item != null && item.getType() == Material.INK_SACK) return;
    SlimefunItem sfItem = SlimefunItem.getByItem(item);
    if (sfItem != null && !(sfItem instanceof NotPlaceable)){
        BlockStorage.addBlockInfo(e.getBlock(), "id", sfItem.getID(), true);
        if (SlimefunItem.blockhandler.containsKey(sfItem.getID())) {
            SlimefunItem.blockhandler.get(sfItem.getID()).onPlace(e.getPlayer(), e.getBlock(), sfItem);
        }
    }
    else {
        for (ItemHandler handler: SlimefunItem.getHandlers("BlockPlaceHandler")) {
            if (((BlockPlaceHandler) handler).onBlockPlace(e, item)) break;
        }
    }
}
项目:WC    文件:PlayerEvent.java   
@EventHandler
public void onPlace(BlockPlaceEvent e){
    WCUser p = WCSurvival.getPlayer(e.getPlayer());

    if (e.getBlock().getType() == Material.DROPPER && plugin.getCreando().contains(p.getPlayer())){
        if (plugin.getCasinos().contains(e.getBlock().getLocation())) {
            p.sendMessagePrefix(ChatColor.RED + "Este espacio esta ocupado por otra maquina");
            return;
        }
        plugin.getCreando().remove(p.getPlayer());
        plugin.getFiles().getConfig().set("casino.id_" + plugin.getFiles().getID(), Utils.locationToString(e.getBlock().getLocation()));
        plugin.getFiles().saveFiles();
        p.sendMessagePrefix(ChatColor.GREEN + "Máquina añadida " + plugin.getFiles().getCurrentID());
        plugin.getCasinos().add(e.getBlock().getLocation());
    }
}
项目:behave    文件:MainPart.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlace(BlockPlaceEvent e) {
    if (haulted) {
        if (!e.getPlayer().isOp()) {
            e.getPlayer().sendMessage(TAG + ChatColor.RED + "Server Haulted!");
            e.setCancelled(true);
            return;
        }
    }
    if (!e.getPlayer().hasPermission("behave.build.place")) {
        e.setCancelled(true);
        if(getConfig().getBoolean("msgbb")){
            e.getPlayer().sendMessage(ChatColor.BLUE + "[Behave] " + ChatColor.RED + "you dont have permision");
        }
    }
}
项目:mczone    文件:Events.java   
@EventHandler
  public void onBlockPlace(BlockPlaceEvent event) {
if (Walls.getSpectators().contains(event.getPlayer().getName())) {
    event.setCancelled(true);
    return;
}

      if (State.PVP)
          return;

      Block b = event.getBlock();
      if (b.getType()==Material.TNT && !State.PVP) {
          Chat.player(event.getPlayer(), "&cYou are not allowed to use TNT before the walls drop!");
          event.setCancelled(true);
      }


      Team team = Team.getTeam(event.getPlayer());
      if (b.getX() < team.getMin().getX() + 1 || b.getZ() < team.getMin().getZ() + 1) {
          event.setCancelled(true);
      }
      if (b.getX() > team.getMax().getX() - 1 || b.getZ() > team.getMax().getZ() - 1) {
          event.setCancelled(true);
      }
  }
项目:SurvivalAPI    文件:GameListener.java   
/**
 * Handle Towers
 *
 * @param event Event
 */
@EventHandler
public void onBlockPlace(BlockPlaceEvent event)
{
    /*if (this.game.isPvPActivated() && event.getBlockPlaced().getY() > event.getBlock().getWorld().getHighestBlockYAt(event.getBlockPlaced().getX(), event.getBlockPlaced().getZ()) + 15)
    {
        event.setCancelled(true);
        event.getPlayer().sendMessage(ChatColor.DARK_RED + "[" + ChatColor.RED + "Tours" + ChatColor.DARK_RED + "] " + ChatColor.RED + "Les Tours sont interdites !");

        return;
    }*/

    if (!this.game.isPvPActivated() && event.getBlock().getType() == Material.TNT)
    {
        event.setCancelled(true);
        event.getPlayer().sendMessage(ChatColor.RED + "Vous ne pouvez pas utiliser de la TNT tant que le PvP est désactivé !");
    }
}
项目:SurvivalAPI    文件:AntiTowerListener.java   
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent event)
{
    int x = event.getBlock().getX() + this.data.length / 2;
    int z = event.getBlock().getZ() + this.data.length / 2;
    if (x >= 0 && z >= 0 && x < this.data.length && z < this.data.length)
    {
        byte high = this.data[x][z];
        if (event.getBlock().getY() > high + 15
                && event.getBlock().getRelative(BlockFace.EAST).getType() == Material.AIR
                && event.getBlock().getRelative(BlockFace.WEST).getType() == Material.AIR
                && event.getBlock().getRelative(BlockFace.SOUTH).getType() == Material.AIR
                && event.getBlock().getRelative(BlockFace.NORTH).getType() == Material.AIR)
        {
            event.setCancelled(true);
            event.getPlayer().sendMessage(ChatColor.RED + "Les towers sont interdites.");
        }
    }
}
项目:Mega-Walls    文件:BlockPlaceListener.java   
@EventHandler
public void onBlockPlace(BlockPlaceEvent e)
{
    User user = MWAPI.getUserHandler().findById(e.getPlayer().getUniqueId());

    if (user.getGame() != null)
    {
        if (user.getGame().getSpectators().contains(user) || user.getGame().getState().equals(GameState.LOBBY))
        {
            e.setCancelled(true);
            return;
        }

        // TODO handle other stuff like the castles and walls
    }
}
项目:NeverLag    文件:TilesLimiter.java   
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlaceDispenser(final BlockPlaceEvent e) {
    if (!cm.tileLimitEnabled) {
        return;
    }
    if (e.getBlock().getType() == Material.DISPENSER) {
        Player p = e.getPlayer();
        if (p.isOp()) {
            return;
        }
        int limit = NeverLagUtils.getMaxPermission(p, "neverlag.limit.dispenser.");
        if (limit <= 0) {
            limit = cm.tileLimitDefaultDispenser;
        }
        if (isLimit(e.getBlock().getLocation(), Material.DISPENSER, limit)) {
            e.setCancelled(true);
            p.sendMessage(i18n.tr("message", limit));
        }
    }
}
项目:NeverLag    文件:TilesLimiter.java   
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlaceDropper(final BlockPlaceEvent e) {
    if (!cm.tileLimitEnabled) {
        return;
    }
    if (e.getBlock().getType() == Material.DROPPER) {
        Player p = e.getPlayer();
        if (p.isOp()) {
            return;
        }
        int limit = NeverLagUtils.getMaxPermission(p, "neverlag.limit.dropper.");
        if (limit <= 0) {
            limit = cm.tileLimitDefaultDropper;
        }
        if (isLimit(e.getBlock().getLocation(), Material.DROPPER, limit)) {
            e.setCancelled(true);
            p.sendMessage(i18n.tr("message", limit));
        }
    }
}
项目:NeverLag    文件:TilesLimiter.java   
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlaceHopper(final BlockPlaceEvent e) {
    if (!cm.tileLimitEnabled) {
        return;
    }
    if (e.getBlock().getType() == Material.HOPPER) {
        Player p = e.getPlayer();
        if (p.isOp()) {
            return;
        }
        int limit = NeverLagUtils.getMaxPermission(p, "neverlag.limit.hopper.");
        if (limit <= 0) {
            limit = cm.tileLimitDefaultHopper;
        }
        if (isLimit(e.getBlock().getLocation(), Material.HOPPER, limit)) {
            e.setCancelled(true);
            p.sendMessage(i18n.tr("message", limit));
        }
    }
}
项目:NeverLag    文件:AntiPlaceDoorDupe.java   
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlace(BlockPlaceEvent e) {
    if (!cm.isAntiPlaceDoorDupe) {
        return;
    }
    // 判断手里的物品是否为门
    if (e.getItemInHand().getType() == Material.WOOD_DOOR || e.getItemInHand().getType() == Material.IRON_DOOR) {
        // 清理所在区块的甘蔗掉落物
        for (Entity entity : e.getPlayer().getLocation().getChunk().getEntities()) {
            if (entity instanceof Item) {
                Material itemType = ((Item) entity).getItemStack().getType();
                if (itemType == Material.SUGAR_CANE || itemType == Material.CACTUS) {
                    entity.remove();
                }
            }
        }
    }
}
项目:NeverLag    文件:AntiQuickShopDoubleChest.java   
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onPlaceChest(BlockPlaceEvent e) {
    if (!cm.isAntiQuickDoubleChest) {
        return;
    }
    Block block = e.getBlock();
    if (block == null) {
        return;
    }
    Material blockType = block.getType();
    if (Material.CHEST == blockType || Material.TRAPPED_CHEST == blockType) {
        if (isShopBlockNearby(block)) {
            e.setCancelled(true);
            e.getPlayer().sendMessage(i18n.tr("antiQuickShopDoubleChest"));
        }
    }
}
项目:HCFCore    文件:EventSignListener.java   
@EventHandler(ignoreCancelled=true, priority=EventPriority.HIGHEST)
public void onBlockPlace(BlockPlaceEvent event)
{
  ItemStack stack = event.getItemInHand();
  BlockState state = event.getBlock().getState();
  if (((state instanceof Sign)) && (stack.hasItemMeta()))
  {
    ItemMeta meta = stack.getItemMeta();
    if ((meta.hasDisplayName()) && (meta.getDisplayName().equals(EVENT_SIGN_ITEM_NAME)))
    {
      Sign sign = (Sign)state;
      List<String> lore = meta.getLore();
      int count = 0;
      for (String loreLine : lore)
      {
        sign.setLine(count++, loreLine);
        if (count == 4) {
          break;
        }
      }
      sign.update();
    }
  }
}
项目:HCFCore    文件:DeathSignListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onBlockPlace(BlockPlaceEvent event) {
    ItemStack stack = event.getItemInHand();
    BlockState state = event.getBlock().getState();
    if (state instanceof Sign && stack.hasItemMeta()) {
        ItemMeta meta = stack.getItemMeta();
        if (meta.hasDisplayName() && meta.getDisplayName().equals(DEATH_SIGN_ITEM_NAME)) {
            Sign sign = (Sign) state;
            List<String> lore = meta.getLore();
            int count = 0;
            for (String loreLine : lore) {
                sign.setLine(count++, loreLine);
                if (count == 4)
                    break;
            }

            sign.update();

            //sign.setEditible(false);
        }
    }
}
项目:HCFCore    文件:BlockJumpGlitchFixListener.java   
@EventHandler(ignoreCancelled = false, priority = EventPriority.MONITOR)
public void onBlockBreak(BlockPlaceEvent event) {
    if (event.isCancelled()) {
        Player player = event.getPlayer();
        if (player.getGameMode() == GameMode.CREATIVE || player.getAllowFlight()) {
            return;
        }

        Block block = event.getBlockPlaced();
        if (block.getType().isSolid() && !(block.getState() instanceof Sign)) {
            int playerY = player.getLocation().getBlockY();
            int blockY = block.getLocation().getBlockY();
            if (playerY > blockY) {
                Vector vector = player.getVelocity();
                vector.setX(-0.1);
                vector.setZ(-0.1);
                player.setVelocity(vector.setY(vector.getY() - 0.41999998688697815D)); // Magic number acquired from EntityLiving#bj()
            }
        }
    }
}
项目:HCFCore    文件:EventSignListener.java   
@EventHandler(ignoreCancelled=true, priority=EventPriority.HIGHEST)
public void onBlockPlace(BlockPlaceEvent event)
{
  ItemStack stack = event.getItemInHand();
  BlockState state = event.getBlock().getState();
  if (((state instanceof Sign)) && (stack.hasItemMeta()))
  {
    ItemMeta meta = stack.getItemMeta();
    if ((meta.hasDisplayName()) && (meta.getDisplayName().equals(EVENT_SIGN_ITEM_NAME)))
    {
      Sign sign = (Sign)state;
      List<String> lore = meta.getLore();
      int count = 0;
      for (String loreLine : lore)
      {
        sign.setLine(count++, loreLine);
        if (count == 4) {
          break;
        }
      }
      sign.update();
    }
  }
}
项目:HCFCore    文件:DeathSignListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onBlockPlace(BlockPlaceEvent event) {
    ItemStack stack = event.getItemInHand();
    BlockState state = event.getBlock().getState();
    if (state instanceof Sign && stack.hasItemMeta()) {
        ItemMeta meta = stack.getItemMeta();
        if (meta.hasDisplayName() && meta.getDisplayName().equals(DEATH_SIGN_ITEM_NAME)) {
            Sign sign = (Sign) state;
            List<String> lore = meta.getLore();
            int count = 0;
            for (String loreLine : lore) {
                sign.setLine(count++, loreLine);
                if (count == 4)
                    break;
            }

            sign.update();

            //sign.setEditible(false);
        }
    }
}
项目:PA    文件:PlayerEvents.java   
@EventHandler
public void BlockPlaceEvent(BlockPlaceEvent e){
    Player p = e.getPlayer();
    Block b = e.getBlock();

    if (e.getItemInHand().getType() == Material.DROPPER && e.getItemInHand().getEnchantments() != null && e.getItemInHand().getEnchantments().containsKey(Enchantment.ARROW_DAMAGE)) {
        Casino c = new Casino(e.getBlockPlaced().getLocation());
        c.effect();
    }

    for(Entity en : p.getNearbyEntities (4D, 4D, 4D)){
        if (en instanceof Player){
            if(en == p) continue;
            if(b.getType() == Material.FIRE){

                if(Files.user.getBoolean("Users." + en.getName() + ".pvp") == false){
                    p.sendMessage(Utils.colorize(PAData.SURVIVAL.getPrefix() + ChatColor.DARK_RED + " No puedes poner ese bloque cerca de un jugador con el pvp desactivado."));
                    e.setCancelled(true);
                }
            }
        }
    }
}
项目:SlimefunBugFixer    文件:Listeners.java   
@EventHandler
public void onPlace(BlockPlaceEvent e) {
    if (e.isCancelled()) {
        return;
    }
    if (!e.getBlock().getType().equals(Material.CAULDRON)) {
        return;
    }
    Block b = e.getBlock();
    Location loc = b.getLocation();
    loc.setY(loc.getY() + 1);
    Block upon = loc.getBlock();
    if (upon.getType().equals(Material.AIR)) {
        return;
    }
    e.setCancelled(true);
    e.getPlayer().sendMessage(Messages.getMessages().getNoPlace().replace("&", "§"));
}
项目:CraftyProfessions    文件:CoreListener.java   
@EventHandler
public void onBlockPlaced (BlockPlaceEvent event)
{
    Player player = event.getPlayer ();

    player.sendMessage (player.getDisplayName() + " Placed " + event.getBlockPlaced ().toString ());

    if (mEconomy != null)
    {
        mEconomy.depositPlayer (player, 100D);
        mEconomy.getBalance (player);
    }
}
项目:Warzone    文件:WoolObjective.java   
@EventHandler
public void onPlace(BlockPlaceEvent event) {
    if (event.getBlockPlaced().getType() == Material.WOOL && event.getBlockPlaced().getState().getData().getData() == color) {
        if (!completed) {

            if (!podium.contains(event.getBlockPlaced().getLocation())) {
                return;
            }

            if (!owner.containsPlayer(event.getPlayer())) {
                return;
            }

            event.setCancelled(false); //override filter
            setCompleted(true);

            TeamManagerModule teamManagerModule = TGM.get().getModule(TeamManagerModule.class);
            MatchTeam matchTeam = teamManagerModule.getTeam(event.getPlayer());

            for (WoolObjectiveService woolObjectiveService : services) {
                woolObjectiveService.place(event.getPlayer(), matchTeam, event.getBlock());
            }
        }
    } else {
        if (podium.contains(event.getBlockPlaced().getLocation())) {
            event.setCancelled(true);
        }
    }
}
项目:ZorahPractice    文件:PlayerListener.java   
@EventHandler
public void onPlace(BlockPlaceEvent event) {
    Player player = event.getPlayer();

    if (!((player.hasPermission("practice.admin") || player.isOp()) && player.getGameMode() == GameMode.CREATIVE)) {
        event.setCancelled(true);
    }
}
项目:McLink    文件:ActionBind.java   
@EventHandler
public void blockPlace(BlockPlaceEvent event) {
    ListIterator<BlockPlaceRunnable> in = placerun.update();
    while (in.hasNext()) {
        BlockPlaceRunnable r = in.next();
        r.setEvent(event);
        r.run();
    }
}
项目:Warzone    文件:DispenserListener.java   
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent event) {
    if (!this.tracker.isEnabled(event.getBlock().getWorld())) return;

    if (event.getBlock().getType() == Material.DISPENSER) {
        this.tracker.setPlacer(event.getBlock(), event.getPlayer());
    }
}
项目:Warzone    文件:AnvilListener.java   
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent event) {
    if (!this.tracker.isEnabled(event.getBlock().getWorld())) return;

    if (event.getBlock().getType() == Material.ANVIL) {
        this.tracker.setPlacer(event.getBlock(), Bukkit.getOfflinePlayer(event.getPlayer().getUniqueId()));
    }
}
项目:ZentrelaRPG    文件:EnvironmentManager.java   
@EventHandler
public void onBlockPlace(BlockPlaceEvent event) {
    PlayerDataRPG pd = plugin.getPD(event.getPlayer());
    if (pd == null)
        event.setCancelled(true);
    if (event.getPlayer().getGameMode() != GameMode.CREATIVE)
        event.setCancelled(true);
    if (!canBuild(pd))
        event.setCancelled(true);
    event.getPlayer().updateInventory();
}
项目:Slimefun4-Chinese-Version    文件:AncientAltarListener.java   
@EventHandler (priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockPlace(BlockPlaceEvent e) {
    Block b = e.getBlockPlaced().getRelative(0, -1, 0);
    SlimefunItem item = BlockStorage.check(b);
    if(item == null) return;
    if(item.getID().equalsIgnoreCase("ANCIENT_PEDESTAL")) {
        Messages.local.sendTranslation(e.getPlayer(), "messages.cannot-place", true);
        e.setCancelled(true);
    }
}
项目:prisonPicks    文件:Events.java   
@EventHandler
public void onBlockPlace(BlockPlaceEvent event)
{
    Player player = event.getPlayer();
    Block b = event.getBlock();
    b.setMetadata("blockBreaker", new FixedMetadataValue(PrisonPicks.getInstance(), player.getUniqueId()));
}
项目:SuperiorCraft    文件:SuperiorCraft.java   
@EventHandler
public void onBlockPlace(BlockPlaceEvent e) {
    Player player = e.getPlayer();
    if (!player.hasPermission("superiorcraft.editworld")) {
        e.setCancelled(true);
        player.sendMessage(ChatColor.RED + "You may not place blocks here");
    }
}
项目:ProjectAres    文件:WoolMatchModule.java   
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onContainerPlace(BlockPlaceEvent event) {
    // Blacklist any placed container blocks
    if(event.getBlock().getState() instanceof InventoryHolder) {
        this.chests.put(((InventoryHolder) event.getBlock().getState()).getInventory(), false);
    }
}
项目:ProjectAres    文件:TNTMatchModule.java   
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void handleInstantActivation(BlockPlaceEvent event) {
    if(this.properties.instantIgnite && event.getBlock().getType() == Material.TNT) {
        World world = event.getBlock().getWorld();
        TNTPrimed tnt = world.spawn(BlockUtils.base(event.getBlock()), TNTPrimed.class);

        if(this.properties.fuse != null) {
            tnt.setFuseTicks(this.getFuseTicks());
        }

        if(this.properties.power != null) {
            tnt.setYield(this.properties.power); // Note: not related to EntityExplodeEvent.yield
        }

        if(callPrimeEvent(tnt, event.getPlayer(), true)) {
            // Only cancel the block placement if the prime event is NOT cancelled.
            // If priming is cancelled, the block is allowed to stay (unless some
            // other handler has already cancelled the place event).
            event.setCancelled(true);
            world.playSound(tnt.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1);

            ItemStack inHand = event.getItemInHand();
            if(inHand.getAmount() == 1) {
                inHand = null;
            } else {
                inHand.setAmount(inHand.getAmount() - 1);
            }
            event.getPlayer().getInventory().setItem(event.getHand(), inHand);
        }
    }
}
项目:ProjectAres    文件:BlockTransformEvent.java   
/**
 * 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;
}
项目:ProjectAres    文件:BlockTransformListener.java   
@EventWrapper
public void onBlockPlace(final BlockPlaceEvent event) {
    if(event instanceof BlockMultiPlaceEvent) {
        for(BlockState oldState : ((BlockMultiPlaceEvent) event).getReplacedBlockStates()) {
            callEvent(event, oldState, oldState.getBlock().getState(), event.getPlayer());
        }
    } else {
        callEvent(event, event.getBlockReplacedState(), event.getBlock().getState(), event.getPlayer());
    }
}
项目:KingdomFactions    文件:BuildEventListener.java   
@EventHandler
public void onPlace(BlockPlaceEvent e) {
    KingdomFactionsPlayer p = PlayerModule.getInstance().getPlayer(e.getPlayer());
    if(p.hasBuildAction()) e.setCancelled(true);
    if(p.isVanished()) return;
    if(e.isCancelled()) return;
    if(!p.canBuild(e.getBlock().getLocation())) {
        e.setCancelled(!ProtectionModule.getInstance().tryInfluence(p, 200, e.getBlock()));

    } 
}
项目:KingdomFactions    文件:BlockPlace.java   
@EventHandler
public void onBlockPlace(BlockPlaceEvent event) {

    if (event.getItemInHand().getType() != Material.MOB_SPAWNER)
        return;

    ItemStack is = event.getItemInHand();
    if (!is.hasItemMeta())
        return;

    ItemMeta im = is.getItemMeta();

    if (!im.hasLore())
        return;

    String lore = im.getLore().toString();

    if (!lore.contains("Spawner:"))
        return;

    EntityType entity = getEntity(lore);

    if (entity == EntityType.AREA_EFFECT_CLOUD) {
        event.setCancelled(true);
        return;
    }

    setSpawner(event.getBlock(), entity);
}
项目:SurvivalPlus    文件:FirestrikerClick.java   
@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;
}