yaml = new Yaml();
String goods = args[0];
String goodsNum = args[1]; YamlConfiguration yc = new YamlConfiguration();
try {
yc.load(new File(System.getProperty("user.dir")+"/plugins/PbMainPlugin/configDef.yml"));
} catch (FileNotFoundException e1) { e1.printStackTrace();
} catch (IOException e1) { e1.printStackTrace();
} catch (InvalidConfigurationException e1) { e1.printStackTrace();
} Set set = yc.getConfigurationSection("drop").getKeys(false); lastDropNum = set.size(); //查看yml文件中是否有内容,没有内容返回0,否则返回内容长度 player.sendMessage("大小是:"+set.size()+"");
player.sendMessage("内容是:"+set+"");
YamlConfiguration yamlConfiguration = new YamlConfiguration();
if(lastDropNum==0) { //如果原来yml文件中没有内容 ConfigurationSection drop = yamlConfiguration.createSection("drop"); Map<String, Object> item = new HashMap();
item.put("item-Id", Material.valueOf(goods.trim()).getId());
item.put("item-Name", Material.valueOf(goods.trim()).name());
drop.createSection("1",item);
try { yamlConfiguration.save(System.getProperty("user.dir")+"/plugins/PbMainPlugin/configDef.yml");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } if(lastDropNum!=0) { //如果yml中有内容,则向yml文件中追加新的内容
yamlConfiguration = YamlConfiguration.loadConfiguration(new File(System.getProperty("user.dir")+"/plugins/PbMainPlugin/configDef.yml"));
ConfigurationSection drop = yamlConfiguration.getConfigurationSection("drop");
Map<String, Object> item = new HashMap();
item.put("item-Id", Material.valueOf(goods.trim()).getId());
item.put("item-Name", Material.valueOf(goods.trim()).name());
drop.set((lastDropNum+1)+"", item);
try {
yamlConfiguration.save(System.getProperty("user.dir")+"/plugins/PbMainPlugin/configDef.yml");
} catch (IOException e) { e.printStackTrace();
} } //向玩家背包中添加物品
PlayerInventory inventory = player.getInventory();
ItemStack itemStack = new ItemStack(Material.valueOf(goods.trim()),Integer.parseInt(goodsNum));
inventory.addItem(itemStack);
return true;

yml文件中的结构为:

Bukkit编程之动态向yml文件中添加属性的更多相关文章

  1. 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人

    明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...

  2. Spring boot中普通工具类不能使用@Value注入yml文件中的自定义参数的问题

    在写一个工具类的时候,因为要用到yml中的自定义参数,使用@Value发现值不能正常注入,都显示为null: yml文件中的自定义格式 调用工具类的时候不能new的方式 要使用@Autowired的方 ...

  3. Springboot读取自定义的yml文件中的List对象

    Yml文件(novellist.xml)如下: novellist:   list:     - name: 笑傲江湖       type: 武侠       master: 令狐冲       a ...

  4. springboot2.0application.在yml文件中添加自定义配置

    1. 在application.yml文件中添加自定义配置 app: platform: version: code: '1.0.0' 2. 定义bean类   具体格式: 其中的成员变量名称需要与配 ...

  5. linux向文件中添加数据,数据被追加到了上一行的行尾

    当我们在windows上新建了文件,并且要上传到linux上时,一定要在文件后加上空格,否则就会出现标题上讲的,数据被追加到了上一行的行尾,而不是新起一行,但是如果是在linux上新建的文件,则没有这 ...

  6. 如何在maven项目的pom.xml文件中添加jar包

    在使用maven进行项目开发时,我们需要在pom.xml文件中添加自己所需要的jar包.这就要求我们获取jar包的groupId和artifactId. 我们可以在一些maven仓库上搜索我们所需要的 ...

  7. VS2010在C#头文件中添加文件注释的方法

    步骤: 1.VS2010 中找到安装盘符(本人安装目录在D盘,所以以D盘为例)D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\I ...

  8. 向php文件中添加php.ini文件

    向php文件中添加php.ini文件 默认情况下,php是没有php.ini配置文件的,必须手工添加php.ini文件 在php安装目录中,复制php.ini文件到/usr/local/php/lib ...

  9. gitignore文件中添加新过滤文件,但是此文件已经提交,如何解决?

    gitignore文件中添加新过滤文件,但是此文件已经提交到远程库,如何解决? 第一步,为避免冲突需要先同步下远程仓库 git pull 第二步,在本地项目目录下删除缓存 git rm -r --ca ...

随机推荐

  1. vue中的provide/inject的学习

    在 Vue.js 的 2.2.0+ 版本中添加加了 provide 和 inject 选项.用于父级组件向下传递数据.provide/inject:简单的来说就是在父组件(或者曾祖父组件)中通过pro ...

  2. iOS 抽取app中的图片图标资源

    iTunes 12.6之前的版本,我们手机连上MAC之后,可以在iTunes里看到应用选项,但是12.8之后的版本就不行了.无法通过iTunes 获取ipa文件进而获取APP图片资源. 不过还是有其他 ...

  3. Abhyankar's Conjecture

    http://www.math.purdue.edu/about/purview/spring95/conjecture.html A Layman's Perspective of Abhyanka ...

  4. redis分页获取数据

    php代码: 采用哈希类型存储数据,有序集合存储分页数据,进行倒序与正序的排序. $getGoodsInfo = M('goods_test')->select(); for($i=0;$i&l ...

  5. Flink - CoGroup

    使用方式, dataStream.coGroup(otherStream) .where(0).equalTo(1) .window(TumblingEventTimeWindows.of(Time. ...

  6. cb && cb() 和 a || {}

    cb && cb() 等同于 if(cb != undefined) { cb(); } a || {} var flag = false var a = flag || {} a / ...

  7. 安装MongoDB报错

    尝试多次,最后找到解决方式: 在安装的最后一步的时候不要勾选左下角的compass即可 命令行mongod --version测试安装是否成功

  8. SpringBoot-@value自定义参数

    自定义参数 配置文件值 name=itmayiedu.com 代码:       @Value("${name}")       private String name; @Res ...

  9. 前端 HTML 常用标签 head标签相关内容 style标签 定义内部样式表

    styple标签 <!-- 定义内部样式表 --> <style type="text/css"></style>

  10. oracle sql 游标的简单用法(tip:sql中两个单引号表示一个单引号)

    --游标遍历某个字段 (打印出来) declare            res_sql varchar2(2000); cursor cur is            select f_dcnam ...