From f3eacbe639df5a0fd194b69227b0de0fa1532dca Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Wed, 24 May 2023 21:47:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BD=AE=E7=9B=98=E7=BB=93=E7=AE=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=BD=BF=E7=94=A8=E5=9B=BE=E7=89=87=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++ plugins/russian/__init__.py | 33 ++++++++++------- utils/manager/group_manager.py | 67 +++++++++++++++++++++------------- 3 files changed, 65 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index ca5dcad6..c348ef38 100644 --- a/README.md +++ b/README.md @@ -331,6 +331,10 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能 ## 更新 +### 2023/5/24 + +* 轮盘结算信息使用图片发送 + ### 2023/5/23 * 修复群聊数据无法初始化 diff --git a/plugins/russian/__init__.py b/plugins/russian/__init__.py index e4c16c41..5d3aa444 100755 --- a/plugins/russian/__init__.py +++ b/plugins/russian/__init__.py @@ -12,6 +12,7 @@ from configs.config import NICKNAME, Config from models.bag_user import BagUser from models.group_member_info import GroupInfoUser from services.log import logger +from utils.image_utils import text2image from utils.message_builder import at, image from utils.utils import get_message_at, is_number @@ -458,19 +459,25 @@ async def end_game(bot: Bot, event: GroupMessageEvent): rs_player[event.group_id] = {} await bot.send( event, - message=f"结算:\n" - f"\t胜者:{win_name}\n" - f"\t赢取金币:{money - fee}\n" - f"\t累计胜场:{win_user.win_count}\n" - f"\t累计赚取金币:{win_user.make_money}\n" - f"-------------------\n" - f"\t败者:{lose_name}\n" - f"\t输掉金币:{money}\n" - f"\t累计败场:{lose_user.fail_count}\n" - f"\t累计输掉金币:{lose_user.lose_money}\n" - f"-------------------\n" - f"哼哼,{NICKNAME}从中收取了 {float(rand)}%({fee}金币) 作为手续费!\n" - f"子弹排列:{bullet_str[:-1]}", + message=image( + await text2image( + f"结算:\n" + f"\t胜者:{win_name}\n" + f"\t赢取金币:{money - fee}\n" + f"\t累计胜场:{win_user.win_count}\n" + f"\t累计赚取金币:{win_user.make_money}\n" + f"-------------------\n" + f"\t败者:{lose_name}\n" + f"\t输掉金币:{money}\n" + f"\t累计败场:{lose_user.fail_count}\n" + f"\t累计输掉金币:{lose_user.lose_money}\n" + f"-------------------\n" + f"哼哼,{NICKNAME}从中收取了 {float(rand)}%({fee}金币) 作为手续费!\n" + f"子弹排列:{bullet_str[:-1]}", + padding=10, + color="#f9f6f2", + ) + ), ) diff --git a/utils/manager/group_manager.py b/utils/manager/group_manager.py index ccc15de3..c2b76d99 100644 --- a/utils/manager/group_manager.py +++ b/utils/manager/group_manager.py @@ -91,7 +91,9 @@ class GroupManager(StaticData[BaseData]): def get_data(self) -> BaseData: return copy.deepcopy(self._data) - def block_plugin(self, module: str, group_id: str, is_save: bool = True): + def block_plugin( + self, module: str, group_id: Union[str, int], is_save: bool = True + ): """ 说明: 锁定插件 @@ -102,7 +104,9 @@ class GroupManager(StaticData[BaseData]): """ self._set_plugin_status(module, "block", group_id, is_save) - def unblock_plugin(self, module: str, group_id: str, is_save: bool = True): + def unblock_plugin( + self, module: str, group_id: Union[str, int], is_save: bool = True + ): """ 说明: 解锁插件 @@ -113,7 +117,7 @@ class GroupManager(StaticData[BaseData]): """ self._set_plugin_status(module, "unblock", group_id, is_save) - def turn_on_group_bot_status(self, group_id: str): + def turn_on_group_bot_status(self, group_id: Union[str, int]): """ 说明: 开启群bot开关 @@ -122,7 +126,7 @@ class GroupManager(StaticData[BaseData]): """ self._set_group_bot_status(group_id, True) - def shutdown_group_bot_status(self, group_id: str): + def shutdown_group_bot_status(self, group_id: Union[str, int]): """ 说明: 关闭群bot开关 @@ -132,17 +136,17 @@ class GroupManager(StaticData[BaseData]): self._set_group_bot_status(group_id, False) @init_group - def check_group_bot_status(self, group_id: str) -> bool: + def check_group_bot_status(self, group_id: Union[str, int]) -> bool: """ 说明: 检查群聊bot总开关状态 参数: :param group_id: 说明 """ - return self._data.group_manager[group_id].status + return self._data.group_manager[str(group_id)].status @init_group - def set_group_level(self, group_id: str, level: int): + def set_group_level(self, group_id: Union[str, int], level: int): """ 说明: 设置群权限 @@ -150,11 +154,11 @@ class GroupManager(StaticData[BaseData]): :param group_id: 群组 :param level: 权限等级 """ - self._data.group_manager[group_id].level = level + self._data.group_manager[str(group_id)].level = level self.save() @init_group - def get_plugin_status(self, module: str, group_id: str) -> bool: + def get_plugin_status(self, module: str, group_id: Union[str, int]) -> bool: """ 说明: 获取插件状态 @@ -164,7 +168,7 @@ class GroupManager(StaticData[BaseData]): """ return module not in self._data.group_manager[str(group_id)].close_plugins - def get_plugin_super_status(self, module: str, group_id: str) -> bool: + def get_plugin_super_status(self, module: str, group_id: Union[str, int]) -> bool: """ 说明: 获取插件是否被超级用户关闭 @@ -172,44 +176,49 @@ class GroupManager(StaticData[BaseData]): :param module: 功能模块名 :param group_id: 群组 """ - return f"{module}:super" not in self._data.group_manager[group_id].close_plugins + return ( + f"{module}:super" + not in self._data.group_manager[str(group_id)].close_plugins + ) @init_group - def get_group_level(self, group_id: str) -> int: + def get_group_level(self, group_id: Union[str, int]) -> int: """ 说明: 获取群等级 参数: :param group_id: 群号 """ - return self._data.group_manager[group_id].level + return self._data.group_manager[str(group_id)].level - def check_group_is_white(self, group_id: str) -> bool: + def check_group_is_white(self, group_id: Union[str, int]) -> bool: """ 说明: 检测群聊是否在白名单 参数: :param group_id: 群号 """ - return group_id in self._data.white_group + return str(group_id) in self._data.white_group - def add_group_white_list(self, group_id: str): + def add_group_white_list(self, group_id: Union[str, int]): """ 说明: 将群聊加入白名单 参数: :param group_id: 群号 """ + group_id = str(group_id) if group_id not in self._data.white_group: self._data.white_group.append(group_id) - def delete_group_white_list(self, group_id: str): + def delete_group_white_list(self, group_id: Union[str, int]): """ 说明: 将群聊从白名单中删除 参数: :param group_id: 群号 """ + group_id = str(group_id) if group_id in self._data.white_group: self._data.white_group.remove(group_id) @@ -238,18 +247,19 @@ class GroupManager(StaticData[BaseData]): pass @init_group - def delete_group(self, group_id: str): + def delete_group(self, group_id: Union[str, int]): """ 说明: 删除群配置 参数: :param group_id: 群号 """ + group_id = str(group_id) if group_id in self._data.white_group: self._data.white_group.remove(group_id) self.save() - def open_group_task(self, group_id: str, task: str): + def open_group_task(self, group_id: Union[str, int], task: str): """ 说明: 开启群被动技能 @@ -279,7 +289,7 @@ class GroupManager(StaticData[BaseData]): if task in self._data.close_task: self._data.close_task.remove(task) - def close_group_task(self, group_id: str, task: str): + def close_group_task(self, group_id: Union[str, int], task: str): """ 说明: 关闭群被动技能 @@ -305,7 +315,7 @@ class GroupManager(StaticData[BaseData]): @init_group @init_task - def check_group_task_status(self, group_id: str, task: str) -> bool: + def check_group_task_status(self, group_id: Union[str, int], task: str) -> bool: """ 说明: 查看群被动技能状态 @@ -313,7 +323,9 @@ class GroupManager(StaticData[BaseData]): :param group_id: 群号 :param task: 被动技能名称 """ - return self._data.group_manager[group_id].group_task_status.get(task, False) + return self._data.group_manager[str(group_id)].group_task_status.get( + task, False + ) def check_task_super_status(self, task: str) -> bool: """ @@ -333,7 +345,7 @@ class GroupManager(StaticData[BaseData]): @init_group @init_task - def group_group_task_status(self, group_id: str) -> str: + def group_group_task_status(self, group_id: Union[str, int]) -> str: """ 说明: 查看群被全部动技能状态 @@ -341,13 +353,16 @@ class GroupManager(StaticData[BaseData]): :param group_id: 群号 """ x = "[群被动技能]:\n" + group_id = str(group_id) for key in self._data.group_manager[group_id].group_task_status.keys(): x += f'{self._data.task[key]}:{"√" if self.check_group_task_status(group_id, key) else "×"}\n' return x[:-1] @init_group @init_task - def _set_group_group_task_status(self, group_id: str, task: str, status: bool): + def _set_group_group_task_status( + self, group_id: Union[str, int], task: str, status: bool + ): """ 说明: 管理群被动技能状态 @@ -361,7 +376,7 @@ class GroupManager(StaticData[BaseData]): @init_group def _set_plugin_status( - self, module: str, status: str, group_id: str, is_save: bool + self, module: str, status: str, group_id: Union[str, int], is_save: bool ): """ 说明: @@ -372,7 +387,7 @@ class GroupManager(StaticData[BaseData]): :param group_id: 群组 :param is_save: 是否保存 """ - group_id = str(group_id) if group_id else group_id + group_id = str(group_id) if status == "block": if module not in self._data.group_manager[group_id].close_plugins: self._data.group_manager[group_id].close_plugins.append(module)