本项目已从 CommandAPI 迁移到 Cloud 命令框架。如果您遇到与命令系统相关的问题,请参考新的文档。
- 跨平台支持:支持 Paper、Velocity、Fabric 等多个平台
- 注解驱动:使用注解方式编写命令,更加简洁
- 类型安全:提供完整的类型安全保障
- 自动补全:内置强大的自动补全系统
- i18n 集成:与项目的国际化系统深度集成
如果您有使用 CommandAPI 的旧代码,请按以下步骤迁移:
- 移除 CommandAPI 依赖
- 添加 Cloud 框架依赖
- 重写命令类使用注解
- 更新 plugin.yml(不再需要 CommandAPI 依赖)
详细迁移指南请参考:命令系统详解
如果您的插件仍在使用 CommandAPI 并遇到问题:
如果您在运行使用 CommandAPI 的插件时遇到以下错误:
java.lang.NoClassDefFoundError: dev/jorel/commandapi/CommandAPICommand
这表示 CommandAPI 依赖配置不正确。
首先,确保您的服务器上安装了 CommandAPI 插件:
- 从 CommandAPI GitHub Releases 下载最新版本的
CommandAPI-XXX.jar - 将下载的 jar 文件放入服务器的
plugins文件夹 - 重启服务器
所有使用 CommandAPI 的插件都必须在 plugin.yml 中声明对 CommandAPI 的依赖。
注意:以下插件信息仅适用于尚未迁移到 Cloud 框架的旧版本插件。
在插件的 build.gradle.kts 中:
// 配置插件元数据
tasks.processResources {
val pluginProperties = mapOf(
"version" to project.version,
"group" to project.group,
"name" to "YourPlugin",
"main" to "your.package.YourPlugin",
"apiVersion" to "1.20",
"description" to project.description,
"website" to "https://newnan.city",
"authors" to listOf("Sttot", "NSrank", "AI"),
"prefix" to "YourPlugin",
"load" to "STARTUP",
"depend" to listOf("CommandAPI"), // 重要:声明 CommandAPI 依赖
"softdepend" to emptyList<String>(),
"loadbefore" to emptyList<String>()
)
// ... 其余配置
}生成的 plugin.yml 将包含:
name: YourPlugin
version: 2.0.0
main: your.package.YourPlugin
api-version: 1.20
depend: [CommandAPI]在开发环境中,确保正确添加了 CommandAPI 依赖:
dependencies {
// CommandAPI 核心
compileOnly("dev.jorel:commandapi-bukkit-core:10.0.1")
// 如果使用 Kotlin DSL
compileOnly("dev.jorel:commandapi-bukkit-kotlin:10.0.1")
}重新构建并部署插件后,检查服务器日志:
- CommandAPI 插件应该在您的插件之前加载
- 您的插件应该成功加载,没有
NoClassDefFoundError
A: CommandAPI 使用插件架构,需要在服务器上安装 CommandAPI 插件来提供运行时支持。
A: 不推荐。CommandAPI 设计为独立插件,多个插件可以共享同一个 CommandAPI 实例。
A: 在服务器控制台运行 /plugins 命令,应该看到 CommandAPI 在插件列表中。
新的命令系统(推荐):
CommandAPI(仅供参考):
建议:对于新项目,强烈推荐使用 Cloud 命令框架而不是 CommandAPI。