Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 260|回复: 10

[编程求助] 如何无限创建配置文件

[复制链接]
Six_1 当前离线
积分
1158
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-11-29
查看详细资料
发表于 2020-11-24 23:29:01 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
image.png
image.png
如何做到这种无限创建
image.png
可以一直创建下去的
image.png
Six_1 当前离线
积分
1158
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-11-29
查看详细资料
 楼主| 发表于 2020-11-24 23:29:27 | 显示全部楼层
求大佬啊                  
回复

使用道具 举报

QiuJay 当前离线
积分
270
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-3-17
查看详细资料
发表于 2020-11-24 23:55:17 | 显示全部楼层
个人不推荐这种加法,你可以为每个创建一个配置文件,这样读写都快,比如 z1,就创建z1.yml,z2 就创建 z2.yml
回复

使用道具 举报

Six_1 当前离线
积分
1158
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-11-29
查看详细资料
 楼主| 发表于 2020-11-25 00:13:51 | 显示全部楼层
QiuJay 发表于 2020-11-24 23:55
个人不推荐这种加法,你可以为每个创建一个配置文件,这样读写都快,比如 z1,就创建z1.yml,z2 就创建 z2. ...

可是。。我只是想将配置文件无限创建下去
回复

使用道具 举报

1346889484 当前离线
积分
5786
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-7-22
查看详细资料
发表于 2020-11-25 04:47:53 | 显示全部楼层
回复

使用道具 举报

1346889484 当前离线
积分
5786
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-7-22
查看详细资料
发表于 2020-11-25 04:50:49 | 显示全部楼层

原理大致相同
int size;
for(int i = 0;i < size;++i){
    文件.set(i, 内容)
}
回复

使用道具 举报

阴阳师元素祭祀 当前离线
积分
25468
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-12-14
查看详细资料
发表于 2020-11-25 08:49:00 | 显示全部楼层
本帖最后由 阴阳师元素祭祀 于 2020-11-25 09:23 编辑

你想要的可能是getStringList()

配置文件这样写
z1:
- "command1"
- "command2"


隔壁示例和代码

listKey:
- "Hello World"
- "Hello Rust"
- "Rust さいこう"
不知道哪里吞我空格 '-'左边有一格空格

ConfigurationNode node = YAMLConfigurationLoader.builder().setPath(Paths.get("test.conf")).build().load();
System.out.println(node.getList(TypeTokens.STRING_TOKEN));

输出:
[{listKey=[Hello World, Hello Rust, Rust さいこう]}]



建议换idea  另外方法大写开头野蛮(?)
↓感谢说明 这就()

评分

参与人数 1金粒 +5 收起 理由
xmdhs + 5 不大写没法导出(指 Go

查看全部评分

回复

使用道具 举报

Six_1 当前离线
积分
1158
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-11-29
查看详细资料
 楼主| 发表于 2020-11-25 19:14:11 | 显示全部楼层
阴阳师元素祭祀 发表于 2020-11-25 08:49
你想要的可能是getStringList()

配置文件这样写

并不是getStringList()
这个是这样
zl1:
   1:/pll(判断玩家是否执行这条指令)
   2:kill(如果玩家执行指令,就会执行这一条指令)
回复

使用道具 举报

阴阳师元素祭祀 当前离线
积分
25468
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2013-12-14
查看详细资料
发表于 2020-11-25 19:18:14 | 显示全部楼层
Six_1 发表于 2020-11-25 19:14
并不是getStringList()
这个是这样
zl1:

前面的1 2是干嘛的?

到底是怎么样的无限?
list不行么
回复

使用道具 举报

a8105 当前离线
积分
15712
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2012-2-19
查看详细资料
发表于 2020-11-26 04:32:56 | 显示全部楼层
简单的说就是zl1为需要判断玩家执行的指令是不是这个zl1的内容
zl2就是如果判断zl1成功则执行zl2的内容?
例如:
config.yml的内容为:

  1. #指令列表
  2. Commands:
  3.   #名称,随便,不得重复
  4.   a:
  5.     key: '/command'
  6.     dispatch: '/say 哈哈哈哈'
  7.   b:
  8.     key: '/command2'
  9.     dispatch: '/say 哈哈哈哈哈哈哈'
复制代码

然后判断是a里的key还是b的key:

指令触发事件方法里的代码:

  1. ConfigurationSection section=getConfig().getConfigurationSection("Commands");//获得配置文件内Commands下的内容
  2. for(String a:section.getKeys(false))  //获得并遍历Commands下的子目录,不包含子目录的子目录,因此内容应该是a,b
  3. {
  4.     ConfigurationSection commandSection=section.getConfigurationSection(a);  //从Commands下的内容里   遍历a或者b  获得    a或者b里的内容
  5.     String key=commandSection.getString("key");  //这个时候你就成功的获得了a或者b的key了
  6.     if(key.equalsIgnoreCase(event.getMessage()){
  7.         //然后就跟你的代码没什么区别了
  8.     }

  9. }

复制代码

评分

参与人数 1人气 +2 金粒 +30 收起 理由
Six_1 + 2 + 30 神乎其技!6的飞起!

查看全部评分

回复

使用道具 举报

Six_1 当前离线
积分
1158
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2018-11-29
查看详细资料
 楼主| 发表于 2020-11-26 23:52:56 | 显示全部楼层
a8105 发表于 2020-11-26 04:32
简单的说就是zl1为需要判断玩家执行的指令是不是这个zl1的内容
zl2就是如果判断zl1成功则执行zl2的内容?
例 ...

卧槽,谢谢大佬
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2021-1-27 08:51 , Processed in 0.059728 second(s), Total 25, Slave 22 queries, Release: Build.2021.01.15 1436, Gzip On, Redis On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表