我为游戏竞技场和他们的球队/名字等制作了一个存储系统,我把它们从1编号到n。现在我必须删除其中一个0 < i <= n配置示例,如下所示:
'3':
Arena:
Name: AirConflict
Teams: 2
PlayersPerTeam: 4
World: AirConflict
Spec:
World: AirConflict
X: 100
...让我们说“2”已被删除。所以现在我必须把更多的舞台移到第一位。'3‘必须是'2’。
我储存了大量的竞技场。以下是我到目前为止所拥有的:
int ac = Integer.parseInt(args[1]);
arena.set(ac + "", null);
int arenas = arena.getInt("Arenacounts");
arena.set("Arenacounts", (arenas -1));
for (int i = ac+1; i <= arenas; i ++) {
//TODO move all the arenas
}现在我怎么能轻松地移动所有其他入口而不是重写它们呢?arena是以这种方式存储的配置文件:
public File file = new File("plugins/Arenas", "arena.yml");
public FileConfiguration arena = YamlConfiguration.loadConfiguration(file);编辑
既然没有人知道我真正想要什么或我拥有什么,我会在这里向你展示:
我有一个配置:
Arenacount: 3
'1':
Whatever_1:
'2':
Whatever_2:
'3':
Whatever_3:现在,我想删除第二个条目,然后文件应该如下所示:
Arenacount: 2
'1':
Whatever_1:
'2':
Whatever_3:发布于 2017-02-26 14:08:47
如果实际输入号之间没有间隔(1、2、3、4等),则应该更改配置文件的设计:从其中删除编号。
加载配置文件时,可以根据列表中条目的出现顺序推断条目的数量。
这样,当您删除一个条目并希望将信息存储到配置文件中时,只需删除该条目即可。
用您的示例编辑:
而不是使用此配置文件:
Arenacount: 3
'1':
Whatever_1:
'2':
Whatever_2:
'3':
Whatever_3:使用此配置文件:
Arenacount: 3
Whatever_1:
Whatever_2:
Whatever_3:因此,在删除第二个元素之后,您应该拥有:
Arenacount: 3
Whatever_1:
Whatever_3:发布于 2017-03-08 15:05:33
别给他们分配号码。
Arenacount:
ArenaName1:
ArenaName2:https://stackoverflow.com/questions/42469434
复制相似问题