虚空之库

虚空之库

VoidVault 为每位玩家添加了一个个人跨维度保险库,就像我的世界中的末影箱一样。

家具

在 Ko-fi 上支持我

VoidVault

适用于 Hytale 服务器的个人跨维度保险库系统

图片

VoidVault 为每位玩家提供一个安全、持久且可配置的个人存储系统,其灵感来自 Minecraft 的末影箱和虚空箱。

玩家可以通过一个可放置的 虚空保险库 方块、命令,或在启用多保险库时通过简洁的保险库选择界面来访问他们的保险库。


🔥 VoidVault 赞助商

由 HyTools 强力驱动

HyTools — 为玩家、建造者、创作者和服务器所有者提供的免费 Hytale 工具

由粉丝为社区构建的免费 Hytale 工具。直接在浏览器中创建形状、格式化文本、分析服务器日志、配置服务器、准备公告、简化重复性任务等等。

探索 HyTools →

由 HyBrasa 强力驱动

加入 HyBrasa,这是一个巴西的 Hytale RPG 服务器,专注于冒险、成长、社区和不断演变的游戏体验。

服务器 IP: jogar.hybrasa.com.br:11276

Discord: 加入 HyBrasa 社区 →

HyBrasa — 具有成长、冒险、事件和活跃社区的巴西 Hytale RPG 服务器

✨ 特性

  • 每位玩家拥有的个人保险库存储;
  • 支持每位玩家拥有多个保险库;
  • 可合成和放置的 虚空保险库 方块;
  • 简洁的游戏内保险库选择界面;
  • 可为单个保险库自定义名称;
  • /vv/voidvault 命令;
  • 可配置的槽位容量等级;
  • 可配置的保险库数量等级;
  • 兼容 LuckPerms 的权限组检查;
  • 基于权限的访问控制;
  • 用于检查玩家保险库的管理员命令;
  • 运行时配置文件重载;
  • 默认使用 SQLite 存储;
  • 安全的溢出物品存储;
  • 从旧版 EnderChest 模组安全迁移;
  • 自定义的虚空保险库开启音效;
  • 可以启用或禁用合成配方;
  • 更新时保留现有玩家数据。

💜 多保险库

VoidVault 可以让玩家访问多个个人保险库。

玩家可以使用以下命令直接打开特定保险库:

/vv 1
/vv 2
/vv 3

他们也可以使用以下命令打开保险库选择器界面:

/vv ui

当玩家与可放置的 虚空保险库 方块交互时:

  • 如果玩家只有一个保险库,将直接打开 保险库 1
  • 如果玩家有多个保险库,将打开选择界面;
  • 然后玩家可以选择他们想要访问的保险库。

这使得方块对普通玩家来说简单易用,同时仍然支持为等级、VIP、成长系统和自定义服务器经济系统设置的高级存储方案。


🏷️ 自定义保险库名称

玩家可以为他们的保险库设置自定义名称,以便更轻松地组织存储空间。

示例:

/vv rename 1 木材
/vv rename 2 矿石
/vv rename 3 武器

自定义名称会显示在保险库选择界面中,位于保险库编号下方。

例如:

保险库 1
木材

原始的保险库编号始终保持可见,以便玩家和管理员仍然能够清晰地识别保险库。

要移除自定义名称:

/vv rename 1 reset

📦 玩家命令

命令 描述
/vv 打开你的主保险库。默认情况下,这会打开 保险库 1
/vv <编号> 打开指定的保险库,例如 /vv 2
/vv ui 打开保险库选择界面。当你拥有多个保险库的访问权限并希望通过视觉方式选择时很有用。
/vv list 列出你可用的保险库。
/vv rename <编号> <名称> 为你的一个保险库设置自定义名称,例如 /vv rename 2 矿石
/vv rename <编号> reset 移除保险库的自定义名称,例如 /vv rename 2 reset
/voidvault 也打开你的主保险库。
/voidvault help 显示可用的 VoidVault 命令。
/voidvault overflow 显示你当前可见槽位上限之外隐藏了多少个物品槽位。
/voidvault overflow <编号> 显示特定保险库的溢出信息。
/voidvault overflow all 显示你所有保险库的溢出信息。

溢出命令在服务器迁移后,或当服务器为不同等级、VIP 或基于成长的权限组使用不同保险库大小时尤其有用。


🛡️ 管理员命令

命令 描述
/voidvault open <玩家名|UUID> 打开另一个玩家的主保险库。适用于审核、支持、迁移检查和恢复玩家数据。
/voidvault open <玩家名|UUID> <保险库编号> 打开另一个玩家的特定保险库,例如 /voidvault open Steve 2
/voidvault reload mods/VoidVault/config.json 重新加载 VoidVault 配置文件。在更改权限、槽位等级、多保险库设置、合成设置或导入器设置后使用。
/voidvault import enderchest 将旧版 EnderChest 模组的玩家数据导入 VoidVault。

默认情况下,VoidVault 会在以下路径查找旧版 EnderChest 数据库:

mods/kvothe_EnderChest/enderchest.db

VoidVault 将有效的保险库数据导入到:

mods/VoidVault/voidvault.db

它还会在以下路径生成导入报告:

mods/VoidVault/reports/

🔐 权限

默认的命令权限:

voidvault.use
voidvault.ui
voidvault.admin
voidvault.admin.reload
voidvault.admin.import

默认的槽位权限:

voidvault.slots.vip1 -> 18 个槽位
voidvault.slots.vip2 -> 27 个槽位
voidvault.slots.vip3 -> 36 个槽位
voidvault.slots.vip4 -> 54 个槽位
voidvault.slots.vip5 -> 63 个槽位

默认的多保险库权限可由服务器所有者配置。

权限风格示例:

voidvault.vaults.vip1 -> 2 个保险库
voidvault.vaults.vip2 -> 3 个保险库
voidvault.vaults.vip3 -> 5 个保险库
voidvault.vaults.vip5 -> 10 个保险库

默认也支持旧版 EnderChest 权限:

enderchests.vip  -> 27 个槽位
enderchests.vip+ -> 54 个槽位
enderchests.vip5 -> 63 个槽位

包含这些旧版权限是为了方便那些已经在使用旧版 EnderChest 模组的服务器进行迁移。


👑 LuckPerms 支持

VoidVault 在没有 LuckPerms 的情况下也能工作,但如果安装了 LuckPerms,VoidVault 也可以检查玩家权限组。

槽位等级可以通过权限节点和/或 LuckPerms 组进行配置:

{
  "id": "vip5",
  "slots": 63,
  "permission": "voidvault.slots.vip5",
  "luckPermsGroups": ["vip5"]
}

多保险库等级也可以通过权限节点和/或 LuckPerms 组进行配置:

{
  "id": "vip5",
  "vaults": 10,
  "permission": "voidvault.vaults.vip5",
  "luckPermsGroups": ["vip5"]
}

如果玩家匹配多个等级,VoidVault 将使用匹配到的最高数值。


🧰 槽位系统

默认情况下,玩家从以下数量开始:

9 个槽位

服务器所有者可以通过配置权限等级或 LuckPerms 组来增加槽位。

默认的最高等级:

63 个槽位

这对于希望为 VIP、等级、捐赠者或基于成长的权限组提供更大保险库的服务器很有用。

玩家拥有的所有保险库都使用该玩家槽位等级所允许的相同可见槽位数量。

示例:

  • 一个拥有 9 个槽位的玩家,在他可访问的每个保险库中都有 9 个可见槽位;
  • 一个拥有 63 个槽位的玩家,在他可访问的每个保险库中都有 63 个可见槽位。

💎 多保险库配置

可以在以下路径启用或禁用多保险库:

mods/VoidVault/config.json

示例:

{
  "multi-vaults": {
    "enabled": true,
    "defaultVaults": 1,
    "maxVaults": 10,
    "tiers": [
      {
        "id": "vip1",
        "vaults": 2,
        "permission": "voidvault.vaults.vip1",
        "luckPermsGroups": ["vip1"]
      },
      {
        "id": "vip5",
        "vaults": 10,
        "permission": "voidvault.vaults.vip5",
        "luckPermsGroups": ["vip5"]
      }
    ]
  }
}

当禁用多保险库时,VoidVault 保持经典的单保险库行为。

当启用多保险库时,每位玩家可以访问其权限或 LuckPerms 组所允许数量的保险库。


🛡️ 防溢出存储

VoidVault 不会仅仅因为玩家当前拥有的可见槽位较少而删除物品。

示例:

  • 一个玩家的物品存储在槽位 062
  • 他们当前的等级只授予 9 个可见槽位;
  • 超过 8 的槽位中的物品会安全地存储在数据库中;
  • 当玩家获得具有足够槽位的等级时,这些物品将再次变为可见。

这在从 EnderChest 迁移或在运行中的服务器上更改等级权限时尤其重要。


🔒 保险库访问安全性

VoidVault 旨在保护玩家数据。

如果玩家失去了对一个额外保险库的访问权限,该保险库的数据不会被删除。

示例:

  • 一个玩家可以访问 5 个保险库;
  • 他们将物品存放在保险库 4 中;
  • 后来,他们失去了授予额外保险库的权限;
  • 保险库 4 变得无法访问;
  • 这些物品仍然安全地存储着;
  • 如果玩家稍后重新获得访问权限,保险库 4 仍然包含已保存的物品。

这使得多保险库对于 VIP 系统、临时等级和权限更改是安全的。


🔁 EnderChest 迁移

VoidVault 包含一个内置的迁移命令,适用于从旧版 EnderChest 模组过渡的服务器。

旧的默认数据库路径:

mods/kvothe_EnderChest/enderchest.db

旧的默认 JSON 目录:

mods/kvothe_EnderChest/ender_chest_data

在游戏中运行此命令:

/voidvault import enderchest

VoidVault 将:

  • 读取旧版 EnderChest 玩家保险库;
  • 导入有效的库存数据;
  • 保留旧的槽位位置;
  • 确保溢出物品的安全;
  • 默认避免覆盖非空的 VoidVault 记录;
  • 替换迁移前创建的空 {} 记录;
  • mods/VoidVault/reports/ 下创建报告;
  • 如果配置中启用,在确认导入前创建备份。

在运行中的服务器上执行迁移之前,务必进行完整的服务器备份。

导入的 EnderChest 数据将被放置到:

保险库 1

⚙️ 配置

VoidVault 会在以下位置创建其配置文件:

mods/VoidVault/config.json

主要的配置部分:

database  (数据库)
commands  (命令)
slots     (槽位)
multi-vaults(多保险库)
crafting  (合成)
importer  (导入器)
safety    (安全性)

你可以配置:

  • 数据库路径;
  • 命令名称和别名;
  • 权限节点;
  • 槽位等级;
  • 多保险库等级;
  • LuckPerms 组;
  • 合成启用/禁用;
  • EnderChest 导入路径;
  • 保存行为和安全性选项。

编辑配置文件后,运行:

/voidvault reload

🔨 合成

VoidVault 包含一个可合成的可放置保险库方块。

服务器所有者可以在以下位置禁用合成:

mods/VoidVault/config.json

示例:

{
  "crafting": {
    "enabled": false
  }
}

当禁用合成时,如果玩家有权限,仍然可以使用命令。


📥 安装

  1. 下载最新的 VoidVault .jar 文件。
  2. 将其放置在你服务器的 mods 文件夹中。
  3. 启动服务器。
  4. 如有需要,编辑生成的配置文件:
mods/VoidVault/config.json
  1. 重启服务器或运行:
/voidvault reload

⭐ 推荐给服务器所有者的设置

一个简单的槽位进展方案可以是这样:

默认玩家:9 个槽位
VIP 1:18 个槽位
VIP 2:27 个槽位
VIP 3:36 个槽位
VIP 4:54 个槽位
VIP 5:63 个槽位

一个简单的保险库数量进展方案可以是这样:

默认玩家:1 个保险库
VIP 1:2 个保险库
VIP 2:3 个保险库
VIP 3:5 个保险库
VIP 5:10 个保险库

对于使用 LuckPerms 的服务器,在你的 luckPermsGroups 内配置你的等级组。

示例:

{
  "id": "vip5",
  "slots": 63,
  "permission": "voidvault.slots.vip5",
  "luckPermsGroups": ["vip5"]
}

示例多保险库等级:

{
  "id": "vip5",
  "vaults": 10,
  "permission": "voidvault.vaults.vip5",
  "luckPermsGroups": ["vip5"]
}

🗄️ 数据存储

VoidVault 默认将玩家保险库数据存储在 SQLite 中:

mods/VoidVault/voidvault.db

主要的多保险库表:

void_vault_inventories

每个保险库记录按以下字段存储:

uuid          (玩家唯一标识符)
vault_id      (保险库 ID)
inventory_data(库存数据)
source        (来源)
last_updated  (最后更新时间)

保险库元数据,例如自定义保险库名称,是分开存储的。

旧版的单保险库数据会为了兼容性而被保留,并安全地迁移到:

保险库 1

📌 版本

当前版本:

0.2.0

💻 源代码与贡献

VoidVault 的源代码可供非商业用途使用。

开发者可以出于非商业目的阅读、修改、复刻和贡献该项目。

欢迎贡献,尤其是在以下方面:

  • 更好的迁移工具;
  • 改进的报告;
  • 更多配置选项;
  • 更好的本地化;
  • 数据库改进;
  • 界面和音效打磨;
  • 兼容性改进。

📜 许可证

VoidVault 根据 PolyForm 非商业许可证 1.0.0 版 进行许可。

你可以出于非商业目的阅读、使用、复制、修改、复刻和贡献该项目。

未经项目维护者明确书面许可,你不得出售本项目的副本、出售本项目的修改版本,或将本项目用作商业产品或付费服务的基础。

维护者可根据请求授予商业许可例外。


VoidVault

更大空间。更好组织。更安全存储。

适用于 Hytale 服务器的现代保险库系统。