Command Framework

Command Framework - 命令框架

一个轻量级、基于注解的命令框架。
Bukkit / Spigot 作者 Despical 支持版本 1.7 - 1.21
服务器使用量
未统计
服务玩家数
未统计
下载量
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");
    }
}

更多信息与支持

  • 详细文档: 请访问 文档网站 获取完整指南。
  • API 参考: 可浏览 Javadoc
  • 问题反馈: 使用相关疑问请提交至 GitHub 仓库
  • Discord 社区: 加入 Discord 进行交流。

示例插件

以下插件使用了 Command Framework,可供参考:

如果你也在使用此框架并希望加入列表,可以随时联系作者。

支持开发

如果你喜欢这个框架,可以考虑 捐赠支持 开发工作。捐赠更像是一种鼓励,能有效加速开发进程。

版权声明 © 2025 Berke Akçen

测试支持版本
1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.20.6 1.21
版本分布
基本信息
插件名称 Command Framework
作者 Despical
平台 Bukkit / Spigot
支持版本 1.7 - 1.21
点赞数 未统计
最近版本
暂无数据 -

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:2,664,567  |  历史访问人次:3,229,676

今日访问人数:9,761  |  今日访问人次:10,654

昨日访问人数:30,655  |  昨日访问人次:36,381

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6