本帖最后由 黑心老昔年 于 2022-2-4 18:17 编辑
如图
我该怎么使用if (plugin.getConfig().getBoolean(path: ());来读取Task:taskname:swich呢,比如switch后填true就可以执行该循环
还有个问题
bukkit怎么执行config.yml中填写的指令啊,比如我这里的Task:taskname:command下的指令,我该如何让他被执行呢
如图
我该怎么使用if (plugin.getConfig().getBoolean(path: ());来读取Task:taskname:swich呢,比如switch后填true就可以执行该循环
还有个问题
bukkit怎么执行config.yml中填写的指令啊,比如我这里的Task:taskname:command下的指令,我该如何让他被执行呢
用plugin.getConfig().getBoolean("Task.taskname.swich")就能获取到Task:taskname:swich了
用plugin.getConfig().getStringList("Task.taskname.command")获取到你的指令然后遍历它
用Bukkit.dispatchCommand(CommandSender sender, String commandLine)即可执行指令
用plugin.getConfig().getStringList("Task.taskname.command")获取到你的指令然后遍历它
用Bukkit.dispatchCommand(CommandSender sender, String commandLine)即可执行指令
1. path参数填Task.taskname.switch
顺带一提,我看你这个Task下应该有多个相同结构的子项,可以试试使用getKeys()和getConfigurationSection() 遍历读取[ConfigurationSection]
2. 使用DispatchCommand
顺带一提,我看你这个Task下应该有多个相同结构的子项,可以试试使用getKeys()和getConfigurationSection() 遍历读取[ConfigurationSection]
2. 使用DispatchCommand
本帖最后由 黑心老昔年 于 2022-2-1 14:24 编辑
可以举个例子嘛,这英文文档有些看不懂
,就是getConfigurationSection,可以举一个实例吗,谢谢了
yhzyhz 发表于 2022-2-1 14:07
1. path参数填Task.taskname.switch
顺带一提,我看你这个Task下应该有多个相同结构的子项,可以试试使用ge ...
本帖最后由 yhzyhz 于 2022-2-1 14:31 编辑
比如说你这个配置文件,假如Task那块是这样的结构
复制代码
那么你如果想使用遍历的话,就需要这样复制代码
黑心老昔年 发表于 2022-2-1 14:17
可以举个例子嘛,这英文文档有些看不懂
比如说你这个配置文件,假如Task那块是这样的结构
- Task:
- task1:
- switch: true
- delay: 10
- command:
- - 'say task1'
- task2:
- switch: true
- delay: 5
- command:
- - 'say task2'
那么你如果想使用遍历的话,就需要这样
- //获取Task这个配置文件块
- ConfigurationSection taskSection = plugin.getConfig().getConfigurationSection("Task");
- //获取Task配置块里的子块名
- for(String key : taskSection.getKeys(false)) {
- //如果只取switch的话,可以直接拼接路径读取配置
- boolean keyswitch = taskSection.getBoolean(key+".switch");
- //如果还想取其他内容,建议使用ConfigurationSection方便存取
- ConfigurationSection singletask = taskSection.getConfigurationSection(key);
- keyswitch = singletask.getBoolean("switch");
- int delay = singletask.getInt("delay");
- List<String> cmdList = singletask.getStringList("command");
- //遍历command里的所有指令并执行
- for (String cmd : cmdList) {
- //如果想要服务器执行
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), cmd);
- //如果想指定某玩家执行,获取玩家在放进去
- Bukkit.dispatchCommand(Bukkit.getPlayer("playername"),cmd);
- }
- }
yhzyhz 发表于 2022-2-1 14:27
比如说你这个配置文件,假如Task那块是这样的结构
那么你如果想使用遍历的话,就需要这样
getConfigurationSection的用法真的是<blockquote>嘛,怎么看起来怪怪的
黑心老昔年 发表于 2022-2-1 14:32
getConfigurationSection的用法真的是嘛,怎么看起来怪怪的
排版的时候好像乱了 更新了
yhzyhz 发表于 2022-2-1 14:32
排版的时候好像乱了 更新了
好的谢谢