轮盘结算信息使用图片发送

This commit is contained in:
HibiKier 2023-05-24 21:47:22 +08:00
parent 26db0fad85
commit f3eacbe639
3 changed files with 65 additions and 39 deletions

View File

@ -331,6 +331,10 @@ PS: **ARM平台** 请使用全量版 同时 **如果你的机器 RAM < 1G 可能
## 更新
### 2023/5/24
* 轮盘结算信息使用图片发送
### 2023/5/23
* 修复群聊数据无法初始化

View File

@ -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",
)
),
)

View File

@ -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)