nonebot2聊天机器人插件1:基础应答print


该插件涉及知识点:无
插件合集:nonebot2聊天机器人插件

该系列为用于QQ群聊天机器人的nonebot2相关插件,不保证完全符合标准规范写法,如有差错和改进余地,欢迎大佬指点修正。
前端:nonebot2
后端:go-cqhttp
插件所用语言:python3
前置环境安装过程建议参考零基础2分钟教你搭建QQ机器人——基于nonebot2,但是请注意该教程中的后端版本过旧导致私聊发图异常,需要手动更新go-cqhttp版本。

1. 插件用途

nonebot2在安装完之后,自带一个echo命令用于让机器人复述自己的话语,但是这个命令是所有人都可以使用的,在实际使用中并不希望所有人都可以用这个指令让机器人说出自己希望它说的话。
bot.py文件中删除或注释nonebot.load_builtin_plugins(),从而阻止加载自带内置命令,然后重新书写一个只有机器人管理员才可以使用的命令,并且采用print下达命令。
以该插件的写法展示基础的应答与信息文本获取操作。

2. 目录结构

由于功能单一简单,因此无需建立文件夹,在plugins文件夹中新建一个单一文件printer.py即可。

3. 实现难点与解决方案

该插件无实现难点

4. 代码实现

printer.py

from nonebot import on_command
from nonebot.rule import to_me
from nonebot.typing import T_State
from nonebot.adapters import Bot, Event
from nonebot.permission import SUPERUSER

__plugin_name__ = 'print'
__plugin_usage__ = '用法: print管理员给出的话语,测试机器人是否工作。'

# on_command()为针对命令型事件的响应,即以配置的命令前缀为开头的语句
# permission设置为该命令只对bot管理员响应,rule设置为只有私聊或者直接艾特bot时才会生效,priority设置执行优先级为10
printer = on_command("print", permission=SUPERUSER, rule=to_me(), priority=10)


# 具体响应逻辑部分
@printer.handle()
async def handle_first_receive(bot: Bot, event: Event, state: T_State):
    # 获取去除了命令前缀后的信息,并且用strip()去除前后的空格与换行符
    msg = str(event.get_message()).strip()
    # finish会向信息来源发回作为参数的字符串,并且在执行后结束响应
    # 如果希望发送后继续执行代码,应该将finish改为send
    await printer.finish(msg)

5. 插件配图

该插件无配图

6. 实际效果

在这里插入图片描述

7. 下一个插件

nonebot2聊天机器人插件2:调色盘palette

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值