TypeRepair.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:EpicQuest 作者:
@EventHandler
public static void onInventoryClick(InventoryClickEvent e){
    if(e.isCancelled()) return;

    HumanEntity ent = e.getWhoClicked();
    if(!(ent instanceof Player)) return;

    Player player = (Player)ent;
    Inventory inv = e.getInventory();
    if(!(inv instanceof AnvilInventory)) return;

    EpicPlayer epicPlayer = EpicSystem.getEpicPlayer(player.getUniqueId());
    List<EpicQuestTask> taskList = epicPlayer.getTasksByType(TaskTypes.REPAIR_ITEM);

    for(EpicQuestTask task : taskList){

        AnvilInventory anvil = (AnvilInventory)inv;
        InventoryView view = e.getView();
        int rawSlot = e.getRawSlot();

        if(rawSlot == view.convertSlot(rawSlot)){

            // 2 = result slot
            if(rawSlot != 2) return;

            ItemStack[] items = anvil.getContents();
            ItemStack item1 = items[0];
            ItemStack item3 = e.getCurrentItem();
            //if(item1 == null || item2 == null || item3 == null) return;

            Material id1 = item1.getType();
            Material id3 = item3.getType();

            if(id1 != id3) return;

            //See if correct item is repaired
            if(id3 == Material.matchMaterial(task.getTaskID())){

                ItemMeta meta = item3.getItemMeta();
                if(meta == null) return;

                if(meta instanceof Repairable){
                    Repairable repairable = (Repairable)meta;
                    int repairCost = repairable.getRepairCost();

                    if(player.getLevel() >= repairCost){
                        task.ProgressTask(1, epicPlayer, true);
                    }
                }
            }
        }
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号