EnchantingTableHandler.java 文件源码

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

项目:ProtocolSupportLegacySupport 作者:
@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void onInvOpen(InventoryClickEvent event) {
    Bukkit.getScheduler().scheduleSyncDelayedTask(ProtocolSupportLegacySupport.getInstance(), () -> {
        Inventory topinv = event.getWhoClicked().getOpenInventory().getTopInventory();
        if (!(topinv instanceof EnchantingInventory)) {
            return;
        }
        EnchantingInventory enchinv = (EnchantingInventory) topinv;
        Player player = (Player) event.getWhoClicked();
        int lapisEnchAmount = enchinv.getSecondary() != null ? enchinv.getSecondary().getAmount() : 0;
        ItemStack[] contents = player.getInventory().getStorageContents();
        for (int i = 0; i < contents.length; i++) {
            ItemStack itemstack = contents[i];
            if (lapis.isSimilar(itemstack)) {
                int lapisPlayerAmount = Math.min(itemstack.getAmount(), Material.INK_SACK.getMaxStackSize() - lapisEnchAmount);
                itemstack.setAmount(itemstack.getAmount() - lapisPlayerAmount);
                if (itemstack.getAmount() == 0) {
                    contents[i] = null;
                }
                lapisEnchAmount += lapisPlayerAmount;
                if (lapisEnchAmount == Material.INK_SACK.getMaxStackSize()) {
                    break;
                }
            }
        }
        player.getInventory().setStorageContents(contents);
        if (lapisEnchAmount != 0) {
            enchinv.setSecondary(new Dye(DyeColor.BLUE).toItemStack(lapisEnchAmount));
        }
        player.updateInventory();
    });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号