服务器使用量
未统计
服务玩家数
未统计
下载量
9,711
插件详细介绍
Command Framework 是一个轻量级、基于注解的命令框架,灵感来源于 Bukkit 的事件系统。它无需在 plugin.yml 中注册命令,同时允许你直接在代码中定义用法、描述、权限、别名、发送者类型、冷却时间和参数限制。框架包含额外的辅助方法,以简化命令处理并提升代码可读性。
要求与依赖
- Java 版本: Java 21 或更高版本。
- Maven 依赖:
<dependency>
<groupId>dev.despical</groupId>
<artifactId>command-framework</artifactId>
<version>1.6.2</version>
</dependency>- Gradle 依赖:
dependencies {
implementation 'dev.despical:command-framework:1.6.2'
}快速开始
初始化框架
在你的主类中,启用时初始化框架并注册命令。
public class ExampleClass extends JavaPlugin {
@Override
public void onEnable() {
// 初始化框架
CommandFramework commandFramework = new CommandFramework(this);
// 注册所有带有 @Command 注解的方法
commandFramework.registerCommands(this);
}
}创建基础命令
使用 @Command 注解来定义一个命令。
@Command(
name = "example",
aliases = {"firstAlias", "secondAlias"},
permission = "example.permission",
desc = "向发送者发送一条示例消息",
usage = "/example",
min = 1,
max = 5
)
public void exampleCommand(CommandArguments arguments) {
arguments.sendMessage("这是使用框架创建示例命令的方法。");
}核心特性
命令参数处理
- 自定义参数转换器: 使用
CommandFramework#addCustomParameter方法注册自定义参数类型。 - 参数注解: 使用
@Param和@Default注解来灵活处理命令参数。
@Command(name = "customParams", min = 1)
public void customParamsCommand(CommandArguments arguments,
@Param("secondAsInt") @Default("50") int secondArg) {
arguments.sendMessage("第二个参数(整数)是: " + secondArg);
}高级功能注解
- 冷却时间: 使用
@Cooldown注解为命令添加冷却。 - 执行确认: 使用
@Confirmation注解要求用户二次确认。 - 标志与选项: 使用
@Flag和@Option注解来解析类似--flag或--option value的参数。 - 命令补全: 使用
@Completer注解为命令提供 Tab 补全列表。
使用示例
以下是一个综合示例,展示了多种功能
public class ExampleClass extends JavaPlugin {
@Override
public void onEnable() {
CommandFramework framework = new CommandFramework(this);
// 添加自定义参数处理器
framework.addCustomParameter("String", args -> args.getArgument(0));
framework.registerCommands(this);
}
@Command(name = "noParams")
public void commandWithoutParameters() {
Bukkit.getConsoleSender().sendMessage("此命令无需任何参数即可运行。");
}
@Command(name = "flag")
@Flag(value = "test", prefix = "--")
public void flagTest(CommandArguments arguments) {
arguments.sendMessage("Flag Present: " + arguments.isFlagPresent("test"));
}
@Completer(name = "example", aliases = {"firstAlias", "secondAlias"})
public List<String> exampleCommandCompletion() {
return Arrays.asList("first", "second", "third");
}
}更多信息与支持
示例插件
以下插件使用了 Command Framework,可供参考:
- King of the Ladder (开源)
- One in the Chamber (开源)
- TNT Run (开源)
- Whack Me
- Murder Mystery
- Pixel Painter
- Easter Eggs
- Carousel
- Item Upgrader
- Eat Everything
- Warden Party
- TNT Tag
- The Snake
如果你也在使用此框架并希望加入列表,可以随时联系作者。
支持开发
如果你喜欢这个框架,可以考虑 捐赠支持 开发工作。捐赠更像是一种鼓励,能有效加速开发进程。
版权声明 © 2025 Berke Akçen
测试支持版本
版本分布
基本信息
插件名称
Command Framework
作者
Despical
平台
Bukkit / Spigot
支持版本
1.7 - 1.21
点赞数
未统计
最近版本
暂无数据
-