如何从 config.yml 加载 id 列表?
How to load id list from config.yml?
我需要写一张支票。它的本质是:应该 return true 或 false,如果玩家在配置的清单中有一个东西(只有他),则为 true 如果没有,则 return false。
所以这是您问题的解决方案:
@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'
我需要写一张支票。它的本质是:应该 return true 或 false,如果玩家在配置的清单中有一个东西(只有他),则为 true 如果没有,则 return false。
所以这是您问题的解决方案:
@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'