本帖最后由 Freeze_Dolphin 于 2020-7-28 13:27 编辑
SafeBackpack
由来 低版本的装有Slimefun的服务器在运行时间长(几个月或者更长)之后,玩家开书会导致服务器卡死 后来发现是由于原版Slimefun会把玩家的所有背包数据和个人信息写在一个文件里 每次开书会读取个人信息以获取research状态 而每次读取都会将整个文件读一遍 如果该玩家背包数据很大 就会导致服务器卡
简介 此插件将每个玩家的每个背包数据分文件存储 并在开背包的时候进行检索存档文件 使玩家个人信息和背包数据完全独立
从而避免开书卡的问题
更新
v1.2 - 修复了之前版本的各种bug,包括染**面的bug、染色权限bug、无法转换未开过的背包bug等
- 如果不禁用原版的背包在启动服务器时将产生4行的警告信息(而且不能使用bpdatarelocator指令),这一机制可以在配置文件中关闭
注意:从先前的旧版本升级到v1.2需要删除现有的配置文件并让他自动生成一遍新的
v1.1 - 支持将Slimefun的背包数据迁移到此插件
- 支持将Slimefun的原版背包转换为此插件的背包
- 可以在配置中开启自动转换,这将在玩家加入服务器、打开容器或背包时自动将玩家的背包、打开的容器中的所有原版背包自动转换为此插件的背包
在原版基础上的新功能 在逛minecraft-heads的时候,搜索backpack看到有很多不同颜色的背包 就打算做个染色功能 于是: (染色需要权限)
操作:手持非灵魂绑定背包、冰箱的背包Shift + 右键点击空气,然后将染料放在中间那个槽中并关闭染**面 带有lore和特殊显示名的染料不能放入(例如“资源”分类里的人造蓝宝石)
在原版基础上添加的新物品 旅行背包 54格存储空间 需要由16个布压缩而来的帆布和镀金铁合成 强化冰箱 54格存储空间 需要强化合金锭和帆布以及冷却单元合成
数据迁移 指令:bpdatarelocator 格式:/bpdatarelocator [Slimefun背包数据路径] [此插件的背包数据路径] [是否忽略锁文件] [迁移完成后是否自动删除Slimefun的背包数据] [是否开启debug模式]
权限:仅能从控制台执行
参数详解: - “Slimefun背包数据路径”需要指定Slimefun的Players目录,默认是:“data-storage/Slimefun/Players/”,如果需要使用默认目录,请在此项使用“default”
- “此插件的背包路径”需要指定此插件的数据路径,默认是“data-storage/SafeBackpacks/backpacks/”,如果需要使用默认目录,请在此项使用“default”
- “是否忽略锁文件”,锁文件是指在第一次成功迁移之后会在服务器根目录下生成的一个“.relocator”空文件,如果不忽略锁文件,第二次执行此指令时会先检测是否存在锁文件,如果存在就直接结束,不进行第二次迁移;默认为不忽略,如需忽略锁文件请把这项写“ignore-check”
- “迁移完成后是否自动删除Slimefun背包数据”,手动删除Slimefun背包数据比较麻烦,可以通过执行此指令进行自动清理,默认不开启,如需开启请把此项写“on”或者“true”(注意:如果不清理Slimefun的背包数据,那么开书依旧会卡)
- “是否开启debug模式”,开启后会在迁移时在控制台输出详细信息,建议开启,且默认开启,如需屏蔽请在此项写“off”或者“false”
示例从未改动Slimefun背包数据路径和此插件的背包数据路径,希望在迁移时自动删除Slimefun背包数据,忽略锁文件: /bpdatarelocator default default ignore-check on on不忽略锁文件(较为安全的做法):/bpdatarelocator default default 0 on on
转换器 指令:itemconvertor 格式:/itemconvertor [玩家名] 权限:safebackpack.convertor.convert
作用:转换该玩家的背包内的所有Slimefun背包为此插件的背包
注:当玩家名没有被指定时,将把执行者背包内的所有Slimefun背包转换为此插件的背包
当控制台执行此指令时,参数1必须给定一个有效的玩家名
拥有safebackpack.admin权限的玩家可以用/itemconvertor reload来重载插件
权限权限节点
| 描述
| safebackpack.dye.*
| 允许使用染色的所有功能
| safebackpack.dye.menu
| 允许打开染色面版
| safebackpack.dye.color.white | 允许将背包染成白色
| safebackpack.dye.color.*
| 允许将背包染成所有颜色 | safebackpack.dye.color.orange
| 允许将背包染成橙色 | safebackpack.dye.color.magenta
| 允许将背包染成品红色 | safebackpack.dye.color.light-blue
| 允许将背包染成淡蓝色 | safebackpack.dye.color.yellow
| 允许将背包染成黄色 | safebackpack.dye.color.lime
| 允许将背包染成黄绿色 | safebackpack.dye.color.pink
| 允许将背包染成粉色 | safebackpack.dye.color.gray | 允许将背包染成灰色 | safebackpack.dye.color.light-gray
| 允许将背包染成淡灰色 | safebackpack.dye.color.cyan
| 允许将背包染成青色 | safebackpack.dye.color.purple
| 允许将背包染成紫色 | safebackpack.dye.color.blue
| 允许将背包染成蓝色 | safebackpack.dye.color.brown
| 允许将背包染成棕色 | safebackpack.dye.color.green
| 允许将背包染成绿色 | safebackpack.dye.color.red
| 允许将背包染成红色 | safebackpack.dye.color.black | 允许将背包染成黑色 |
safebackpack.admin | 允许使用管理员指令(重载配置) |
safebackpack.convertor.* | 允许使用背包转换器,以及自动转换
| safebackpack.convertor.auto-run | 允许使用自动转换 | safebackpack.convertor.convert | 允许使用背包转换器 |
(其中,棕色是Slimefun默认的背包颜色) (默认op拥有safebackpack.dye.*)
注意事项 强烈建议在Slimefun的配置文件中禁用所有原版的背包(在“Items.yml”中将原版背包的“enable”项改为“false”) 否则“便携式物品”分类中会有两种背包出现(一种是原版,一种是此插件的)
另外开书卡的原因正是由原版背包引起的,此插件只是通过加入数据读写机制不同、而功能相同的背包来避免开书卡,所以如果不禁用原版背包,玩家使用原版背包时间长了之后,开书依旧会卡
不过禁用原版的背包之后现有的已经合成的原版背包除非用转换器(itemconvertor)或通过自动转换,转换为此插件的背包,否则会无法使用
插件下载及前置 下载地址见插件信息 前置为mc1.12的Slimefun(v4.1.15)和CS-CoreLib(v1.5.18)
更多截图
后 感谢@小张up 报告bug(v1.2主要修复的是他发现的bug)
|
|