我需要写一张支票。它的本质是:应该返回true或false,如果玩家在配置的库存中有一个东西(并且只有他),如果不是,则返回true,然后返回false。
答案 0 :(得分:0)
所以这是解决问题的方法:
@SuppressWarnings("deprecation")
public boolean hasInInv(Player p) {
List<String> list = getConfig().getStringList("List");
for(ItemStack i : p.getInventory().getContents()) {
if(i != null) {
boolean found = false;
for(String st : list) {
if(st.startsWith("" + i.getTypeId())) {
if(st.startsWith(i.getTypeId() + ":")) {
try {
byte data = Byte.parseByte(st.replaceFirst(i.getTypeId() + ":", ""));
if(data != i.getDurability()) {
continue;
} else {
found = true;
break;
}
} catch(Exception ex) {
System.out.println("Error in Config: " + st + " is not a valid Item");
return false;
}
}
found = true;
break;
}
}
if(!found) {
return false;
}
}
}
return true;
}
配置应该显示如下:
List:
- 1
- 2
- 3
- 4
- '17:3'
- '17:1'