首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动ConfigurationSection

移动ConfigurationSection
EN

Stack Overflow用户
提问于 2017-02-26 14:00:49
回答 2查看 53关注 0票数 2

我为游戏竞技场和他们的球队/名字等制作了一个存储系统,我把它们从1编号到n。现在我必须删除其中一个0 < i <= n配置示例,如下所示:

代码语言:javascript
复制
'3':
  Arena:
    Name: AirConflict
    Teams: 2
    PlayersPerTeam: 4
    World: AirConflict
    Spec:
      World: AirConflict
      X: 100
      ...

让我们说“2”已被删除。所以现在我必须把更多的舞台移到第一位。'3‘必须是'2’。

我储存了大量的竞技场。以下是我到目前为止所拥有的:

代码语言:javascript
复制
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是以这种方式存储的配置文件:

代码语言:javascript
复制
public File file = new File("plugins/Arenas", "arena.yml");
public FileConfiguration arena = YamlConfiguration.loadConfiguration(file);

编辑

既然没有人知道我真正想要什么或我拥有什么,我会在这里向你展示:

我有一个配置:

代码语言:javascript
复制
Arenacount: 3
'1':
    Whatever_1:
'2':
    Whatever_2:
'3':
    Whatever_3:

现在,我想删除第二个条目,然后文件应该如下所示:

代码语言:javascript
复制
Arenacount: 2
'1':
    Whatever_1:
'2':
    Whatever_3:
EN

回答 2

Stack Overflow用户

发布于 2017-02-26 14:08:47

如果实际输入号之间没有间隔(1、2、3、4等),则应该更改配置文件的设计:从其中删除编号。

加载配置文件时,可以根据列表中条目的出现顺序推断条目的数量。

这样,当您删除一个条目并希望将信息存储到配置文件中时,只需删除该条目即可。

用您的示例编辑:

而不是使用此配置文件:

代码语言:javascript
复制
Arenacount: 3
'1':
    Whatever_1:
'2':
    Whatever_2:
'3':
    Whatever_3:

使用此配置文件:

代码语言:javascript
复制
Arenacount: 3
    Whatever_1:
    Whatever_2:
    Whatever_3:

因此,在删除第二个元素之后,您应该拥有:

代码语言:javascript
复制
Arenacount: 3
    Whatever_1:       
    Whatever_3:
票数 1
EN

Stack Overflow用户

发布于 2017-03-08 15:05:33

别给他们分配号码。

代码语言:javascript
复制
Arenacount:
    ArenaName1:
    ArenaName2:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42469434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档