zhenxun_bot/plugins/self_message/__init__.py
2023-02-26 22:17:26 +08:00

91 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from datetime import datetime
from nonebot import on
from nonebot.adapters.onebot.v11 import (
Bot,
Event,
GroupMessageEvent,
PrivateMessageEvent,
)
from nonebot.message import handle_event
from configs.config import Config
from ._rule import rule
__zx_plugin_name__ = "自身消息触发 [Hidden]"
__plugin_version__ = 0.1
Config.add_plugin_config(
"self_message",
"STATUS",
False,
help_="允许真寻自身触发命令需要在go-cqhttp配置文件中report-self-message修改为true触发命令时需前缀cmd且受权限影响例如cmd签到",
default_value=False,
type=bool,
)
message_sent = on(
type="message_sent",
priority=999,
block=False,
rule=rule(),
)
@message_sent.handle()
async def handle_message_sent(bot: Bot, event: Event):
msg = getattr(event, "message", "")
self_id = event.self_id
user_id = getattr(event, "user_id", -1)
msg_id = getattr(event, "message_id", -1)
msg_type = getattr(event, "message_type")
if (
str(user_id) not in bot.config.superusers and self_id != user_id
) or not msg.lower().startswith("cmd"):
return
msg = msg[3:]
if msg_type == "group":
new_event = GroupMessageEvent.parse_obj(
{
"time": getattr(event, "time", int(datetime.now().timestamp())),
"self_id": self_id,
"user_id": user_id,
"message": msg,
"raw_message": getattr(event, "raw_message", ""),
"post_type": "message",
"sub_type": getattr(event, "sub_type", "normal"),
"group_id": getattr(event, "group_id", -1),
"message_type": getattr(event, "message_type", "group"),
"message_id": msg_id,
"font": getattr(event, "font", 0),
"sender": getattr(event, "sender", {"user_id": user_id}),
"to_me": True,
}
)
# await _check_reply(bot, new_event)
# _check_at_me(bot, new_event)
# _check_nickname(bot, new_event)
await handle_event(bot=bot, event=new_event)
elif msg_type == "private":
target_id = getattr(event, "target_id")
if target_id == user_id:
new_event = PrivateMessageEvent.parse_obj(
{
"time": getattr(event, "time", int(datetime.now().timestamp())),
"self_id": self_id,
"user_id": user_id,
"message": getattr(event, "message", ""),
"raw_message": getattr(event, "raw_message", ""),
"post_type": "message",
"sub_type": getattr(event, "sub_type"),
"message_type": msg_type,
"message_id": msg_id,
"font": getattr(event, "font", 0),
"sender": getattr(event, "sender"),
"to_me": True,
"target_id": target_id,
}
)
await handle_event(bot=bot, event=new_event)