import fs from 'fs'; import { getRoleImage, getSmallSquareAvatar, getSquareAvatar, getSuitImage, getWeaponImage, } from '../../lib/download.js'; import { char } from '../../lib/convert.js'; import { getAllEquipID } from '../../lib/convert/equip.js'; import { getAllWeaponID } from '../../lib/convert/weapon.js'; import { imageResourcesPath } from '../../lib/path.js'; export async function downloadAll() { if (!this.e.isMaster) return false; const charIDs = char.getAllCharactersID(); const equipSprites = getAllEquipID(); const weaponSprites = getAllWeaponID(); const result = { char: { success: 0, failed: 0, total: charIDs.length, }, charSmallSquare: { success: 0, failed: 0, total: charIDs.length, }, charSquare: { success: 0, failed: 0, total: charIDs.length, }, equip: { success: 0, failed: 0, total: equipSprites.length, }, weapon: { success: 0, failed: 0, total: weaponSprites.length, }, }; await this.reply( '开始下载资源,注意,仅支持下载面板的角色图、武器图、套装图,以及角色卡片的角色头像图。暂不支持下载邦布头像。', false, { at: true, recallMsg: 100 } ); for (const id of charIDs) { try { await getSquareAvatar(id); result.charSquare.success++; } catch (error) { logger.error('getSquareAvatar', id, error); result.charSquare.failed++; } try { await getSmallSquareAvatar(id); result.charSmallSquare.success++; } catch (error) { logger.error('getSmallSquareAvatar', id, error); result.charSmallSquare.failed++; } try { await getRoleImage(id); result.char.success++; } catch (error) { logger.error('getRoleImage', id, error); result.char.failed++; } } for (const sprite of equipSprites) { try { await getSuitImage(sprite); result.equip.success++; } catch (error) { logger.error('getSuitImage', sprite, error); result.equip.failed++; } } for (const sprite of weaponSprites) { try { await getWeaponImage(sprite); result.weapon.success++; } catch (error) { logger.error('getWeaponImage', sprite, error); result.weapon.failed++; } } const messages = [ '资源下载完成(成功的包含先前下载的图片)', '角色图需下载' + charIDs.length + '张,成功' + result.char.success + '张,失败' + result.char.failed + '张', '角色头像图需下载' + charIDs.length + '张,成功' + result.charSquare.success + '张,失败' + result.charSquare.failed + '张', '套装图需下载' + equipSprites.length + '张,成功' + result.equip.success + '张,失败' + result.equip.failed + '张', '武器图需下载' + weaponSprites.length + '张,成功' + result.weapon.success + '张,失败' + result.weapon.failed + '张', ]; await this.reply(messages.join('\n')); } export async function deleteAll() { if (!this.e.isMaster) return false; await this.reply( '【注意】正在删除所有资源图片,后续使用需要重新下载!', false, { at: true, recallMsg: 100 } ); if (fs.existsSync(imageResourcesPath)) { fs.rmSync(imageResourcesPath, { recursive: true }); } await this.reply('资源图片已删除!', false, { at: true, recallMsg: 100 }); }