ItemStack加载器
ItemStack加载器是加载Bukkit ItemStack的工具。
caution
在使用此功能之前,请务必创建一个完整的服务器备份。 启用后,更改将永久地写入世界和数据库;没有备份就无法回滚。
何时需要此功能
当您更新到 Minecraft 到较新版本并在之后降级(但没有同时回滚 quickshop 数据库)时,您可能会看到如下错误:
[Server] ERROR Could not call method 'public static org.bukkit.inventory.ItemStack org.bukkit.inventory.ItemStack.deserialize(java.util.Map)' of class org.bukkit.inventory.ItemStack for deserialization
[Server] INFO java.lang.IllegalArgumentException: Newer version! Server downgrades are not supported!
在这种情况下,我们的建议是恢复最后一个正常的QuickShop数据库备份,但是如果您不幸丢失了所有备份,则可以尝试以下解决方法。
QuickShop 会在控制台出现因版本降级而出现错误时提示, 例如:
[QuickShop-Hikari] [WARN] Cannot load ItemStack {ITEM_INFO} because it was saved by a newer Minecraft server version. The action will fail and you will receive an exception. PLEASE DON'T REPORT THIS TO QUICKSHOP!
[QuickShop-Hikari] [WARN] You can try force load this ItemStack by our hacked ItemStack read util(shop.force-load-downgrade-items), but beware, the data may damaged if you load on this lower Minecraft server version, Please backup your world and database before enable!
启用后备解决方案
更改 config.yml 中的以下设置,可以使加载器正常运行:
shop:
# 跨版本物品载入(高级/风险自负)
# 尝试载入高版本 Minecraft 创建的物品。
# 警告:这可能导致服务器或商店数据损坏,请先备份。
force-load-downgrade-items:
enable: true
# 工作模式:
# 0 = 让 Bukkit 更新 ItemStack
# 1 = 让 Bukkit 直接载入 ItemStack
method: 0
方法 0 会让 Bukkit 更新 ItemStack 版本,而方法 1 则会让 Bukkit 直接载入它。 默认情况下,此值为 0。