四、配置文件
这一章节,我们会讲完最后一个配置文件:config.yml
config.yml
如果你的插件没有这个文件,那么很遗憾,Bukkit将不会为你的插件创建任何文件夹。
如果你有,那么Bukkit将会创建一个文件夹,并将配置文件复制到这个文件夹上。
那么这个配置文件该怎么用呢?
实际上,这个配置文件就是一个简易的Map,你也可以理解为json。
首先先创建一个文件:config.yml。
你可以随意的写一些内容,但是要注意yml格式。
比如现在我写一个人的姓名和年龄:
info:
name: James
age: 18
对于info、name、age,这些统统都是key,也就是项,有些教程翻译的不太好,如键、子键等,我就没见过,你翻译成钥匙罢了。
而对于James、18这些统统称为value,也就是值。
对于一个项,它的值可以是一个或多个项。值的底下又有许多值……
你也可以把config.yml当成一个简易的数据库。
这玩意能存储数据!?
当然可以,不过一般我们不存储数据而是获取数据。
像一款插件很火,有些其他国家的人也在用这款插件,那么这个时候其他国家的人看不懂插件写给玩家的消息(外国人看不懂中国字)会怎么办?
要翻译!要汉化!但是翻译不了,因为内容是固定死的,你改不了,也就不能翻译。除非自己写一个插件,但那是不可能的。
所以这个时候config.yml便开始大力出奇迹了!
因为一个文件很容易被修改,所以只需在配置文件中写入一些内容(比如提示玩家的一些消息),在写插件时可以直接拿来用。
那么这个时候其他国家的人可以将配置文件里的内容复制翻译,将原来的消息替换成翻译后的消息,这就完成了一次翻译。
呵,有点像i18n的做法,很像国际化。
众所周知,插件最终服务于服主(被玩家们戏称腐竹)。
腐竹们有时可能不小心,或者动了一点坏心思,将插件存储的数据偷偷的修改了(比如某某玩家的密码等什么)。这时候玩家就会乐坏了。
所以,一般用数据库存储数据,后期会讲数据库的。
那我们现在想要获得配置文件中的姓名和年龄,怎么办?使用getconfig方法
getconfig()用法
int a = getConfig().getint("路径");
getConfig()底下有许多的方法,比如getString、getInt、getChar等等
在你调用这个方法过后,Bukkit会先找config.yml,然后提取里面的数据
(具体怎么提取就不说了,建议看看这篇文章:解析yml文件)
这年头还有人手撕yaml,自己到网上找个可以解析Yaml的库去!
如果你想要获取的数据类型是String,那么你就调用getString
如果你想要获取的数据类型是Int,那么你就调用getInt
或者,你可以直接使用get方法,结果返回的是Object。
例:我想要获取文件中的姓名(name)。

String name = getConfig().getString("info.name");
修改配置文件
当我们想要修改配置文件里的数据时,可以用set方法
set
这里我先提醒一下,set()方法是getConfig类里的一个方法
例:我想要修改name数据,变成小明

getConfig().set("数据路径","小明");
其中第一个参数是你想要修改的数据的路径,第二个参数是你想把这个数据修改成什么
打包运行,再次查看配置文件,会发现变成小明了
上一篇:我的世界Bukkit服务器插件开发教程(三)容器和物品堆
下一篇:我的世界Bukkit服务器插件开发教程(五)方块Blocks

本文详细介绍了Bukkit服务器插件开发中config.yml配置文件的使用方法,包括如何读取和修改配置文件中的数据,以及其在插件国际化和数据存储方面的作用。
2768

被折叠的 条评论
为什么被折叠?



