NoneBot2插件——今日人品
參考:https://v2.nonebot.dev/api/plugin.html
on_command(cmd, rule=None, aliases=None, **kwargs)函數(shù)
- 說(shuō)明
注冊(cè)一個(gè)消息事件響應(yīng)器,并且當(dāng)消息以指定命令開(kāi)頭時(shí)響應(yīng)。
命令匹配規(guī)則參考: 命令形式匹配
-
參數(shù)
-
cmd: Union[str, Tuple[str, …]]: 指定命令內(nèi)容
-
rule: Optional[Union[Rule, T_RuleChecker]]: 事件響應(yīng)規(guī)則
-
aliases: Optional[Set[Union[str, Tuple[str, …]]]]: 命令別名
-
permission: Optional[Permission]: 事件響應(yīng)權(quán)限
-
handlers: Optional[List[Union[T_Handler, Handler]]]: 事件處理函數(shù)列表
-
temp: bool: 是否為臨時(shí)事件響應(yīng)器(僅執(zhí)行一次)
-
priority: int: 事件響應(yīng)器優(yōu)先級(jí)
-
block: bool: 是否阻止事件向更低優(yōu)先級(jí)傳遞
-
state: Optional[T_State]: 默認(rèn) state
-
state_factory: Optional[T_StateFactory]: 默認(rèn) state 的工廠函數(shù)
-
-
返回
-Type[Matcher]
__init__.py 文件
import random from datetime import date from nonebot.plugin import on_command, export from nonebot.adapters.cqhttp import Bot, Event from nonebot.adapters.cqhttp.message import Messageexport = export() export.name = '今日人品' export.usage = '''/jrrp'''def luck_simple(num):if num < 18:return '大吉'elif num < 53:return '吉'elif num < 58:return '半吉'elif num < 62:return '小吉'elif num < 65:return '末小吉'elif num < 71:return '末吉'else:return '兇'"""ON_COMMAND ON_COMMAND是MFC提供的宏,實(shí)現(xiàn)命令消息(如菜單、工具欄的選項(xiàng)消息)的消息響應(yīng)函數(shù)的注冊(cè)。 使用方法為ON_COMMAND(消息ID, 響應(yīng)函數(shù)名) 注冊(cè)了響應(yīng)函數(shù)之后,一旦主窗口接收到該命令消息,程序就會(huì)調(diào)用我們提供的消息響應(yīng)函數(shù)進(jìn)行處理""" jrrp = on_command('jrrp', priority=50) # 接收關(guān)鍵字 """ 在上方代碼中,我們注冊(cè)了一個(gè)事件響應(yīng)器 Matcher,它由幾個(gè)部分組成: on_command 注冊(cè)一個(gè)消息類型的命令處理器 "天氣" 指定 jrrp 參數(shù) - 命令名 rule 補(bǔ)充事件響應(yīng)器的匹配規(guī)則 priority 事件響應(yīng)器優(yōu)先級(jí) block 是否阻止事件傳遞 """"""handle() 簡(jiǎn)單的為事件響應(yīng)器添加一個(gè)事件處理函數(shù),這個(gè)函數(shù)將會(huì)在上一個(gè)處理函數(shù)正常返回執(zhí)行完畢后立即執(zhí)行。 """ @jrrp.handle() # 監(jiān)聽(tīng) jrrp async def jrrp_handle(bot: Bot, event: Event):rnd = random.Random()rnd.seed((int(date.today().strftime("%y%m%d")) * 45) * (int(event.get_user_id()) * 55))lucknum = rnd.randint(1, 100) # 1 到 100的數(shù)# 返回QQ號(hào), 發(fā)送消息await jrrp.finish(message=Message(f'[CQ:at,qq={event.get_user_id()}]您今日的幸運(yùn)指數(shù)是{lucknum}/100(越低越好),為"{luck_simple(lucknum)}"'))文件編寫完成后,存放在 plugins 目錄下。
調(diào)用結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的NoneBot2插件——今日人品的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: NoneBot2插件——打印系统状态
- 下一篇: NoneBot2插件——进群欢迎