• Bukkit之yaml动态读取


    在使用bukkit框架写插件的时候会经常使用到yml格式的文件来存储配置或者玩家数据,这里来说一下实现yml中数据的动态读写:

    先来看一下yml文件中的内容结构

     1 public boolean addBanSyntheseItem(CommandSender sender, Command cmd, String[] args) {
     2         List list = new ArrayList<>();
     3         Player player = (Player) sender;
     4         ItemStack itemStack = player.getItemInHand();
     5         File airdropFile = new File(Pickaxe.CONFIGPATH);
     6         if(airdropFile.exists()) {
     7             YamlConfiguration yc = new YamlConfiguration();
     8             try {
     9                 yc.load(airdropFile);
    10             } catch (Exception e) {
    11                 e.printStackTrace();
    12                 return false;
    13             }
    14             Set set = yc.getConfigurationSection("banItemList").getKeys(false);
    15             int count = set.size();
    16             //如果yml配置文件是空的,创建根节点,并且添加内容
    17             if(count == 0) {
    18                 ConfigurationSection listSection = yc.createSection("banItemList");
    19                  Map<String, Object> item = new HashMap();
    20                  item.put("id",itemStack.getTypeId());
    21                  item.put("durability", (int)itemStack.getDurability());
    22                  item.put("type", itemStack.getType().toString());
    23                  item.put("displayName", itemStack.getItemMeta().getDisplayName());
    24                  item.put("lore", itemStack.getItemMeta().getLore());
    25                  listSection.createSection(Integer.toString(itemStack.getTypeId()),item); 
    26                  try {
    27                     yc.save(Pickaxe.CONFIGPATH);
    28                     return true;
    29                 } catch (IOException e) {
    30                     e.printStackTrace();
    31                     return false;
    32                 }
    33             }else if(count>0) {    //如果yml中有内容,这直接在其后面追加内容
    34                 ConfigurationSection section = yc.getConfigurationSection("banItemList");
    35                  Map<String, Object> item = new HashMap();
    36                 item.put("id",itemStack.getTypeId());
    37                 item.put("durability", (int)itemStack.getDurability());
    38                 item.put("type", itemStack.getType().toString());
    39                 item.put("displayName", itemStack.getItemMeta().getDisplayName());
    40                 item.put("lore", itemStack.getItemMeta().getLore());
    41                 section.createSection(Integer.toString(itemStack.getTypeId()),item);
    42                 try {
    43                     yc.save(Pickaxe.CONFIGPATH);
    44                     return true;
    45                 } catch (IOException e) {
    46                     e.printStackTrace();
    47                     return false;
    48                 }
    49             }
    50         }
    51         return false;
    52         
    53     }
  • 相关阅读:
    9.Java通过axis调用WebService
    8.AXIS1基础
    7.Web Service 调用天气代码
    Exception in thread "main" java.lang.NoClassDefFoundError: org.jaxen.NamespaceContext
    webservices 服务器未能识别 HTTP 头 SOAPAction 的值:.
    几种流行Webservice框架性能对比
    6. 使用Axis开发WebService程序
    5. webservice通信调用天气预报接口实例
    4.菜鸟教你一步一步开发 web service 之 axis 客户端创建
    3.菜鸟教你一步一步开发 web service 之 axis 服务端创建
  • 原文地址:https://www.cnblogs.com/lihuibin/p/9674813.html
Copyright © 2020-2023  润新知