zhenxun_bot/basic_plugins/shop/gold.py

58 lines
1.8 KiB
Python
Raw Normal View History

2021-06-15 10:57:08 +08:00
from nonebot import on_command
2022-06-05 19:51:23 +08:00
from nonebot.adapters.onebot.v11 import GroupMessageEvent, Message, ActionFailed
2022-02-19 18:20:19 +08:00
from nonebot.params import CommandArg
from nonebot.adapters.onebot.v11.permission import GROUP
2021-06-30 19:50:55 +08:00
from utils.data_utils import init_rank
2021-06-15 10:57:08 +08:00
from models.bag_user import BagUser
2022-06-05 19:51:23 +08:00
from utils.image_utils import text2image
2021-11-04 16:11:50 +08:00
from utils.message_builder import image
2022-02-19 18:20:19 +08:00
from utils.utils import is_number
2021-06-15 10:57:08 +08:00
2021-10-03 14:24:07 +08:00
__zx_plugin_name__ = "商店 - 我的金币"
__plugin_usage__ = """
usage
我的金币
指令
我的金币
""".strip()
__plugin_des__ = "商店 - 我的金币"
__plugin_cmd__ = ["我的金币"]
2021-11-04 16:11:50 +08:00
__plugin_type__ = ("商店",)
2021-10-03 14:24:07 +08:00
__plugin_version__ = 0.1
__plugin_author__ = "HibiKier"
__plugin_settings__ = {
"level": 5,
"default_status": True,
"limit_superuser": False,
"cmd": ["商店", "我的金币"],
}
2021-06-15 10:57:08 +08:00
my_gold = on_command("我的金币", priority=5, block=True, permission=GROUP)
2021-07-30 21:21:51 +08:00
gold_rank = on_command("金币排行", priority=5, block=True, permission=GROUP)
2021-06-15 10:57:08 +08:00
@my_gold.handle()
2022-02-19 18:20:19 +08:00
async def _(event: GroupMessageEvent):
2022-06-05 19:51:23 +08:00
msg = await BagUser.get_user_total_gold(event.user_id, event.group_id)
try:
await my_gold.send(msg)
except ActionFailed:
await my_gold.send(image(b64=(await text2image(msg, color="#f9f6f2", padding=10)).pic2bs4()))
2021-06-15 10:57:08 +08:00
@gold_rank.handle()
2022-02-19 18:20:19 +08:00
async def _(event: GroupMessageEvent, arg: Message = CommandArg()):
num = arg.extract_plain_text().strip()
2021-11-04 16:11:50 +08:00
if is_number(num) and 51 > int(num) > 10:
num = int(num)
else:
num = 10
2021-07-30 21:21:51 +08:00
all_users = await BagUser.get_all_users(event.group_id)
2021-08-04 15:19:45 +08:00
all_user_id = [user.user_qq for user in all_users]
2021-07-30 21:21:51 +08:00
all_user_data = [user.gold for user in all_users]
2021-11-04 16:11:50 +08:00
rank_image = await init_rank("金币排行", all_user_id, all_user_data, event.group_id, num)
if rank_image:
await gold_rank.finish(image(b64=rank_image.pic2bs4()))