diff options
author | Kyomotoi <[email protected]> | 2021-09-04 22:45:23 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2021-09-04 22:45:23 +0800 |
commit | 0d63d6846c28c11873f15d1be704e3f77ef1c770 (patch) | |
tree | 3ec10f441e608f7d30357910e7a77e56f6cfebc8 | |
parent | b91bb2c0ccce4443c1cfe6b7de5ba33439ca6cf2 (diff) | |
download | ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.tar.gz ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.tar.bz2 ATRI-0d63d6846c28c11873f15d1be704e3f77ef1c770.zip |
✨🎨 更新新功能
- 对 贴贴 增加开关
- 修复 老婆,目前已可以正常使用
-rw-r--r-- | ATRI/plugins/wife/__init__.py | 85 |
1 files changed, 70 insertions, 15 deletions
diff --git a/ATRI/plugins/wife/__init__.py b/ATRI/plugins/wife/__init__.py index 7773057..493c9ca 100644 --- a/ATRI/plugins/wife/__init__.py +++ b/ATRI/plugins/wife/__init__.py @@ -2,8 +2,8 @@ import asyncio from random import choice from pydantic import BaseModel -from nonebot.permission import USER from nonebot.rule import Rule +from nonebot.typing import T_State from nonebot.permission import SUPERUSER from nonebot.adapters.cqhttp import Bot, MessageEvent, GroupMessageEvent, Message @@ -12,15 +12,19 @@ from .data_source import Wife _tietie_flmt = FreqLimiter(600) +_is_tietie = True tietie_superuser = Wife().on_message( - "只与维护者贴贴w", rule=Rule(), permission=SUPERUSER, block=False + "只与维护者贴贴w,‘不可以贴’以拒绝贴贴~,‘来贴贴’以接受贴贴~", rule=Rule(), permission=SUPERUSER, block=False ) @tietie_superuser.handle() async def _tietie_superuser(bot: Bot, event: MessageEvent): + if not _is_tietie: + await tietie_superuser.finish() + user_id = event.get_user_id() if not _tietie_flmt.check(user_id): await tietie_superuser.finish() @@ -30,6 +34,30 @@ async def _tietie_superuser(bot: Bot, event: MessageEvent): await tietie_superuser.finish(Message(result)) +no_tietie = Wife().on_command( + "不可以贴", docs="拒绝贴贴", rule=Rule(), permission=SUPERUSER, block=False +) + + +@no_tietie.handle() +async def _no_tietie(bot: Bot, event: MessageEvent): + global _is_tietie + _is_tietie = False + await no_tietie.finish("好吧...") + + +yes_tietie = Wife().on_command( + "来贴贴", docs="继续贴贴", rule=Rule(), permission=SUPERUSER, block=False +) + + +@yes_tietie.handle() +async def _yes_tietie(bot: Bot, event: MessageEvent): + global _is_tietie + _is_tietie = True + await yes_tietie.finish("好欸!") + + _wife_flmt = FreqLimiter(10) @@ -48,15 +76,23 @@ async def _get_wife(bot: Bot, event: GroupMessageEvent): if not _wife_flmt.check(user_id): await get_wife.finish() + data = Wife().load_marry_list() + if user_id in data: + await get_wife.finish("你已经有对象了哦~(") + group_id = event.group_id req_user_info: dict = await bot.get_group_member_info( group_id=group_id, user_id=int(user_id) ) + req_user_card = req_user_info["card"] + if not req_user_card: + req_user_card = req_user_info["nickname"] + req_user_sex = req_user_info["sex"] is_nick = "老公" if req_user_sex == "male" else "老婆" - repo_0 = "现在咱将随机抽取一位幸运裙友\n" f"成为{req_user_card}的{is_nick}!" + repo_0 = f"现在咱将随机抽取一位幸运裙友\n成为{req_user_card}的{is_nick}!" await bot.send(event, repo_0) await asyncio.sleep(10) @@ -68,10 +104,14 @@ async def _get_wife(bot: Bot, event: GroupMessageEvent): group_id=group_id, user_id=lucky_user ) lucky_user_card = lucky_user_info["card"] + if not lucky_user_card: + lucky_user_card = lucky_user_info["nickname"] + lucky_user_sex = lucky_user_info["sex"] - data = Wife().load_marry_list() - data[lucky_user] = MarryInfo(name=req_user_card, sex=is_nick, wife=user_id).dict() + data[str(lucky_user)] = MarryInfo( + name=req_user_card, sex=is_nick, wife=user_id + ).dict() data[user_id] = MarryInfo( name=lucky_user_card, sex=lucky_user_sex, wife=lucky_user ).dict() @@ -85,9 +125,7 @@ async def _get_wife(bot: Bot, event: GroupMessageEvent): _call_wife_flmt = FreqLimiter(60) -call_wife = Wife().on_command( - "老婆", "呼唤老婆/老公!", aliases={"老公", "老婆!", "老公!"}, permission=USER("114514") -) +call_wife = Wife().on_command("老婆", "呼唤老婆/老公!", aliases={"老公", "老婆!", "老公!"}) @call_wife.handle() @@ -100,7 +138,7 @@ async def _call_wife(bot: Bot, event: MessageEvent): if user_id not in data: return - wife = data[user_id].get("wife", "ignore") + wife = data[user_id].get("name", "ignore") sex = data[user_id].get("sex", "male") is_nick = "老公" if sex == "male" else "老婆" repo = f"你已经有{is_nick}啦!是{wife}噢~" @@ -112,26 +150,43 @@ discard_wife = Wife().on_command("我要离婚", "离婚!") @discard_wife.handle() -async def _discard_wife(bot: Bot, event: GroupMessageEvent): +async def _discard_wife(bot: Bot, event: GroupMessageEvent, state: T_State): user_id = event.get_user_id() if not _wife_flmt.check(user_id): await discard_wife.finish() - await bot.send(event, "真的吗...(y/是)") + data = Wife().load_marry_list() + if user_id not in data: + await discard_wife.finish("你还没对象呐...") + msg = str(event.message).strip() + if msg: + state["is_disc"] = msg + + +@discard_wife.got("is_disc", "真的吗...(y/是)") +async def _deal_discard(bot: Bot, event: GroupMessageEvent, state: T_State): + msg = state["is_disc"] rd_list = ["y", "Y", "是", "确认", "对"] - if msg not in rd_list: - await discard_wife.finish("") + user_id = event.get_user_id() group_id = event.group_id + if msg not in rd_list: + user_info = await bot.get_group_member_info( + group_id=group_id, user_id=int(user_id) + ) + user_nickname = user_info["card"] + if not user_nickname: + user_nickname = user_info["nickname"] + + await discard_wife.finish(f"{user_nickname} 回心转意了!") + group_info: dict = await bot.get_group_member_info( group_id=group_id, user_id=int(user_id) ) user_card = group_info.get("card", "老婆") data = Wife().load_marry_list() - if user_id not in data: - await discard_wife.finish("你还没对象呐...") discard_user_info = data[user_id] discard_user_card = discard_user_info["name"] |