mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 06:12:53 +08:00
允许真寻自身触发命令,提供配置项 self_message:STATUS
This commit is contained in:
parent
51dd622e20
commit
9454308ba7
@ -304,6 +304,7 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能
|
|||||||
* 修复epic报错,优化简介 [@pull/1226](https://github.com/HibiKier/zhenxun_bot/pull/1226)
|
* 修复epic报错,优化简介 [@pull/1226](https://github.com/HibiKier/zhenxun_bot/pull/1226)
|
||||||
* 修复词条在某些回答下出错
|
* 修复词条在某些回答下出错
|
||||||
* 原神黄历改为PIL
|
* 原神黄历改为PIL
|
||||||
|
* 允许真寻自身触发命令,提供配置项 `self_message:STATUS`
|
||||||
|
|
||||||
### 2022/12/27 \[v0.1.6.6]
|
### 2022/12/27 \[v0.1.6.6]
|
||||||
|
|
||||||
|
|||||||
85
plugins/self_message/__init__.py
Normal file
85
plugins/self_message/__init__.py
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from configs.config import Config
|
||||||
|
from nonebot import on
|
||||||
|
from nonebot.adapters.onebot.v11 import (Bot, Event, GroupMessageEvent,
|
||||||
|
PrivateMessageEvent)
|
||||||
|
from nonebot.message import handle_event
|
||||||
|
|
||||||
|
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,
|
||||||
|
)
|
||||||
|
|
||||||
|
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)
|
||||||
9
plugins/self_message/_rule.py
Normal file
9
plugins/self_message/_rule.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
from configs.config import Config
|
||||||
|
from nonebot.internal.rule import Rule
|
||||||
|
|
||||||
|
|
||||||
|
def rule() -> Rule:
|
||||||
|
async def _rule() -> bool:
|
||||||
|
return Config.get_config("self_message", "STATUS")
|
||||||
|
|
||||||
|
return Rule(_rule)
|
||||||
Loading…
Reference in New Issue
Block a user