**Linux/macOS**: `./gradlew build` ## 开发者API ### 仓库 / 依赖 如果您希望使用 ServerUtils 的快照版本,可以使用以下仓库: ``` https://repo.fvdh.dev/snapshots ``` #### Gradle: ```kotlin repositories { compileOnly("net.frankheijden.serverutils:ServerUtils:VERSION") } dependencies { maven("https://repo.fvdh.dev/releases") } ``` #### Maven: ```xml
# ServerUtils
ServerUtils 允许您在游戏内管理您的插件。
它具有在运行时从插件文件夹加载、卸载和重新加载插件的功能。
ServerUtils 还提供了查找命令和插件的便捷方法,
并为您提供有关它们的有用信息。
[![releaseImg]][release]
[](https://github.com/FrankHeijden/ServerUtils/actions)
[![licenseImg]][license]
[![featureRequestsImg]][featureRequests]
[![bugReportsImg]][bugReports]
[![spigotRatingImg]][spigot]
[![spigotDownloadsImg]][spigot]
[](https://discord.gg/WJGvzue)
## 功能
- Spigot/Paper、BungeeCord/Waterfall 和 Velocity 兼容!
- 替换(您可以禁用此功能)/pl 和 /plugins (bukkit)命令,使用可定制的消息插件版本。添加 -v 标签将所有版本添加到输出中!请注意:命令 [plain]/bukkit:pl[/plain] 和 [plain]/bukkit:plugins[/plain] 不会被替换,因此您仍然可以使用它们!
- 为 bungeecord 提供一个整洁的可配置的 /bpl 插件命令。使用 -v 标志输出插件的版本,并使用 -m 标志来包含插件列表中的模块(例如 cmd_send.jar、cmd_server.jar 等)。
- 使用 /su (load/reload/unload)plugin 在运行时重新加载插件!(BungeeCord:主命令是 /bsu) 支持 Tabcomplete,可快速从插件文件夹中的 JAR 文件加载新的插件 :)
- 监视插件文件中的更改,并自动重新加载它们! /su watchplugin!
- 卸载未使用的命令 (spigot/paper):您可以在配置文件中定义将在 ServerUtils 启动时卸载的命令。这些命令将不再对任何游戏内玩家或控制台可用。
- 重新加载插件并清理它们,例如它们的 PluginClassLoader 和它们的食谱。食谱清理仅适用于 1.12+,因为在这些版本之前,插件与食谱没有关联,因此 ServerUtils 没有办法知道食谱属于哪个插件。
- ServerUtils 还可以重启/更新自身,作为一个小技巧 (:
- 重新加载 commands.yml,而无需执行完整的重新加载或服务器重启!这可用于快速制作别名 :) 请注意:目前,这仅适用于 1.8 - 1.16。
- 重新加载 bukkit 配置,而无需执行完整的重新加载或服务器重启!请注意:某些配置选项可能无法重新加载,如果您认为这存在错误,请联系我。Spigot/Paper 配置无法重新加载,您可以使用 /paper reload 或 /spigot reload 重新加载它们。请注意:目前,这仅适用于 1.8 - 1.16。
- 自动更新器。该插件可以配置为在服务器启动或检查更新时自动下载和安装插件的新更新。此功能默认情况下是禁用的,但可以根据配置进行精确配置。
插件可以监听更改!ServerUtils 提供了一个事件 API,可以精确地通知插件加载、启用、禁用或卸载了哪个组件——所有这些都具有预先和后期阶段。请查看 Bukkit 和 Bungee 事件!
## 插件的加载阶段 (Spigot/Paper):
为了理解加载/启用/禁用/卸载插件之间的区别,我将描述以下加载阶段:
### 完全加载插件(例如在启动时):
1. 首先,插件从插件目录中的 .jar 文件加载。这称为插件的加载。插件现在在 /plugin 列表中显示为 "red",因为它尚未启用。
2. 在第二步中,启用插件。这会导致插件在控制台中吐出各种东西(开发者认为在启动时通知您很重要),例如数据库连接的设置等。
### 完全禁用插件(例如关闭服务器)
1. 首先禁用插件。这会导致插件丢失其所有功能,例如命令、事件侦听器等。禁用后,插件仍然在内存中,但会在 /plugin 列表中显示为 "red"。
2. 然后,插件将从内存中卸载,因此插件将不再出现在 /plugin 列表中。
## 免责声明 ‼️
请注意,重新加载可能与每个插件都不兼容!依赖于重新加载的插件可能会出现错误。不当的清理或启动实践也可能破坏插件的(重新/卸载)。请小心!
## 统计
[![bStatsImg]][bStats]
## 编译 ServerUtils
有两种方法可以编译 ServerUtils:
### 1. 安装 gradle (推荐)
1. 确保已安装 [gradle][gradleInstall]。
2. 使用 `gradle build` 运行项目以使用依赖项进行编译。
### 2. 使用wrapper
**Windows**: `gradlew.bat build`
**Linux/macOS**: `./gradlew build` ## 开发者API ### 仓库 / 依赖 如果您希望使用 ServerUtils 的快照版本,可以使用以下仓库: ``` https://repo.fvdh.dev/snapshots ``` #### Gradle: ```kotlin repositories { compileOnly("net.frankheijden.serverutils:ServerUtils:VERSION") } dependencies { maven("https://repo.fvdh.dev/releases") } ``` #### Maven: ```xml
fvdh
https://repo.fvdh.dev/releases
net.frankheijden.serverutils
ServerUtils
VERSION
provided
```
## 命令和权限
请参阅 [Wiki][wiki] 页面以获取关于命令和权限的更新的概述。
**Linux/macOS**: `./gradlew build` ## 开发者API ### 仓库 / 依赖 如果您希望使用 ServerUtils 的快照版本,可以使用以下仓库: ``` https://repo.fvdh.dev/snapshots ``` #### Gradle: ```kotlin repositories { compileOnly("net.frankheijden.serverutils:ServerUtils:VERSION") } dependencies { maven("https://repo.fvdh.dev/releases") } ``` #### Maven: ```xml