ItemExchangeListener.java 文件源码

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

项目:ItemExchange 作者:
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onInventoryClick(InventoryClickEvent event) {
    final Inventory top = event.getView().getTopInventory();

    if(top instanceof CraftingInventory && event.getWhoClicked() instanceof Player) {
        final Player player = (Player) event.getWhoClicked();

        Bukkit.getScheduler().scheduleSyncDelayedTask(ItemExchangePlugin.instance, new Runnable() {
            @SuppressWarnings("deprecation")
            public void run() {
                CraftingInventory inv = (CraftingInventory) top;

                List<ExchangeRule> exchangeRules = new ArrayList<ExchangeRule>();

                for(ItemStack item : inv.getMatrix()) {
                    if(item != null && item.getType() != Material.AIR) {
                        try {
                            exchangeRules.add(ExchangeRule.parseRuleBlock(item));
                        }
                        catch(ExchangeRuleParseException e) {
                            try {
                                exchangeRules.addAll(Arrays.asList(ExchangeRule.parseBulkRuleBlock(item)));
                            }
                            catch(ExchangeRuleParseException e2) {
                                return;
                            }
                        }
                    }
                }

                if(exchangeRules.size() > 0) {
                    inv.setResult(ExchangeRule.toBulkItemStack(exchangeRules));

                    player.updateInventory();
                }
            }
        });
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号