@EventHandler
public void event(BlockBreakEvent e) {
new OMGBreakEvent(e, get(e.getPlayer()), e.getBlock());
if (Area.registeredAreas.values().stream().anyMatch(a -> a.isInside(e.getBlock().getLocation())) && Area.registeredAreas.values().stream().noneMatch(a -> a.isInside(e.getBlock().getLocation()) && a.isBreakAllowed(get(e.getPlayer()).team, e.getBlock().getType()))) {
e.setCancelled(true);
return;
}
if (g.settings.isLootingOn && e.getBlock().getType() == Material.CHEST) {
e.setCancelled(true);
Inventory inv = ((Chest) e.getBlock().getState()).getBlockInventory();
String lootid = inv.getTitle() == null ? "" : inv.getTitle();
OMGLoot.LootParser lp = g.loot_contents(get(e.getPlayer()), lootid);
if (lp != null) {
inv.clear();
for (int i = 0; i < inv.getSize(); i++) {
ItemStack ii = lp.getRandom().toItem();
if (ii != null && NBTParser.getTagCompound(ii).getByte("Undroppable") != 1)
e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), ii);
}
}
e.getBlock().setType(Material.AIR);
e.getBlock().getWorld().dropItemNaturally(e.getBlock().getLocation(), new ItemStack(Material.CHEST));
}
if (!GameArea.isBlockInside(e.getBlock())) e.setCancelled(true);
}
BukkitEventHandler.java 文件源码
java
阅读 39
收藏 0
点赞 0
评论 0
项目:OMGPI
作者:
评论列表
文章目录