org.bukkit.event.block.BlockBreakEvent#isCancelled ( )源码实例Demo

下面列出了org.bukkit.event.block.BlockBreakEvent#isCancelled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: BedWars   文件: SignListener.java
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
    if (event.isCancelled()) {
        return;
    }

    if (event.getBlock().getState() instanceof Sign) {
        Location loc = event.getBlock().getLocation();
        if (manager.isSignRegistered(loc)) {
            if (event.getPlayer().hasPermission(owner.getSignCreationPermission())) {
                manager.unregisterSign(loc);
            } else {
                event.getPlayer().sendMessage(owner.returnTranslate("sign_can_not_been_destroyed"));
                event.setCancelled(true);
            }
        }
    }

}
 
源代码2 项目: BedWars   文件: SignListener.java
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
    if (event.isCancelled()) {
        return;
    }

    if (event.getBlock().getState() instanceof Sign) {
        Location loc = event.getBlock().getLocation();
        if (manager.isSignRegistered(loc)) {
            if (event.getPlayer().hasPermission(owner.getSignCreationPermission())) {
                manager.unregisterSign(loc);
            } else {
                event.getPlayer().sendMessage(owner.returnTranslate("sign_can_not_been_destroyed"));
                event.setCancelled(true);
            }
        }
    }

}
 
源代码3 项目: AreaShop   文件: SignsFeature.java
@EventHandler(priority = EventPriority.HIGH)
public void onSignBreak(BlockBreakEvent event) {
	if(event.isCancelled()) {
		return;
	}
	Block block = event.getBlock();
	// Check if it is a sign
	if(Materials.isSign(block.getType())) {
		// Check if the rent sign is really the same as a saved rent
		RegionSign regionSign = SignsFeature.getSignByLocation(block.getLocation());
		if(regionSign == null) {
			return;
		}
		// Remove the sign of the rental region if the player has permission
		if(event.getPlayer().hasPermission("areashop.delsign")) {
			regionSign.remove();
			plugin.message(event.getPlayer(), "delsign-success", regionSign.getRegion());
		} else { // Cancel the breaking of the sign
			event.setCancelled(true);
			plugin.message(event.getPlayer(), "delsign-noPermission", regionSign.getRegion());
		}
	}
}
 
源代码4 项目: CardinalPGM   文件: SpleefTracker.java
@EventHandler(priority = EventPriority.MONITOR)
public void onBlockBreak(BlockBreakEvent event) {
    if (event.isCancelled() || GameHandler.getGameHandler().getMatch().getModules().getModule(TitleRespawn.class).isDeadUUID(event.getPlayer().getUniqueId())) return;
    for (Player player : Bukkit.getOnlinePlayers()) {
        Location location = event.getBlock().getLocation();
        location.setY(location.getY() + 1);
        Location playerLoc = player.getLocation();
        if (playerLoc.getBlockX() == location.getBlockX() && playerLoc.getBlockY() == location.getBlockY() && playerLoc.getBlockZ() == location.getBlockZ()) {
            Description description = null;
            if (player.getLocation().add(new Vector(0, 1, 0)).getBlock().getType().equals(Material.LADDER)) {
                description = Description.OFF_A_LADDER;
            } else if (player.getLocation().add(new Vector(0, 1, 0)).getBlock().getType().equals(Material.VINE)) {
                description = Description.OFF_A_VINE;
            } else if (player.getLocation().getBlock().getType().equals(Material.WATER) || player.getLocation().getBlock().getType().equals(Material.STATIONARY_WATER)) {
                description = Description.OUT_OF_THE_WATER;
            } else if (player.getLocation().getBlock().getType().equals(Material.LAVA) || player.getLocation().getBlock().getType().equals(Material.STATIONARY_LAVA)) {
                description = Description.OUT_OF_THE_LAVA;
            }
            Bukkit.getServer().getPluginManager().callEvent(new TrackerDamageEvent(player, event.getPlayer(), event.getPlayer().getItemInHand(), Cause.PLAYER, description, Type.SPLEEFED));
        }
    }
}
 
源代码5 项目: Civs   文件: RegionsTests.java
@Test
public void regionShouldBeDestroyedCenter() {
    loadRegionTypeCobble();
    HashMap<UUID, String> owners = new HashMap<>();
    owners.put(TestUtil.player.getUniqueId(), Constants.OWNER);
    Location location1 = new Location(Bukkit.getWorld("world"), 4, 0, 0);
    RegionType regionType = (RegionType) ItemManager.getInstance().getItemType("cobble");
    RegionManager.getInstance().addRegion(new Region("cobble", owners, location1, getRadii(), regionType.getEffects(),0));
    BlockBreakEvent event = new BlockBreakEvent(TestUtil.blockUnique, TestUtil.player);
    CivilianListener civilianListener = new CivilianListener();
    ProtectionHandler protectionHandler = new ProtectionHandler();
    protectionHandler.onBlockBreak(event);
    if (!event.isCancelled()) {
        civilianListener.onCivilianBlockBreak(event);
    }
    assertNull(RegionManager.getInstance().getRegionAt(location1));
}
 
源代码6 项目: EliteMobs   文件: BalrogEvent.java
@EventHandler
public void onMine(BlockBreakEvent event) {

    if (event.isCancelled()) return;
    if (!EliteMobs.validWorldList.contains(event.getPlayer().getWorld())) return;
    if (event.getPlayer().getGameMode() == GameMode.CREATIVE || event.getPlayer().getGameMode() == GameMode.SPECTATOR) return;
    if (!event.getPlayer().hasPermission("elitemobs.events.balrog")) return;
    if (event.getPlayer().getInventory().getItemInMainHand().hasItemMeta() &&
            event.getPlayer().getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.SILK_TOUCH))
        return;
    if (!(event.getBlock().getType().equals(Material.DIAMOND_ORE) || event.getBlock().getType().equals(Material.IRON_ORE) ||
            event.getBlock().getType().equals(Material.COAL_ORE) || event.getBlock().getType().equals(Material.REDSTONE_ORE) ||
            event.getBlock().getType().equals(Material.LAPIS_ORE) || event.getBlock().getType().equals(Material.GOLD_ORE))) return;
    if (ThreadLocalRandom.current().nextDouble() > ConfigValues.eventsConfig.getDouble(EventsConfig.BALROG_CHANCE_ON_MINE)) return;

    Balrog.spawnBalrog(event.getBlock().getLocation());

}
 
源代码7 项目: ArmorStandTools   文件: Main.java
boolean checkBlockPermission(Player p, Block b) {
    if(b == null) return true;
    debug("PlotSquaredHook.api: " + PlotSquaredHook.api);
    if (PlotSquaredHook.api != null) {
        Location l = b.getLocation();
        debug("PlotSquaredHook.isPlotWorld(l): " + PlotSquaredHook.isPlotWorld(l));
        if(PlotSquaredHook.isPlotWorld(l)) {
            return PlotSquaredHook.checkPermission(p, l);
        }
    }
    if(Config.worldGuardPlugin != null) {
        if(!Utils.hasPermissionNode(p, "astools.bypass-wg-flag") && !getWorldGuardAstFlag(b.getLocation())) {
            return false;
        }
        return Config.worldGuardPlugin.createProtectionQuery().testBlockBreak(p, b);
    }
    BlockBreakEvent breakEvent = new BlockBreakEvent(b, p);
    Bukkit.getServer().getPluginManager().callEvent(breakEvent);
    return !breakEvent.isCancelled();
}
 
源代码8 项目: uSkyBlock   文件: SignEvents.java
@EventHandler(priority = EventPriority.MONITOR)
public void onSignOrChestBreak(BlockBreakEvent e) {
    if (e.isCancelled()
            || e.getBlock() == null
            || (e.getBlock().getType() != SkyBlockMenu.WALL_SIGN_MATERIAL && !(e.getBlock().getType() == Material.CHEST || e.getBlock().getType() == Material.TRAPPED_CHEST))
            || e.getBlock().getLocation() == null
            || !plugin.getWorldManager().isSkyAssociatedWorld(e.getBlock().getLocation().getWorld())
            ) {
        return;
    }
    if (e.getBlock().getType() == SkyBlockMenu.WALL_SIGN_MATERIAL) {
        logic.removeSign(e.getBlock().getLocation());
    } else {
        logic.removeChest(e.getBlock().getLocation());
    }
}
 
源代码9 项目: QualityArmory   文件: QAListener.java
@SuppressWarnings("deprecation")
@EventHandler
public void onBlockBreak(BlockBreakEvent e) {
	if (e.isCancelled())
		return;
	if (e.getPlayer().getItemInHand() != null && (QualityArmory.isCustomItem(e.getPlayer().getItemInHand()))) {
		e.setCancelled(true);
		return;
	}
}
 
源代码10 项目: QualityArmory   文件: QAListener.java
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.MONITOR)
public void onBlockBreakMonitor(final BlockBreakEvent e) {
	if (e.isCancelled())
		return;
	if (CustomItemManager.isUsingCustomData())
		return;
	int k = 0;
	if (e.getPlayer().getItemInHand() != null)
		if ((k = Gun.getCalculatedExtraDurib(e.getPlayer().getItemInHand())) != -1) {
			ItemStack hand = e.getPlayer().getItemInHand();
			e.getBlock().breakNaturally(hand);
			e.setCancelled(true);
			final ItemStack t;
			if (k > 0) {
				t = Gun.decrementCalculatedExtra(hand);
			} else {
				t = Gun.removeCalculatedExtra(hand);
			}
			new BukkitRunnable() {

				@Override
				public void run() {
					e.getPlayer().setItemInHand(t);
				}
			}.runTaskLater(QAMain.getInstance(), 1);

		}
}
 
源代码11 项目: Civs   文件: TownTests.java
@Test
public void townShouldDestroyWhenCriticalRegionDestroyed() {
    RegionsTests.loadRegionTypeCobble();
    HashMap<UUID, String> people = new HashMap<>();
    people.put(TestUtil.player.getUniqueId(), Constants.OWNER);
    HashMap<String, String> effects = new HashMap<>();
    Location regionLocation = new Location(Bukkit.getWorld("world2"), 0,0,0);
    Region region = new Region("cobble", people,
            regionLocation,
            RegionsTests.getRadii(),
            effects,0);
    loadTownTypeTribe();
    Location townLocation = new Location(Bukkit.getWorld("world2"), 1,0,0);

    RegionManager regionManager = RegionManager.getInstance();
    regionManager.addRegion(region);
    loadTown("Sanmak-kol", "tribe", townLocation);
    if (TownManager.getInstance().getTowns().isEmpty()) {
        fail("No town found");
    }
    ProtectionHandler protectionHandler = new ProtectionHandler();
    Block block = mock(Block.class);
    when(block.getLocation()).thenReturn(regionLocation);
    BlockBreakEvent blockBreakEvent = new BlockBreakEvent(block, TestUtil.player);
    CivilianListener civilianListener = new CivilianListener();
    protectionHandler.onBlockBreak(blockBreakEvent);
    if (!blockBreakEvent.isCancelled()) {
        civilianListener.onCivilianBlockBreak(blockBreakEvent);
    }
    assertNull(regionManager.getRegionAt(regionLocation));
    assertTrue(TownManager.getInstance().getTowns().isEmpty());
}
 
源代码12 项目: Civs   文件: TownTests.java
@Test
public void townShouldDestroyWhenCriticalRegionDestroyed3() {
    RegionsTests.loadRegionTypeCobbleGroup();
    RegionsTests.loadRegionTypeCobbleGroup2();
    HashMap<UUID, String> people = new HashMap<>();
    people.put(TestUtil.player.getUniqueId(), Constants.OWNER);
    HashMap<String, String> effects = new HashMap<>();
    Location regionLocation = new Location(Bukkit.getWorld("world2"), 0,0,0);
    Location regionLocation2 = new Location(Bukkit.getWorld("world2"), 0,20,0);
    Region region = new Region("town_hall", people,
            regionLocation,
            RegionsTests.getRadii(),
            effects,0);
    loadTownTypeTribe();
    Location townLocation = new Location(Bukkit.getWorld("world2"), 1,0,0);

    RegionsTests.createNewRegion("purifier", regionLocation2);
    RegionManager regionManager = RegionManager.getInstance();
    regionManager.addRegion(region);
    loadTown("Sanmak-kol", "tribe", townLocation);
    if (TownManager.getInstance().getTowns().isEmpty()) {
        fail("No town found");
    }
    ProtectionHandler protectionHandler = new ProtectionHandler();
    Block block = mock(Block.class);
    when(block.getLocation()).thenReturn(regionLocation);
    BlockBreakEvent blockBreakEvent = new BlockBreakEvent(block, TestUtil.player);
    CivilianListener civilianListener = new CivilianListener();
    protectionHandler.onBlockBreak(blockBreakEvent);
    if (!blockBreakEvent.isCancelled()) {
        civilianListener.onCivilianBlockBreak(blockBreakEvent);
    }
    assertNull(regionManager.getRegionAt(regionLocation));
    assertTrue(TownManager.getInstance().getTowns().isEmpty());
}
 
源代码13 项目: Survival-Games   文件: LoggingManager.java
@EventHandler(priority = EventPriority.MONITOR)
public void blockChanged(BlockBreakEvent e){
	if(e.isCancelled())return;
	logBlockDestoryed(e.getBlock());
	i.put("BCHANGE", i.get("BCHANGE")+1);
	//    Sur(1);
}
 
源代码14 项目: CardinalPGM   文件: BlockBreakRegion.java
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
    if (!event.isCancelled() && region.contains(new BlockRegion(null, event.getBlock().getLocation().toVector())) && filter.evaluate(event.getPlayer(), event.getBlock(), event).equals(FilterState.DENY)) {
        event.setCancelled(true);
        ChatUtil.sendWarningMessage(event.getPlayer(), message);
    }
}
 
源代码15 项目: BedwarsRel   文件: TrapListener.java
@EventHandler(priority = EventPriority.HIGH)
public void onBreak(BlockBreakEvent br) {
  if (br.isCancelled()) {
    return;
  }

  Block toDestroy = br.getBlock();
  if (br.getBlock().getType() != Material.TRIPWIRE) {
    Block relative = br.getBlock().getRelative(BlockFace.UP);
    // check above
    if (!relative.getType().equals(Material.TRIPWIRE)) {
      return;
    }

    toDestroy = relative;
  }

  Player player = br.getPlayer();
  Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(player);

  if (game == null) {
    return;
  }

  if (game.getState() != GameState.RUNNING) {
    return;
  }

  if (br.getBlock().equals(toDestroy)) {
    br.setCancelled(true);
    return;
  }

  toDestroy.setType(Material.AIR);
}
 
源代码16 项目: civcraft   文件: WarListener.java
@EventHandler(priority = EventPriority.HIGH)
   public void onBlockBreak(BlockBreakEvent event) {
	if (event.isCancelled()) {
		return;
	}
	
	if (!War.isWarTime()) {
		return;
	}
	
	coord.setFromLocation(event.getBlock().getLocation());
	CultureChunk cc = CivGlobal.getCultureChunk(coord);
	
	if (cc == null) {
		return;
	}
	
	if (!cc.getCiv().getDiplomacyManager().isAtWar()) {
		return;
	}
			
	if (event.getBlock().getType().equals(Material.DIRT) || 
		event.getBlock().getType().equals(Material.GRASS) ||
		event.getBlock().getType().equals(Material.SAND) ||
		event.getBlock().getType().equals(Material.GRAVEL) ||
		event.getBlock().getType().equals(Material.TORCH) ||
		event.getBlock().getType().equals(Material.REDSTONE_TORCH_OFF) ||
		event.getBlock().getType().equals(Material.REDSTONE_TORCH_ON) ||
		event.getBlock().getType().equals(Material.REDSTONE) ||
		event.getBlock().getType().equals(Material.TNT) ||
		event.getBlock().getType().equals(Material.LADDER) ||
		event.getBlock().getType().equals(Material.VINE) ||
		!event.getBlock().getType().isSolid()) {
		return;
	}
	
	CivMessage.sendError(event.getPlayer(), "Must use TNT to break blocks in at-war civilization cultures during WarTime.");
	event.setCancelled(true);
}
 
源代码17 项目: IridiumSkyblock   文件: BlockBreakListener.java
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
    try {
        if (event.isCancelled()) return;
        final Block block = event.getBlock();
        final Location location = block.getLocation();
        final IslandManager islandManager = IridiumSkyblock.getIslandManager();
        final Island island = islandManager.getIslandViaLocation(location);
        if (island == null) return;

        final Player player = event.getPlayer();
        final User user = User.getUser(player);

        if (user.islandID == island.getId()) {
            for (Missions.Mission mission : IridiumSkyblock.getMissions().missions) {
                final int key = island.getMissionLevels().computeIfAbsent(mission.name, (name) -> 1);
                final Map<Integer, Missions.MissionData> levels = mission.levels;
                final Missions.MissionData level = levels.get(key);

                if (level == null) continue;
                if (level.type != MissionType.BLOCK_BREAK) continue;

                final List<String> conditions = level.conditions;

                if (
                        conditions.isEmpty()
                                ||
                                conditions.contains(XMaterial.matchXMaterial(block.getType()).name())
                                ||
                                (
                                        block.getState().getData() instanceof Crops
                                                &&
                                                conditions.contains(((Crops) block.getState().getData()).getState().toString())
                                )
                )
                    island.addMission(mission.name, 1);
            }
        }

        if (!island.getPermissions(user).breakBlocks || (!island.getPermissions(user).breakSpawners && XMaterial.matchXMaterial(block.getType()).equals(XMaterial.SPAWNER))) {
            if (XMaterial.matchXMaterial(block.getType()).equals(XMaterial.SPAWNER)) {
                player.sendMessage(Utils.color(IridiumSkyblock.getMessages().noPermissionBreakSpawners.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            } else {
                player.sendMessage(Utils.color(IridiumSkyblock.getMessages().noPermissionBuild.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
            }
            event.setCancelled(true);
        }
    } catch (Exception e) {
        IridiumSkyblock.getInstance().sendErrorMessage(e);
    }
}
 
源代码18 项目: MineTinker   文件: DataHandler.java
public static boolean playerBreakBlock(@NotNull Player player, Block block, @NotNull ItemStack itemStack) {
    //Trigger BlockBreakEvent
    BlockBreakEvent breakEvent = new BlockBreakEvent(block, player);
    ItemMeta meta = itemStack.getItemMeta();
    if (meta != null && !meta.hasEnchant(Enchantment.SILK_TOUCH)) breakEvent.setExpToDrop(calculateExp(block.getType()));
    Bukkit.getPluginManager().callEvent(breakEvent);

    //Check if Event got cancelled and if not destroy the block and check if the player can successfully break the blocks (incl. drops)
    //Block#breakNaturally(ItemStack itemStack) can not be used as it drops Items itself (without Event and we don't want that)
    if (!breakEvent.isCancelled()) {
        //Get all drops to drop
        Collection<ItemStack> items = block.getDrops(itemStack);

        //Set Block to Material.AIR (effectively breaks the Block)
        block.setType(Material.AIR);
        //TODO: Play Sound?

        //Check if items need to be dropped
        if (breakEvent.isDropItems()) {
            List<Item> itemEntities = items.stream()
                    .map(entry -> player.getWorld().dropItemNaturally(block.getLocation(), entry)) //World#spawnEntity() does not work for Items
                    .collect(Collectors.toList());

            //Trigger BlockDropItemEvent (internally also used for Directing)
            BlockDropItemEvent event = new BlockDropItemEvent(block, block.getState(), player, new ArrayList<>(itemEntities));
            Bukkit.getPluginManager().callEvent(event);

            //check if Event got cancelled
            if (!event.isCancelled()) {
                //Remove all drops that should be dropped
                itemEntities.removeIf(element -> event.getItems().contains(element));
            }
            itemEntities.forEach(Item::remove);
        }

        //Check if Exp needs to be dropped
        if (breakEvent.getExpToDrop() > 0) {
            //Spawn Experience Orb
            ExperienceOrb orb = (ExperienceOrb) player.getWorld().spawnEntity(block.getLocation(), EntityType.EXPERIENCE_ORB);
            orb.setExperience(breakEvent.getExpToDrop());
        }

        return true;
    }

    return false;
}
 
源代码19 项目: CardinalPGM   文件: CoreObjective.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onBlockBreak(BlockBreakEvent event) {
    if (!event.isCancelled()) {
        if (getBlocks().contains(event.getBlock())) {
            if (Teams.getTeamByPlayer(event.getPlayer()).orNull() != team) {
                boolean touchMessage = false;
                if (!playersTouched.contains(event.getPlayer().getUniqueId())) {
                    playersTouched.add(event.getPlayer().getUniqueId());
                    Optional<TeamModule> teamModule = Teams.getTeamByPlayer(event.getPlayer());
                    if (teamModule.isPresent()) {
                        ChatChannel channel = Teams.getTeamChannel(teamModule);
                        if (this.show && !this.complete) {
                            channel.sendLocalizedMessage(new LocalizedChatMessage(ChatConstant.UI_OBJECTIVE_TOUCHED_FOR, teamModule.get().getColor() + event.getPlayer().getName() + ChatColor.WHITE, name, teamModule.get().getCompleteName() + ChatColor.WHITE));
                            for (Player player : Bukkit.getOnlinePlayers()) {
                                if (Teams.getTeamByPlayer(player).isPresent() && Teams.getTeamByPlayer(player).get().isObserver()) {
                                    player.sendMessage(new LocalizedChatMessage(ChatConstant.UI_OBJECTIVE_TOUCHED_FOR, teamModule.get().getColor() + event.getPlayer().getName() + ChatColor.GRAY, ChatColor.RED + name + ChatColor.GRAY, teamModule.get().getCompleteName() + ChatColor.GRAY).getMessage(player.getLocale()));
                                }
                            }
                            touchMessage = true;
                        }
                    }
                }
                if (!playersCompleted.contains(event.getPlayer().getUniqueId()))
                    playersCompleted.add(event.getPlayer().getUniqueId());
                this.touched = true;
                ObjectiveTouchEvent touchEvent = new ObjectiveTouchEvent(this, event.getPlayer(), touchMessage);
                Bukkit.getServer().getPluginManager().callEvent(touchEvent);
                event.setCancelled(false);
            } else {
                event.setCancelled(true);
                if (this.show)
                    ChatUtil.sendWarningMessage(event.getPlayer(), new LocalizedChatMessage(ChatConstant.ERROR_OWN_CORE));
                return;
            }
        }
        if (core.contains(event.getBlock())) {
            if (Teams.getTeamByPlayer(event.getPlayer()).orNull() == team) {
                event.setCancelled(true);
                if (this.show)
                    ChatUtil.sendWarningMessage(event.getPlayer(), new LocalizedChatMessage(ChatConstant.ERROR_OWN_CORE));
            }
        }
    }
}
 
源代码20 项目: HeavySpleef   文件: SignExtension.java
@EventHandler(priority = EventPriority.MONITOR)
public void onBlockBreak(BlockBreakEvent event) {
	if (event.isCancelled()) {
		return;
	}
	
	GameManager manager = heavySpleef.getGameManager();
	Block block = event.getBlock();
	Location blockLoc = block.getLocation();			
	
	Game gameFound = null;
	SignExtension found = null;
	
	for (Game game : manager.getGames()) {
		for (SignExtension extension : game.getExtensionsByType(SignExtension.class)) {
			Location location = extension.getLocation();
			if (blockLoc.equals(location)) {
				found = extension;
				gameFound = game;
				break;
			}
		}
		
		if (found != null) {
			break;
		}
	}
	
	if (found == null) {
		return;
	}
	
	SpleefPlayer player = heavySpleef.getSpleefPlayer(event.getPlayer());
	if (!player.hasPermission(Permissions.PERMISSION_REMOVE_SIGN)) {
		return;
	}
	
	gameFound.removeExtension(found);
	player.sendMessage(i18n.getVarString(Messages.Player.SIGN_REMOVED)
			.setVariable("game", gameFound.getName())
			.toString());
	
	heavySpleef.getDatabaseHandler().saveGame(gameFound, null);
}