diff options
Diffstat (limited to 'ATRI/plugins/chat/__init__.py')
-rw-r--r-- | ATRI/plugins/chat/__init__.py | 58 |
1 files changed, 14 insertions, 44 deletions
diff --git a/ATRI/plugins/chat/__init__.py b/ATRI/plugins/chat/__init__.py index f401f3f..217c71e 100644 --- a/ATRI/plugins/chat/__init__.py +++ b/ATRI/plugins/chat/__init__.py @@ -1,9 +1,9 @@ from random import choice -from nonebot.typing import T_State -from nonebot.adapters.cqhttp import Bot, MessageEvent +from nonebot.matcher import Matcher +from nonebot.params import ArgPlainText, CommandArg +from nonebot.adapters.onebot.v11 import Bot, MessageEvent, Message -from ATRI.utils import CoolqCodeChecker from ATRI.utils.limit import FreqLimiter from ATRI.utils.apscheduler import scheduler from .data_source import Chat @@ -17,7 +17,6 @@ chat = Chat().on_message("文爱", "闲聊(文爱") @chat.handle() async def _chat(bot: Bot, event: MessageEvent): - print(1) user_id = event.get_user_id() if not _chat_flmt.check(user_id): await chat.finish(_chat_flmt_notice) @@ -34,33 +33,20 @@ async def _chat(bot: Bot, event: MessageEvent): my_name_is = Chat().on_command("叫我", "更改闲聊(文爱)时的称呼", aliases={"我是"}, priority=1) -@my_name_is.args_parser # type: ignore -async def _get_name(bot: Bot, event: MessageEvent, state: T_State): - msg = str(event.message).strip() - quit_list = ["算了", "罢了", "取消"] - if msg in quit_list: - await my_name_is.finish("好吧...") - if not msg: - await my_name_is.reject("欧尼酱想让咱如何称呼呢!0w0") - else: - state["name"] = msg - - @my_name_is.handle() -async def _name(bot: Bot, event: MessageEvent, state: T_State): +async def _name(matcher: Matcher, event: MessageEvent, args: Message = CommandArg()): user_id = event.get_user_id() if not _chat_flmt.check(user_id): await my_name_is.finish(_chat_flmt_notice) - msg = str(event.message).strip() + msg = args.extract_plain_text() if msg: - state["name"] = msg + matcher.set_arg("name", args) @my_name_is.got("name", "欧尼酱想让咱如何称呼呢!0w0") -async def _deal_name(bot: Bot, event: MessageEvent, state: T_State): +async def _deal_name(event: MessageEvent, new_name: str = ArgPlainText("name")): user_id = event.get_user_id() - new_name = state["name"] repo = choice( [ f"好~w 那咱以后就称呼你为{new_name}!", @@ -77,37 +63,21 @@ async def _deal_name(bot: Bot, event: MessageEvent, state: T_State): say = Chat().on_command("说", "别人让我说啥就说啥(", priority=1) [email protected]_parser # type: ignore -async def _get_say(bot: Bot, event: MessageEvent, state: T_State): - msg = str(event.message).strip() - quit_list = ["算了", "罢了"] - if msg in quit_list: - await say.finish("好吧...") - if not msg: - await say.reject("阿!要咱说啥呢...") - else: - state["say"] = msg - - @say.handle() -async def _ready_say(bot: Bot, event: MessageEvent, state: T_State): +async def _ready_say( + matcher: Matcher, event: MessageEvent, args: Message = CommandArg() +): user_id = event.get_user_id() if not _chat_flmt.check(user_id): await say.finish(_chat_flmt_notice) - msg = str(event.message) + msg = args.extract_plain_text() if msg: - state["say"] = msg - + matcher.set_arg("say", args) [email protected]("say") -async def _deal_say(bot: Bot, event: MessageEvent, state: T_State): - msg = state["say"] - check = CoolqCodeChecker(msg).check - if not check: - repo = choice(["不要...", "这个咱不想复读!", "不可以", "不好!"]) - await say.finish(repo) [email protected]("say", "想要咱复读啥呢...") +async def _deal_say(event: MessageEvent, msg: str = ArgPlainText("say")): user_id = event.get_user_id() _chat_flmt.start_cd(user_id) await say.finish(msg) |