Minecraft(我的世界)中文论坛

标题: [编程][前置][CPS]DataSharing —— 狠心抛弃mysql吧![全版本]

作者: 诺凡克罗诺    时间: 2019-2-4 12:40
标题: [编程][前置][CPS]DataSharing —— 狠心抛弃mysql吧![全版本]
本帖最后由 无邪。 于 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]
作者: love12138    时间: 2019-2-4 13:11
就是将所有数据全部复制到另一个服务器上进行覆盖吗?
作者: 诺凡克罗诺    时间: 2019-2-4 13:24
love12138 发表于 2019-2-4 13:11
就是将所有数据全部复制到另一个服务器上进行覆盖吗?

不是,是在同一台机器上,让所有以它为前置是插件,的配置文件,统一到一个目录里,所有服务端的该插件,都读取那个目录,达到同步
作者: 一手汗    时间: 2019-2-4 13:34
比如authme的那个插件 - -
他怎么连入你的这个插件里呢- -
作者: 诺凡克罗诺    时间: 2019-2-4 13:53
一手汗 发表于 2019-2-4 13:34
比如authme的那个插件 - -
他怎么连入你的这个插件里呢- -

这又不是authme的前置。人家有完善的数据库类……
仅仅是使用此以插件为前置开发的插件的群组服,在同一台电脑上时,可以达到配置文件共享而已
作者: 鬼畜畜    时间: 2019-2-4 15:42
然而你没考虑到配置文件更新后发送类似ConfigUpdateEvent事件通知配置发生变更
作者: 诺凡克罗诺    时间: 2019-2-4 17:32
Ghost_chu 发表于 2019-2-4 15:42
然而你没考虑到配置文件更新后发送类似ConfigUpdateEvent事件通知配置发生变更 ...

加一个呗
作者: pokexove    时间: 2019-2-4 19:05
MCBBS有你更精彩~
作者: X836696023    时间: 2019-2-4 22:18
本帖最后由 hmf55 于 2019-2-4 22:30 编辑

插件很不错,非常适合开发者!
作者: 诺凡克罗诺    时间: 2019-2-5 12:36
Ghost_chu 发表于 2019-2-4 15:42
然而你没考虑到配置文件更新后发送类似ConfigUpdateEvent事件通知配置发生变更 ...

已加入配置文件发生变化的监听
作者: hemp    时间: 2019-2-8 14:25
感觉搞一个能简化MYSQL操作的前置也会受到欢迎
作者: 442293676    时间: 2019-2-9 19:25
很不错的插件,很喜欢 帮你定定帖
作者: 中华博    时间: 2019-2-10 00:46
只能1.13用??
作者: 1186629496a    时间: 2019-2-10 06:25
66666666666666666
作者: 1186629496a    时间: 2019-2-10 06:26
66666666666666666
作者: MC渣    时间: 2019-7-12 03:40
只能使用在1.13上面嘛 1.12.2支持嘛
作者: 梦麟    时间: 2019-8-27 19:16
到了企业你可能会被打死/滑稽
[默默的来支持插件~]
作者: 惆丿怅    时间: 2019-8-27 19:21
835937470 发表于 2019-2-4 13:24
不是,是在同一台机器上,让所有以它为前置是插件,的配置文件,统一到一个目录里,所有服务端的该插件, ...

大哥,suit套装的头颅皮肤关一下叭
作者: 孤判嘞    时间: 2019-8-29 15:53
不支持1.8吗?
作者: Goblins    时间: 2020-1-8 09:20
有没有白名单功能,我只想同步一部分插件呢
作者: 498525451    时间: 2020-1-24 11:52
支持世界文件夹里的 玩家数据吗?
作者: 丫叽    时间: 2020-3-11 15:38
可是有的插件必须用mysql 可以同时使用吗
作者: SR_踮脚    时间: 2020-3-11 16:19
提示: 作者被禁止或删除 内容自动屏蔽