本帖最后由 NOBUTS 于 2019-8-14 20:39 编辑
前言
对于开生存类型服务器的服主来说,Slimefun这款插件即使没用过应该也听说过。这是一款添加了非常多新机器、物品等等的插件,可玩性非常高。但有一个问题是,这款插件没有数据库存储功能,这导致开群组服的服主无法同步玩家们在子服间的解锁进度。今天我就来教各位一个比较邪道的解决方案。
不适用的情景
- 面板服。
- 需要互相同步的n个服务端不在同一台物理主机上。
教程
在进行同步数据前,你需要先确定你的服务器系统。如果是Linux,请使用ln命令;如果是Windows则使用mklink,注意部分较老的Windows系统没有mklink功能,各位可以区网上搜索“junction”,功能上与使用方法同mklink基本一致。本教程以mklink为示例。
首先打开命令提示符(微软键+r,然后输入cmd),输入mklink,你会看到如下的内容。
这个命令的具体用法是 mklink 链接方式 链接目录地址 被链接(目标)目录地址
这样说可能你还有点不理解,那么我们直接上一个实际例子。
首先是链接方式,各位可以直接输入/D,如果你想知道这三个参数分别有什么效果,可以自行百度,这里不作赘述。
然后找到你Slimefun玩家解锁的文本数据所在位置,一般都是在你服务端根目录下的“\data-storage\Slimefun\Players”,在我自己的电脑上,这个位置就是“E:\mc本地服务器\1.14.2\data-storage\Slimefun\Players”。这个目录地址就是我们的链接目录地址。
那么被链接(目标)目录地址如何设置呢?这个其实没有什么限制,但我推荐在方便管理的位置创建一个任意名称的文件夹,比如:
于是我的被链接(目标)目录地址就是“E:\mc本地服务器\Slimefun玩家解锁数据”,大家注意我这个文件夹里现在放了一个名为“测试.txt”的文件,如下图。
那么到这里,我要输入命令也就得出来了,输入后效果如下:
如果提示你已被创建,那么请删掉你链接目录地址上的文件夹(示例中的话就是Players这个文件夹)。
至此,所有设置就都完成了,你会看到在“\data-storage\Slimefun”这个目录下多出来一个不一样的文件夹:
让我们点进去看一下:
这个“测试.txt”文件所在的位置就是你集中存储玩家解锁数据的地方,实际上就是让多个系统文件路径都指向这个集中存储玩家数据的文件夹。
你只需要在各个子服端做一遍同样的事情,就可以让共享同一数据存储文件夹的子服之间的玩家解锁数据同步。
非常简单,对吧?
后话
可能你已经想着把这个奇技淫巧用到其他插件的数据同步上了,但这里我要给你泼一盆冷水。如果存储文件会同时被1个以上的子服更改和读取,那么这个方法就不适用,有可能会造成一些严重的问题。如果你想在其他插件上也使用这个方法,除非你已经完全了解那个插件的运作方式,否则请务必先做好充分的测试。
最后的最后:给人气不要钱!