如何从config.yml加载id列表?

时间:2015-06-21 15:46:57

标签: java plugins yaml minecraft bukkit

我需要写一张支票。它的本质是:应该返回true或false,如果玩家在配置的库存中有一个东西(并且只有他),如果不是,则返回true,然后返回false。

1 个答案:

答案 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'