2017-05-07 31 views
0

我有问题迭代槽YAML文件, config.yml循环槽YAML数据:如何从循环

motd: 
    1: | 
    &6MG&1Hub &fWHITELIST &3free 
    Factions: 
    2: | 
    &6MG&1Hub &fWHITELIST &3free 
    Bingo: 
    3: | 
    &6MG&1Hub &fWHITELIST &3free 
    Vaaraiant: 
    4: | 
    &6MG&1Hub &fWHITELIST &3free 
    Test: 
    5: | 
    &6MG&1Hub &fWHITELIST &3free 
    PvP: 

我可以用

this.getConfig().get("motd.1").toString(); 

阅读所有的人,但有一个问题,我不能访问多个。 我知道我可以做类似

this.getConfig().get("motd."+i).toString(); 

但问题是,如果我要求像

this.getConfig().get("motd.6").toString(); 

程序/插件会崩溃。

请记住,编辑YAML的人可能会有尽可能多的'motds'。

+0

在[so]上,通常会粘贴文件内容,选择所有文件内容,然后点击编辑栏中的[{}'(或按Ctrl + K)。 – Anthon

回答

0

如何

this.getConfig().getConfigurationSection("motd").getValues(false) 

Bukkit documentation

要获得的HashMap,一个的ConfigurationSection必须首先被检索。 您可以使用getConfigurationSection方法返回配置。 getValues方法将返回 ConfigurationSection中的值作为映射,它将采用一个布尔值来控制如果 嵌套的映射将在映射中返回。您可以通过调用返回的 ConfigurationSection上的getValues(false)来获取 原始映射。由于Java处理泛型的方式, 类型信息将会丢失,因此需要执行强制转换 来设置原始类型信息。 API不保证你执行的演员是安全的。

然后,您可以根据需要遍历HashMap

+0

谢谢你与我分享这一切...正当我想到我疯了:D谢谢! –