@EventHandler
public void onInventoryClick(InventoryClickEvent e) {
if (e.getInventory() instanceof AnvilInventory && e.getWhoClicked() instanceof Player) {
Player player = (Player) e.getWhoClicked();
AnvilInventory inv = (AnvilInventory) e.getInventory();
if (e.getSlot() == 2) {
ItemStack item = inv.getItem(2);
if (!item.hasItemMeta()) {
return;
}
if (!item.getItemMeta().hasDisplayName()) {
return;
}
String name = item.getItemMeta().getDisplayName();
String node = "";
if ((node = Util.isBastard(name)) == Util.NONE) {
return;
}
int levels = plugin.getConfig().getInt(node + ".levels");
if (levels < 0) {
return;
}
int required = (player.getGameMode() == GameMode.CREATIVE ? 0 : levels);
if (player.getLevel() < required) {
player.sendMessage(Message.NOT_ENOUGH_LEVELS_1);
player.sendMessage(Message.NOT_ENOUGH_LEVELS_2.replace("%l%", required + ""));
player.playSound(player.getLocation(), Sound.BAT_HURT, 1L, 1L);
e.setCancelled(true);
return;
}
player.setLevel(player.getLevel() - required);
if (player.getGameMode() != GameMode.CREATIVE) {
player.getInventory().addItem(e.getCurrentItem());
inv.setItem(0, null);
player.playSound(player.getLocation(), Sound.ANVIL_USE, 1L, 1L);
player.closeInventory();
}
}
}
}
AnvilListener.java 文件源码
java
阅读 30
收藏 0
点赞 0
评论 0
项目:DirtyArrows
作者:
评论列表
文章目录