gpt4 book ai didi

java - 移动配置部分

转载 作者:行者123 更新时间:2023-11-30 10:32:55 24 4
gpt4 key购买 nike

我为游戏竞技场及其坐标/名称等创建了一个存储系统,并从 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:

最佳答案

如果实际上条目编号之间没有间隔(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:

关于java - 移动配置部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42469434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com