mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2025-04-12 23:29:37 +08:00
✨ 材料地图
资源需要手动生成以避免内存较小的机器启动卡死
This commit is contained in:
parent
de1b55cc39
commit
eb845978f4
@ -6,9 +6,10 @@ from nonebot.adapters.onebot.v11.helpers import HandleCancellation
|
||||
from nonebot.adapters.onebot.v11.exception import ActionFailed
|
||||
from nonebot.params import RegexDict, ArgPlainText, CommandArg, Arg
|
||||
from nonebot.plugin import PluginMetadata
|
||||
from nonebot.permission import SUPERUSER
|
||||
from nonebot.typing import T_State
|
||||
|
||||
from LittlePaimon import NICKNAME, DRIVER
|
||||
from LittlePaimon import NICKNAME
|
||||
from LittlePaimon.utils.alias import get_match_alias
|
||||
from LittlePaimon.utils.tool import freq_limiter
|
||||
from LittlePaimon.utils.message import MessageBuild
|
||||
@ -61,6 +62,12 @@ material_map_full = on_command('材料地图', priority=11, block=True, state={
|
||||
'pm_usage': '材料地图<材料名列表>[地图]',
|
||||
'pm_priority': 10
|
||||
})
|
||||
generate_map = on_command('生成地图', priority=1, block=True, permission=SUPERUSER, state={
|
||||
'pm_name': '生成地图',
|
||||
'pm_description': '生成材料图鉴等所需要的地图资源,仅超级用户可用。',
|
||||
'pm_usage': '生成地图',
|
||||
'pm_priority': 11
|
||||
})
|
||||
|
||||
|
||||
# abyss_rate = on_command('syrate', aliases={'深渊登场率', '深境螺旋登场率', '深渊登场率排行', '深渊排行'}, priority=11, block=True, state={
|
||||
@ -166,7 +173,11 @@ async def _(event: MessageEvent, map_: str = Arg('map'), names=Arg('names')):
|
||||
await material_map_full.finish(result, at_sender=True)
|
||||
|
||||
|
||||
DRIVER.on_bot_connect(init_map)
|
||||
@generate_map.handle()
|
||||
async def _(event: MessageEvent):
|
||||
await generate_map.send('开始生成地图资源,这可能需要较长时间。')
|
||||
result = await init_map()
|
||||
await generate_map.finish(result)
|
||||
|
||||
|
||||
def create_wiki_matcher(pattern: str, help_fun: str, help_name: str):
|
||||
|
@ -47,6 +47,7 @@ async def init_map(refresh: bool = False):
|
||||
map_img.paste(anchor_icon, (int(point.x) - 32, int(point.y) - 64), anchor_icon)
|
||||
map_img.save(save_path)
|
||||
logger.info('原神地图', f'<m>{map_name[map_id.name]}</m>地图初始化完成')
|
||||
return f'地图资源生成完成,目前有{"、".join(list(map_name_reverse.keys()))}地图。'
|
||||
|
||||
|
||||
async def draw_map(name: str, map_: str):
|
||||
@ -57,6 +58,8 @@ async def draw_map(name: str, map_: str):
|
||||
:return: 地图
|
||||
"""
|
||||
map_id = models.MapID[map_name_reverse[map_]]
|
||||
if not (RESOURCE_BASE_PATH / 'genshin_map' / 'results' / f'{map_id.name}.png').exists():
|
||||
return f'缺少{map_id.name}地图资源,请联系超级用户进行[生成地图]'
|
||||
maps = await request.get_maps(map_id)
|
||||
labels = await request.get_labels(map_id)
|
||||
if resources := list(filter(lambda x: x.name == name, [child for label in labels for child in label.children])):
|
||||
@ -113,6 +116,8 @@ async def draw_map(name: str, map_: str):
|
||||
|
||||
async def get_full_map(names: List[str], map_: str):
|
||||
map_id = models.MapID[map_name_reverse[map_]]
|
||||
if not (RESOURCE_BASE_PATH / 'genshin_map' / 'results' / f'{map_id.name}.png').exists():
|
||||
return f'缺少{map_id.name}地图资源,请联系超级用户进行[生成地图]'
|
||||
maps = await request.get_maps(map_id)
|
||||
labels = await request.get_labels(map_id)
|
||||
resources = []
|
||||
|
Loading…
x
Reference in New Issue
Block a user