ArcletProject / nonebot-plugin-alconna

强大的Nonebot2命令匹配拓展
MIT License
8 stars 0 forks source link

[Feature] 支持命令别名 #2

Closed MSDNicrosoft closed 1 year ago

MSDNicrosoft commented 1 year ago

请确认:

Feature

概要

on_alconna 支持命令的别名,就像 nonebot2 的 on_command 一样

注:这里的命令指的是根命令

我认为 on_alconna 要有 aliases 参数(可选):

from nonebot_plugin_alconna import on_alconna

matcher = on_alconna(
    Alconna(
    "一言"
    ),
    aliases={"hitokoto"}
)

...

具体应有的效果就是,对于以下命令,matcher 都可以响应:

RF-Tar-Railt commented 1 year ago

你现在可以进行如下选择以实现类似效果

  1. 传入headers
    
    from nonebot_plugin_alconna import on_alconna

matcher = on_alconna( Alconna( ["/一言", "/hitokoto"] ) ) ...

2. 主命令正则
```python
from nonebot_plugin_alconna import on_alconna

matcher = on_alconna(
    Alconna(
    ["/"],
    "(一言|hitokoto)"
    )
)
...
  1. 使用快捷命令
from nonebot_plugin_alconna import on_alconna

cmd = Alconna("/hitokoto")
cmd.shortcut("/一言", {"command": "/hitokoto"})
matcher = on_alconna(
    cmd
)
...
MSDNicrosoft commented 1 year ago

你现在可以进行如下选择以实现类似效果

  1. 传入headers
from nonebot_plugin_alconna import on_alconna

matcher = on_alconna(
  Alconna(
    ["/一言", "/hitokoto"]
  )
)
...

...

第一种方法,当 ALCONNA_USE_COMMAND_START=true 时,如下代码没有效果:

matcher = on_alconna(
    Alconna(
        ["一言", "hitokoto"]
    )
)

我的 COMMAND_START["!!"], 发送的消息是 !!一言!!hitokoto

RF-Tar-Railt commented 1 year ago

你现在可以进行如下选择以实现类似效果

  1. 传入headers

from nonebot_plugin_alconna import on_alconna

matcher = on_alconna(

    Alconna(

    ["/一言", "/hitokoto"]

    )

)

...

...

第一种方法,当 ALCONNA_USE_COMMAND_START=true 时,如下代码没有效果:


matcher = on_alconna(

    Alconna(

        ["一言", "hitokoto"]

    )

)

我的 COMMAND_START["!!"]

发送的消息是 !!一言!!hitokoto

那就使用第二种方式 命令传入的[...]与command_start是一类东西,alconna_use_command_start会把命令自己的headers替换掉

MSDNicrosoft commented 1 year ago

好的,我知道怎么做了。

RF-Tar-Railt commented 1 year ago

aliases也可以加

MSDNicrosoft commented 1 year ago

aliases也可以加

那行吧