@EventHandler(priority = EventPriority.MONITOR)
public void onInventoryClick(InventoryClickEvent e){
if (e.isCancelled() || !(e.getWhoClicked() instanceof Player)) {
return;
}
if (!(e.getInventory() instanceof AnvilInventory)) {
return;
}
Player p = (Player) e.getWhoClicked();
if (!QuestManagerPlugin.questManagerPlugin.getPluginConfiguration().getWorlds().contains(
p.getWorld().getName())) {
return;
}
AnvilInventory inv = (AnvilInventory) e.getInventory();
int rawSlot = e.getSlot();
if(rawSlot != 2){
return;
}
if (inv.getItem(2) == null) {
return;
}
//trying to finish it. Just compare name from slot 0 to slot 2 and make sure the same
ItemStack left = inv.getItem(0);
ItemStack right = inv.getItem(2);
//first check: left has nothing, right should have nothing
if ( (!left.hasItemMeta() && right.hasItemMeta() && right.getItemMeta().hasDisplayName())) {
e.setCancelled(true);
return;
}
//second check: the name has changed
if (left.hasItemMeta() && left.getItemMeta().hasDisplayName()) { //we odn't need to make sure the right does cause it always will
if (!left.getItemMeta().getDisplayName().equals(right.getItemMeta().getDisplayName())) {
e.setCancelled(true);
return;
}
}
//last check: left has meta, no name but right does
if (left.hasItemMeta() && !left.getItemMeta().hasDisplayName() && right.getItemMeta().hasDisplayName()) {
e.setCancelled(true);
return;
}
}
QuestManager.java 文件源码
java
阅读 27
收藏 0
点赞 0
评论 0
项目:QuestManager
作者:
评论列表
文章目录