Java 如何从config.yml加载id列表?
我需要开一张支票。它的本质是:应该返回true或false,如果玩家在配置的清单中有一个东西是true,只有他有,如果没有,则返回false。所以这里是解决问题的方法:Java 如何从config.yml加载id列表?,java,plugins,yaml,minecraft,bukkit,Java,Plugins,Yaml,Minecraft,Bukkit,我需要开一张支票。它的本质是:应该返回true或false,如果玩家在配置的清单中有一个东西是true,只有他有,如果没有,则返回false。所以这里是解决问题的方法: @SuppressWarnings("deprecation") public boolean hasInInv(Player p) { List<String> list = getConfig().getStringList("List"); for(ItemStack i : p.getInve
@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;
}
您在配置文件中以何种格式存储项目?我们可以看到一些保存/加载内容的代码和一个示例配置文件吗?是的,但您需要对库存中的其他项目执行的操作可能重复,但被忽略,并且该检查仅对配置中的项目执行。如果玩家有其他项目!=然后返回false。谢谢!如何使用项目和数据id进行检查?示例:-17:1,-17:2 e.t.cIf这很有帮助,请在我的评论中使用提示,以便所有有此问题的其他人都能看到解决方案是什么。如何使用项目和数据id进行检查?示例:-17:1,-17:2 e.t.c??
List:
- 1
- 2
- 3
- 4
- '17:3'
- '17:1'