Skip to content

7. 使用拓展的命令执行

SlimeNull edited this page Jun 8, 2023 · 1 revision

使用 EleCho.GoCqHttpSdk.CommandExecuting, 你可以轻松实现机器人的指令功能, 下面是一个基本示例, 定义自己的命令执行插件:

class MyCommandExecutePlugin : CqCommandExecutePostPlugin
{
    [Command]
    public int Add(int a, int b)
    {
        return a + b;
    }
}

然后调用 session 的 UseCommandExecutePlugin 方法使用插件, 于是你的机器人就拥有了指令识别功能, 它可以识别群聊或私聊以 / 开头的指令.

例如当有人发送 /add 114000 514 的时候, 上面的 Add 方法会被调用, 114000514 分别被传递到 ab 参数中, 得到返回值 114514, 机器人会将这个结果发送出来.

同时, 你可以使用 "选项", 例如以下的 toUpper 参数是一个可选的开关.

class MyCommandExecutePlugin : CqCommandExecutePostPlugin
{
    [Command]
    public string Echo(string text, bool toUpper)
    {
        if (toUpper)
            text = text.ToUpper();
        
        return text;
    }
}

同样, 使用一个命令执行插件, 使用 UseCommandExecutePlugin 方法即可:

session.UseCommandExecutePlugin(new MyCommandExecutePlugin(session));

执行时会有以下效果:

/echo "hello world"
hello world

/echo --to-upper "hello world"
HELLO WORLD
Clone this wiki locally