例如像
端路径/plugins/CommandAttributes/PlayerData
如何将玩家的数据以yml的形式写入并读取PlayerData中以玩家的UUID命名的数据
端路径/plugins/CommandAttributes/PlayerData
如何将玩家的数据以yml的形式写入并读取PlayerData中以玩家的UUID命名的数据
你的做法或者想法呢
先说说你尝试过什么样的方法吧
先说说你尝试过什么样的方法吧
示例地址:ToolAPI/ConfigManager.java at master · byxiaobai/ToolAPI · GitHub
复制代码
- /**
- * 加载配置文件
- * @param plugin 插件主类
- * @param configName 配置文件名 带.yml
- * [url=home.php?mod=space&uid=491268]@Return[/url] 配置文件
- */
- public static Config loadConfig(Plugin plugin,String configName) {
- File pluginDataFolder=plugin.getDataFolder();
- //在此处拓展pluginDataFolder,加一个PlayerData即可
- File configFile = new File(pluginDataFolder, configName);
- if (!pluginDataFolder.exists())pluginDataFolder.mkdir();
- if (!configFile.exists())plugin.saveResource(configName, true);
- Config config=new Config(configFile,YamlConfiguration.loadConfiguration(configFile));
-
- return config;
- }
构造对象序列化(将玩家数据处理为String数据流储存)与反序列化方法(将String数据流构造为玩家实体),推荐用json或者yml格式。如果是自己实现的话就类似于自己获取玩家的名字、经验、等属性然后按照自己设计的格式储存到文件中,读取反之。(uuid可以直接 getUniqueId() 获取)。
至于路径问题就是普通的java文件读取基础+bukkit的文件读取
复制代码
至于路径问题就是普通的java文件读取基础+bukkit的文件读取
- File file = new File(Main.getPlugin().getDataFolder()+File.separator+"子文件夹","uuid01.yml");
- //以上类似路径.../myplugin/子文件夹/uuid01.yml
- if (!file.exists()) {//文件不存在则创建一个
- System.out.println("配置不存在");
- file.getParentFile().mkdirs();
- }
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);//读取文件
- config.save(file) //保存该文件到路径
- try {
- Player player;
- File file = new File("./plugins/CommandAttributes/PlayerData/" + player.getUniqueId() + ".yml");
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);
- config.set("...<键>...", "...<值>...");
- config.save(file); // 保存文件
- } catch (IOException e) {
- e.printStackTrace();
- }