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. angular 表单元素的验证清除问题

    项目中利用了前些时候写的弹出dialog的方式,验证方式用了控件angular-validation(http://www.cnblogs.com/FineDay/p/7255689.html) 验证 ...

  2. present simple, continuous, and be going to 三者区别

    https://www.youtube.com/watch?v=a03VKQL0dZg&list=PLZOJurmtexYozmvQGAJnVg3lgiZw0mj-y HOW TO USE F ...

  3. hide server info

    <?php /*wamp64\bin\apache\apache2.4.18\confhttpd.conf ServerSignature On  ServerTokens Full Serve ...

  4. iOS如何接收服务端返回的布尔值

    if ([user[@"chat"] boolValue]) { userModel.chat = ; }else { userModel.chat = ; } 关键是要调用boo ...

  5. python发送邮件 大全汇总

    https://blog.csdn.net/bmxwm/article/details/79007871 参考菜鸟教程发送只有文字的邮件 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  6. cxgridchart饼状图

    var VIEW:TcxGridDBChartView; Level:TcxGridLevel; Series:TcxGridDBChartSeries; begin View := cxGrid1. ...

  7. el表达式获取对象属性值 返回值类型

    实现 数字页码时 遇到的一个问题. 后端servlet 在request.setAttribute("page",page); page 为pagebean的实例对象,pagebe ...

  8. 转:JAVA守护线程

    原文地址:https://www.cnblogs.com/wxgblogs/p/5417503.html 详细内容看原文~  ,写的挺好的 在Java中有两类线程:User Thread(用户线程). ...

  9. EntityFramework_基础

    什么是EF EF是一种ORM(Object-relational mapping)框架,它能把我们在编程时使用对象映射到底层的数据库结构.它可以让应用程序开发者将关系型数据作为业务模型来使用,也消除了 ...

  10. java之获取资源文件

    背景介绍 在java程序中有时我们需要加载项目中的某些资源文件(如:config.properties之类),以便获取里面的值,这样可以避免某些需要经常修改的数据硬编码入业务程序中 实现方式 实现这种 ...