java - Bukkit/Spigotplugin - 从配置中删除条目

标签 java plugins config bukkit

我正在开发一个 Bukkit/Spigotplugin,它允许用户投票。 该插件使用一个配置。我想删除一个条目,但它不起作用。 我在 Google 上找到的内容:

getConfig().set("your.value", null);

我实现了什么:

int i = id;
while(getConfig().contains("ThingsYouCanVoteFor." + (i + 1)))
{
    getConfig().set("ThingsYouCanVoteFor." + Integer.toString(i) + ".name", getConfig().getString("ThingsYouCanVoteFor." + Integer.toString(i + 1) + ".name"));
    getConfig().set("ThingsYouCanVoteFor." + Integer.toString(i) + ".votes", getConfig().getInt("ThingsYouCanVoteFor." + Integer.toString(i + 1) + ".votes"));
    i++;
}
getConfig().set("ThingsYouCanVoteFor." + Integer.toString(i + 1), null);
saveConfig();
sender.sendMessage("§aRemoved ID " + id);

配置的外观:

ThingsYouCanVoteFor:
  0:
    name: Build a bridge
    votes: 0
  1:
    name: Kill the owner
    votes: 2
  2:
    name: Vote for something other
    votes: 1
  3:
    name: Remove all banned peoples inventory
    votes: 0
  4:
    name: Teleport to others home
    votes: 0
  5:
    name: Dig a hole in the air
    votes: 0
  6:
    name: Shutdown the internet
    votes: 0
PeopleWhoVoted:
- Gamingwelle
- BDevGWAdmin
- Sllikson
OpenForVoting: false

当我使用“/voteadmin remove 3”时它应该是什么样子:

ThingsYouCanVoteFor:
  0:
    name: Build a bridge
    votes: 0
  1:
    name: Kill the owner
    votes: 2
  2:
    name: Vote for something other
    votes: 1
  3:
    name: Teleport to others home
    votes: 0
  4:
    name: Dig a hole in the air
    votes: 0
  5:
    name: Shutdown the internet
    votes: 0
PeopleWhoVoted:
- Gamingwelle
- BDevGWAdmin
- Sllikson
OpenForVoting: false

它的外观:

ThingsYouCanVoteFor:
  0:
    name: Build a bridge
    votes: 0
  1:
    name: Kill the owner
    votes: 2
  2:
    name: Vote for something other
    votes: 1
  3:
    name: Teleport to others home
    votes: 0
  4:
    name: Dig a hole in the air
    votes: 0
  5:
    name: Shutdown the internet
    votes: 0
  6:
    name: Shutdown the internet
    votes: 0
PeopleWhoVoted:
- Gamingwelle
- BDevGWAdmin
- Sllikson
OpenForVoting: false

使用

getConfig().getConfigurationSection("ThingsYouCanVoteFor").getKeys(false).remove(i + 1)

也不起作用。

我做错了什么?

最佳答案

您可以使用以下方法简单地删除路径中的值:

config.set(pathToRemove, null);

关于java - Bukkit/Spigotplugin - 从配置中删除条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52135157/

相关文章:

c++ - 查找指向对象的静态指针?

.net - 如何在 FlashDevelop 中添加对新语言的支持?

C++ 全局配置类或所有应用程序可见的源代码?

java - 如何使用 OpenIMAJ 执行视频分析而不实际显示视频

java - 我可以在实现我的接口(interface)的类中做一些注释吗?

java - 从应用程序外部测试应用程序服务的最佳方法

java - 如何在 tycho 中引用 mockito?

Vim - 如何使您自己的映射可重复?第2部分

python - 使用python的带有字典的配置文件

clojure - 我应该在哪里保存简单的配置设置?