本帖最后由 无邪。 于 2020-5-31 11:37 编辑

来自对MySQL|深恶痛绝的咆哮
MySQL固然好,但是方便可不敢说。
并且对于编程新手的我来说真是不友好!(大佬略过)
这个插件的作用,就是在不使用MySQL的情况下,实现插件跨服数据同步。
并且有极强的可编辑性。


☆简介☆
*将你的插件以它为前置,它可以把你的插件的配置文件,统一规划到一个指定目录下存储。
*就可以实现,多服共读,同步(缺点:同一台机器,优点:好编辑,不易出错)。



☆食用指南☆
这个插件运行后,会在配置文件里生成一个String路径,可定义为你的保存路径

  1. #以它为前置的插件,配置文件的统一规划路径
  2. filePath: 'D:/MyPluginFile/Plugins'
  3. #监听器的延迟,单位 秒 (采用定时检测某插件的文件最后修改时间来触发监听器)
  4. UpdateTimer: 4
复制代码

将插件plugin.yml里加上依赖
  1. softdepend:
  2. - DataSharing
复制代码
  1. 在onLoad里,查找服务器插件是否有这个插件(这是我的办法)
  2. @Getter
  3.     private static boolean dataSharing =false;
  4. for(Plugin plugin:Bukkit.getPluginManager().getPlugins()){
  5.             if(plugin.getName().equalsIgnoreCase("DataSharing")){
  6.                 Bukkit.getConsoleSender().sendMessage("§a无邪版跨服同步前置插件运行!");
  7.                 Bukkit.getConsoleSender().sendMessage("§a同台机器所有服务器此插件数据实现同步共享!");
  8.                 dataSharing =true;
  9.                 break;
  10.             }
  11.         }
复制代码
  1. 简单的创建config实例
  2. @Getter
  3. PluginYaml pluginYaml = new PluginYaml(this);
  4. //该配置文件发生变化是否触发监听
  5. boolean callEvent =true;
  6. File file = pluginYaml.getFile("test"+File.separator+"config.yml",callEvent );
  7.         YamlConfiguration yml =new YamlConfiguration();
  8.         yml.set("test","这是一个测试文本,这个文件毫无卵用!");
  9.         try {
  10.             yml.save(file);
  11.         } catch (IOException e) {
  12.             e.printStackTrace();
  13.         }
  14. 在onDisable里,如果配置文件是被监听状态,则需要加入XXXX.getPluginYaml().fileUpdateRunCancel();来终止定时的对文件检测。
  15. 这样config.yml的生成和读取路径就会在D:/MyPluginFile/Plugins/插件名/config.yml生成!
  16. 并且当它被改动时,就会触发监听器传递给插件。如果 callEvent =false 则不触发。
复制代码

源码



☆更新记录☆
应某大佬的提议 @[size=1em]Ghost_chu,我研究一晚上,搞出来个配置文件发生变化时监听(脑细胞死了一片)
可以只监听被标记的配置文件,构造方法为
@Getter
PluginYaml pluginYaml = new PluginYaml(this);
//该配置文件发生变化是否触发监听
boolean callEvent =true;
File file = pluginYaml.getFile("test"+File.separator+"config.yml",callEvent );
如果callEvent 为true则该文件被监听。
该监听器的构造,和调用方法不知道对不对,有大佬的话,还请帮忙优化一下~233


☆下载☆
站内下载: DataSharing.jar (5.62 KB, 下载次数: 76)
如果觉得这个插件帮到了你,请不要吝啬你的人气和金粒哟!

[groupid=1701]Complex Studio[/groupid]