ServiceIO

一个具有全新现代API的Vault即插即用替代品。

资源图片
# ServiceIO 一个现代化、开箱即用的 Vault 替代方案,提供增强的功能、 更好的性能和插件之间的无缝集成。 > [!NOTE] > ServiceIO 只支持 [paper](https://papermc.io/downloads/paper) 的最新构建 (1.20+) > > ServiceIO 被设计成 Vault 的完整替代品,因此在您切换后,Vault 将不再是必需的。 请放心, > 您现有的所有依赖于 Vault 的插件将继续与 ServiceIO 协同工作。 指标可以在 [这里](https://bstats.org/plugin/bukkit/TheNextLvl%20ServiceIO/23083) 找到 [在 Hangar 上下载插件](https://hangar.papermc.io/TheNextLvl/ServiceIO) ## 为什么您应该使用 ServiceIO? ServiceIO 是 Vault 的一种前沿替代方案,旨在克服过时 VaultAPI 的局限性。 虽然 Vault 仍然具有用途,但它依赖于已弃用且不受支持的代码,这迫使开发人员使用不安全 null 的 接口,这可能导致不稳定和错误。 ServiceIO 通过提供强大的空指针安全性注释、全面的文档和 维护良好的源代码来解决这些问题。 此外,ServiceIO 启用异步数据加载并提供对缓存的 结果访问,从而提高性能和可扩展性。 ServiceIO 的一项关键功能是其与现有 Vault 接口的无缝集成,允许您的插件同时使用 这两个 API,而无需进行任何额外的代码更改。 这确保了平滑的过渡,同时 利用现代、可靠平台的优势。 此外,ServiceIO 通过启用不同插件之间的数据转换,不仅限于 经济,还包括银行、权限、聊天和组等内容,超越了 Vault 提供的内容。 这消除了开发人员 实施自定义转换逻辑的需要,从而节省了时间和精力。 对于服务器所有者来说,这意味着可以比以往 任何时候都更流畅地替换插件,确保平稳运行和灵活性,而无需手动数据迁移引起的手头问题。 ## 命令 ### Convert | 命令 | 描述 | |--------------------------------------------------|------------------------------------------------------------------------------------------| | `/service convert banks ` | 转换所有银行和银行账户 | | `/service convert character ` | 转换所有 npc | | `/service convert chat ` | 转换所有聊天数据 (前缀、后缀、显示名称...) | | `/service convert economy ` | 转换所有经济数据 (账户和余额) | | `/service convert groups ` | 转换所有组数据 (组、前缀、后缀、显示名称、权限、成员) | | `/service convert holograms ` | 转换所有全息图 | | `/service convert permissions ` | 转换所有权限数据 (用户、权限) | ### Info | 命令 | 描述 | |-----------------------------|----------------------------------------------------| | `/service info` | 查看添加任何功能的所有插件 | | `/service info banks` | 查看安装了哪些银行提供程序插件 | | `/service info characters` | 查看安装了哪些 npc 提供程序插件 | | `/service info chat` | 查看安装了哪些聊天提供程序插件 | | `/service info economy` | 查看安装了哪些经济提供程序插件 | | `/service info groups` | 查看安装了哪些组提供程序插件 | | `/service info holograms` | 查看安装了哪些全息图提供程序插件 | | `/service info permissions` | 查看安装了哪些权限提供程序插件 | ## 权限 使用 `/service convert` 命令需要权限 `service.convert`
使用 `/service info` 命令需要权限 `service.info` `service.admin` 权限授予访问所有 ServiceIO 命令 由于兼容性 `vault.admin` 充当 `service.admin` ## API 要在 Gradle 项目中使用 Kotlin DSL 包括 API,请执行以下步骤: 1. **添加存储库:** 在您的 `repositories` 块中包含 `maven` 存储库。 2. **添加依赖项:** 将 `` 替换为 API 的实际版本。 这是一个示例配置: ```kts repositories { maven("https://repo.thenextlvl.net/releases") } dependencies { compileOnly("net.thenextlvl.services:service-io:") } ``` 要查找最新版本: 1. 访问 [存储库链接](https://repo.thenextlvl.net/#/releases/net/thenextlvl/services/service-io)。 2. 将依赖项声明中的 `` 替换为列出的最新版本号。 例如,如果最新版本是 **2.2.0**,则您的依赖项将如下所示: ```kts dependencies { compileOnly("net.thenextlvl.services:service-io:2.2.0") } ``` 您可以在存储库中找到源代码和 Javadoc
您还可以在 IDE 中从那里下载文档 ### 实施 ServiceIO ServiceIO _松散地_ 遵循模型视图控制器 (MVC) 设计模式
目前,有以下控制器: BankController CharacterController ChatController EconomyController GroupController HologramController PermissionController 控制器负责加载、检索、删除和创建数据 访问控制器的示例: ```java public @Nullable BankController getBankController() { return getServer().getServicesManager().load(BankController.class); } public @Nullable ChatController getChatController() { return getServer().getServicesManager().load(ChatController.class); } public @Nullable EconomyController getEconomyController() { return getServer().getServicesManager().load(EconomyController.class); } ``` 提供您自己的控制器的示例: ```java private void registerBankController() { getServer().getServicesManager().register(BankController.class, new YourBankController(), this, ServicePriority.Highest); } private void registerEconomyController() { getServer().getServicesManager().register(EconomyController.class, new YourEconomyController(), this, ServicePriority.Highest); } ```