baiqwerdvd a88e96e513
update
2024-09-18 15:51:52 +08:00

47 lines
1.4 KiB
Python

from typing import TYPE_CHECKING
from gsuid_core.sv import SV
from gsuid_core.utils.database.api import get_uid
from gsuid_core.utils.database.models import GsBind
from gsuid_core.utils.error_reply import get_error
from ..utils.error_reply import UID_HINT
from ..utils.mys_api import mys_api
from ..utils.name_covert import (
alias_to_char_name,
name_to_avatar_id,
)
from ..utils.sr_prefix import PREFIX
if TYPE_CHECKING:
from gsuid_core.bot import Bot
from gsuid_core.models import Event
sv_char_calc = SV("sr养成计算")
@sv_char_calc.on_command(f"{PREFIX}养成计算", block=True)
async def send_char_calc_info(bot: "Bot", ev: "Event"):
name = ev.text.strip()
char_id = await name_to_avatar_id(name)
if char_id == "":
result_fake_name = await alias_to_char_name(name)
if result_fake_name is None:
return "请输入正确的角色名"
fake_name = result_fake_name
char_id = await name_to_avatar_id(fake_name)
uid = await get_uid(bot, ev, GsBind, "sr")
if uid is None:
return await bot.send(UID_HINT)
avatar_detail = await mys_api.get_avatar_detail(uid, str(char_id))
if isinstance(avatar_detail, int):
return get_error(avatar_detail)
avatar_skills = avatar_detail.skills + avatar_detail.skills_other
skill_list = []
for skill in avatar_skills:
skill_list.append(f"{skill.point_id}({skill.cur_level}/{skill.max_level})")
return None