import { Common, Cfg } from '../components/index.js' import { renderAvatar } from './character/avatar-card.js' import { getTargetUid, getProfile, profileHelp, getProfileAll } from './character/profile-common.js' import { profileArtis } from './character/profile-artis.js' import { renderProfile } from './character/profile-detail.js' import { Character } from '../components/models.js' import { isV3 } from '../components/Changelog.js' export { enemyLv, getOriginalPicture } from './character/utils.js' // 角色图像上传 export { uploadCharacterImg } from './character/character-img-upload.js' // export { getProfileAll, getProfile, profileHelp } // 圣遗物列表 export { profileArtisList } from './character/profile-artis.js' // 老婆 export { wife, pokeWife, wifeReg } from './character/avatar-wife.js' // 查看当前角色 export async function character (e, { render }) { let msg = isV3 ? e.raw_message : e.msg if (!msg) { return } let mode = 'card' let uidRet = /[0-9]{9}/.exec(msg) if (uidRet) { e.uid = uidRet[0] msg = msg.replace(uidRet[0], '') } let name = msg.replace(/#|老婆|老公/g, '').trim() msg = msg.replace('面版', '面板') let dmgRet = /伤害(\d?)$/.exec(name); let dmgIdx = 0 if (/(详情|详细|面板|面版)\s*$/.test(msg) && !/更新|录入|输入/.test(msg)) { mode = 'profile' name = name.replace(/(详情|详细|面板)/, '').trim() } else if (dmgRet) { mode = 'dmg' name = name.replace(/伤害[0-5]?/, '').trim() if (dmgRet[1]) { dmgIdx = dmgRet[1] * 1 } } else if (/(详情|详细|面板)更新$/.test(msg) || (/更新/.test(msg) && /(详情|详细|面板)$/.test(msg))) { mode = 'refresh' name = name.replace(/详情|详细|面板|更新/g, '').trim() } else if (/(录入|输入)/.test(msg) && /(详情|详细|面板)/.test(msg)) { mode = 'input' let nameRet = /(?:录入|输入)(.+)(?:面板|详细|详情|数据)+/.exec(name) if (nameRet) { name = nameRet[1] e.inputData = msg.replace(nameRet[0], '') } name = name.replace(/录入|输入|详情|详细|面板|数据|[0-9]|\.|\+/g, '').trim() } else if (/圣遗物/.test(msg)) { mode = 'artis' name = name.replace('圣遗物', '').trim() } if (mode === 'card' && Common.isDisable(e, 'char.char')) { return } if (mode !== 'card' && !e.isMaster) { if (Common.isDisable(e, 'char.profile')) { // 面板开关关闭 return } if (e.isPrivate) { if ((e.sub_type === 'friend' && Cfg.get('profile.friend.status') === false) || (e.sub_type === 'group' && Cfg.get('profile.stranger.status') === false)) { return } } else if (e.isGroup) { let groupCfg = Cfg.get(`profile.groups.群${e.group_id}.status`) if (groupCfg === false || (groupCfg !== true && Cfg.get('profile.group.status') === false)) { return } } } let char = Character.get(name.trim()) if (!char) { return false } if (mode === 'card') { return renderAvatar(e, char.name, render) } let uid = await getTargetUid(e) if (!uid) { return true } e.uid = uid e.avatar = char.id if (char.isCustom) { e.reply('自定义角色暂不支持此功能') return true } if (mode === 'profile' || mode === 'dmg') { return renderProfile(e, char, render, mode, { dmgIdx }) } else if (mode === 'refresh' || mode === 'input') { await getProfile(e, mode) return true } else if (mode === 'artis') { return profileArtis(e, { render }) } return true }