AtomicGuiItem confirmUpgrade = new AtomicGuiItem(upgradeItemStack) { @Override public void onClick(InventoryClickEvent e) { if ( playerRunningTask.contains(p.getName())) { p.sendMessage("§cĐang trong quá trình cường hoá"); e.setCancelled(true); return; } if ( p.getEquipment().getItemInMainHand().getType().equals(Material.AIR)) { p.sendMessage("§cHãy cầm trang bị cần cường hoá trên tay"); e.setCancelled(true); return; } else if( !UpgradeItemAPI.isValidMaterial(p.getEquipment().getItemInMainHand())) { p.sendMessage("§cTrang bị trên tay bạn không thể cường hoá"); e.setCancelled(true); return; } else if ( !UpgradeItemAPI.hasAnyLoreStat(p.getEquipment().getItemInMainHand())) { p.sendMessage("§cTrang bị không có thuộc tính có thể cường hoá"); e.setCancelled(true); return; } playerRunningTask.add(e.getWhoClicked().getName()); BukkitTask task = new BukkitRunnable() { int slot = 0; @Override public void run() { // TUI MUỐN GỌI THẰNG confirmUpgrade ngay đây nè nhưng this nó trả về task ko hà UpgradeItemGui.this.setItem(pl.getConfig() .getIntegerList("UpgradeItemGui.PreProcess.Slots") .get(slot), Processing); p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 10, 1); slot++; // End of array, starting check slot if ( slot == 9) { this.cancel(); playerRunningTask.remove(p.getName()); updatePreProcess(); p.playSound(p.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 10, 1); p.getInventory().setItemInMainHand( UpgradeItemAPI.getItemUpgraded( p.getInventory().getItemInMainHand() , UpgradeItemAPI.getItemLevel( p.getInventory().getItemInMainHand())+1)); UpgradeItemGui.this.setItem(13, new AtomicGuiItem(p.getEquipment().getItemInMainHand() ) { @Override public void onClick(InventoryClickEvent e) { e.setCancelled(true); } }); } } }.runTaskTimer(pl, 0, 4); UpgradeItemGui.this.setItem(49, updateChanceButton(this,p,1)); e.setCancelled(true); } };