在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));
}
}
}
}
答案 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));
}
}
}
}
}
}