tiger999
本帖最后由 tiger999 于 2016-8-15 12:40 编辑

上节课,我们做了一个插件,我们今天学习如何做配置文件,话说,我上次忘记给大家布置作业了。。。别打我


5.配置文件
知道服务器的人都知道配置文件吧,就是Config,今天我来教大家如何创建首先创建一个空的插件(详细)
然后和创建plugin.yml一样的方式弄一个config.yml
OK,我们开始写代码了,首先我们先认识Enable和Disable,enable就是在启动时执行的东西,disable就是卸载插件的时候执行的东西
用法是:
public void onEnable() {
//启动时执行XXX
}

public void onDisable() {
//卸载是执行XXX
}
注意,这2个是放在命令执行器的上面
一般加载配置是这样的(注意,加载不是读取)


所以,比较常用的话是和onEnable进行搭配


OK,我们加载了是加载了,可是又不能读取又不能写入,怎么办呢?
别急,别急,我们先了解一下config.yml里面的东西是什么
比如说config.yml里面是
a:123
b:123456
c:123456789
那么要读取123就得到路径a
要读取123456就得到路径b
要读取123456789就得到路径c


读写配置最基本的方法




这次不忘记布置作业了——
当玩家输入/tiger msg的时候,读取路径为a的String,并发送给那个玩家


我才几级啊你们看懂了的有金币有人气的都撒起来吧! 没看懂的跟帖问完之后继续金币人气撒起来吧!


回到索引贴


2021.12 数据,可能有更多内容上节课,我们做了一个插件,我们今天学习如何做配置文件,话说,我上次忘记给大家布置作业了。。。别打我


5.配置文件
知道服务器的人都知道配置文件吧,就是Config,今天我来教大家如何创建首先创建一个空的插件(详细)
然后和创建plugin.yml一样的方式弄一个config.yml
OK,我们开始写代码了,首先我们先认识Enable和Disable,enable就是在启动时执行的东西,disable就是卸载插件的时候执行的东西
用法是:
public void onEnable() {
//启动时执行XXX
}

public void onDisable() {
//卸载是执行XXX
}
注意,这2个是放在命令执行器的上面
一般加载配置是这样的(注意,加载不是读取)


   if(!getDataFolder().exists()) {
  getDataFolder().mkdir();
   }
   File file=new File(getDataFolder(),"config.yml");
   if (!(file.exists())) {saveDefaultConfig();}
   reloadConfig();


所以,比较常用的话是和onEnable进行搭配


  public void onEnable() {
   if(!getDataFolder().exists()) {
  getDataFolder().mkdir();
   }
   File file=new File(getDataFolder(),"config.yml");
   if (!(file.exists())) {saveDefaultConfig();}
   reloadConfig();
   getLogger().info("启用完毕!");
    }
这里就是首先先创建一个工作文件夹,然后再创建默认的配置(就是,你创建的那个config.yml,因为你刚刚弄出来的Jar里面是没有config.yml的,所以得saveDefaultConfig();才是保存默认)
还有一个就是,这里的getLogger().info("启动完毕!");就是在后台发信息


OK,我们加载了是加载了,可是又不能读取又不能写入,怎么办呢?
别急,别急,我们先了解一下config.yml里面的东西是什么
比如说config.yml里面是
a:123
b:123456
c:123456789
那么要读取123就得到路径a
要读取123456就得到路径b
要读取123456789就得到路径c


读写配置最基本的方法



getConfig().get变量类型("路径");
比如说我要读取路径a里面的东西,是一个int类型的,那么就是
getConfig().getInt("a");
假如我要读取路径b里面的东西,是一个String类型的,那么就是
getConfig().getString("b");
当然,有些人就迷惑了,我怎么把这个东西放到变量里面?
很简单,比如说
String a=getConfig().getString("c");
这样子



getConfig().set(路径, 内容) 内容可以为String int List什么的自定义配置文件照葫芦画瓢吧!set为null表示删除此节点以及他的所有子节点记得要保存 保存方法:File file=new File(getDataFolder(),"config.yml");try{getConfig().save(file);}
    catch
    (IOException e){e.printStackTrace();}
要捕捉异常,因为有可能保存不成功当然也有一个直接保存默认config的方法:savaConfig();


这次不忘记布置作业了——
当玩家输入/tiger msg的时候,读取路径为a的String,并发送给那个玩家


我才几级啊你们看懂了的有金币有人气的都撒起来吧! 没看懂的跟帖问完之后继续金币人气撒起来吧!


回到索引贴


CMD丶BLOCK_
本帖最后由 CMD丶BLOCK_ 于 2016-1-10 11:39 编辑

楼主,你的教程写的很好,通俗易懂,我最近想开发一个插件,能加个qq好友么,我qq:1056293351,等级没法给人气,抱歉哈~

tiger999
CMD丶BLOCK_ 发表于 2016-1-10 11:29
楼主,你的教程写的很好,通俗易懂,我最近想开发一个插件,能加个qq好友么,我qq:1056293351,等级没法给 ...

谢谢支持!好的,我的qq名是tiger,号是2624183401,你同意就行了

seesaw_233
你这个和Day有什么区别

tiger999
seesaw_233 发表于 2016-1-18 17:17
你这个和Day有什么区别

区别很大啊!当然,知识就是那么多,讲的方法和深度的区别

494308843
{:10_522:}
你只讲了 例如读取 a:
b:
c:
你没讲这么读取类似
a:
-
-
-
还有物品
还有路径的格式。。。
完全。。。不懂

tiger999
494308843 发表于 2016-1-25 22:12
你只讲了 例如读取 a:
b:
c:

。。。。假如不懂可以加qq2624183401

494308843
tiger999 发表于 2016-1-26 13:03
。。。。假如不懂可以加qq2624183401

{:10_494:}我选择撞死

1441151179
输出节点和读取节点的教程能不能写出来啊=。=,还有路径冒号后面好像还要空一个格才能写数值。

lyyxy
tiger999 发表于 2016-1-18 22:22
区别很大啊!当然,知识就是那么多,讲的方法和深度的区别

至少你后面抄的day的    连错的地方都一样   直接保存默认config的方法是saveConfig();
day的帖子:http://www.mcbbs.net/forum.php?m ... p;extra=#pid8113285
而day的帖子是2015-5-2 19:49:51发布的 你的是2015-12-20 23:02:10发布的
明显的抄袭

下一页 最后一页