代码都在 plugin/Template 包中
引言:我已经预先创建一些会用的方法,希望大家能够都走这些方法做相同的事务,方便未来进行进一步的详细操纵
import re
from core import bot, config, bot_cfg
from mirai import GroupMessage, Plain, FriendMessage
# 用正则来匹配指令,正则表达式模块( re )当然是必须需导入的
# 一般来说,Plain 是必选 , GroupMessage 和 FriendMessage 依据你的插件触发情况是群聊还是私聊再选择导入
# bot 是必须导入的, config 和 bot_cfg 是可选
# config 是系统配置文件,有 指令前缀、黑白名单 等等
# bot_cfg 是机器人的配置,比如 QQ号、昵称 等等数据
# 还可以import其他的模块,比如 工具类,sqlite3,asyncio,time,math 等等
async def asy_hello():
"""
这是一个异步方法,当你进行异步请求时,定义方法需要加上 async , 在使用时需要加上 await
Returns:
"""
# 网络请求都是异步的,大多数方法都不需要写成异步
return "执行了异步方法 HELLOWORLD!"
def common_hello():
"""
这是普通的方法
Returns:
"""
return "hello world"
def readfile(path):
"""
稍微复杂一些的方法
目的是读取文件
Args:
path: 文件路径
Returns: 文件读取结果
"""
# 引入我封装好的方法 - 读取文件
from utils.cfg_loader import read_file
data = read_file(path)
print(data)
return data
import re
from core import bot, bot_cfg
from mirai import GroupMessage, Plain, FriendMessage
from utils.MessageChainBuilder import *
from utils.MessageChainSender import *
@bot.on(GroupMessage) # 当群聊事件发生时
async def helloworld(event: GroupMessage):
"""
定义一个群聊方法
@param event: 群聊事件
"""
msg = "".join(map(str, event.message_chain[Plain])) # 获取消息的文本内容
m = re.match(fr"^你好$", msg.strip()) # 用正则进行匹配指令
if m:
# 如果匹配指令,执行方法
# do()
# 调用异步方法
# msg = await asy_hello()
# 普通方法调用
# msg = common_hello()
# 创建一个消息链对象
# 方法①
messagechain = await messagechain_builder(text="你好")
# 方法②
messagechain = await MessageChainBuilder().addText("你好").build()
# 最后发送消息链
await messagechain_sender(event=event,msg=messagechain)
@bot.on(FriendMessage) # 当私聊事件发生时
async def helloworld(event: FriendMessage):
"""
定义一个私聊方法
@param event: 私聊事件
"""
msg = "".join(map(str, event.message_chain[Plain])) # 获取消息的文本内容
m = re.match(fr"^你好$", msg.strip()) # 用正则进行匹配指令
if m:
# 如果匹配指令,执行方法
# do()
# 调用异步方法
# msg = await asy_hello()
# 普通方法调用
# msg = common_hello()
# from utils.MessageChainBuilder import messagechain_builder
# 最后让机器人发信息,给出反馈,可以用utils.MessageChainBuilder包的 messagechain_builder(text=msg) 方法来快速构造一个消息链
# await bot.send(event, f'私聊成功! This is {bot_cfg.get("nickname")}')
# 私聊方法和群聊一样
return
在目录的文件下, 创建一个名为 __init__.py
的文件
再用编辑器打开__init__.py
(可用 记事本 / Notepad / 推荐VScode)
# 当你的插件都编写好后
# 把你写的插件文件,按照 plugin.包名.文件名 的形式引入
# 将下面的 'Template' 重命名为你文件夹的名字
# 将文件夹中除了 '__init__.py' 以外全部的python文件全部导入
# from plugin.Template.file_init import *
# from plugin.Template.helloworld import *
- 可以编写一个`file_init.py`文件,用来初始化所有配置
- 确定没有问题了,可以上传至群文件共享