PrepareItemCraftEvent重复项

时间:2018-04-16 13:47:32

标签: java bukkit

在PrepareItemCraftEvent中存在错误,即它是关于重复项目的。创建对象时,项目数暂时跳转到8或16或64。

我的代码:

if (e.getInventory().getResult() !=null) {
    if (e.getInventory().getResult().getType().equals(its.getType())) {
        if (e.getInventory().getItem(1) != null) {
            if (e.getInventory().getItem(1).getAmount() >= a
                && e.getInventory().getItem(2).getAmount() >= b
                && e.getInventory().getItem(3).getAmount() >= c
                && e.getInventory().getItem(4).getAmount() >= d
                && e.getInventory().getItem(5).getAmount() >= ee
                && e.getInventory().getItem(6).getAmount() >= f
                && e.getInventory().getItem(7).getAmount() >= g
                && e.getInventory().getItem(8).getAmount() >= h
                && e.getInventory().getItem(9).getAmount() >= i) {
                    return;
            } else {
                    e.getInventory().setResult(new ItemStack(Material.AIR, 1));
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

@Harry

@Deprecated
@EventHandler
public void prepare(PrepareItemCraftEvent e) {
    for(String crafter : cfg.getConfig().getConfigurationSection("craftings").getKeys(false)) {
        ConfigurationSection s = cfg.getConfig().getConfigurationSection("craftings." + crafter);

        int a = s.getInt("items.iloscA");
        int b = s.getInt("items.iloscB");
        int c = s.getInt("items.iloscC");
        int d = s.getInt("items.iloscD");
        int ee = s.getInt("items.iloscE");
        int f = s.getInt("items.iloscF");
        int g = s.getInt("items.iloscG");
        int h = s.getInt("items.iloscH");
        int i = s.getInt("items.iloscI");

        ItemStack its = new ItemStack(Material.getMaterial(s.getInt("item")), 1, (byte) s.getInt("data"));

        if(e.getInventory().getResult() !=null) {
            if(e.getInventory().getResult().getType().equals(its.getType())) {
                if(e.getInventory().getItem(1) != null) {
                    if(e.getInventory().getItem(1).getAmount() >= a
                            && e.getInventory().getItem(2).getAmount() >= b
                            && e.getInventory().getItem(3).getAmount() >= c
                            && e.getInventory().getItem(4).getAmount() >= d
                            && e.getInventory().getItem(5).getAmount() >= ee
                            && e.getInventory().getItem(6).getAmount() >= f
                            && e.getInventory().getItem(7).getAmount() >= g
                            && e.getInventory().getItem(8).getAmount() >= h
                            && e.getInventory().getItem(9).getAmount() >= i) {
                        return;
                    }
                    else {
                        e.getInventory().setResult(new ItemStack(Material.AIR, 1));
                    }
                }
            }
        }
    }
}