miao-plugin/apps/profile/ProfileCommon.js

78 lines
1.9 KiB
JavaScript
Raw Normal View History

/*
* 面板公共方法及处理
* */
2024-02-04 01:27:34 +00:00
import { Button, Character, MysApi, Player } from '#miao.models'
import { miaoPath } from '#miao.path'
/*
* 获取面板查询的 目标uid
* */
2023-02-09 16:57:25 +00:00
const _getTargetUid = async function (e) {
2024-08-18 09:07:26 +00:00
let uidReg = /(18|[1-9])[0-9]{8}/
if (e.uid && uidReg.test(e.uid)) {
2022-07-23 20:32:10 +00:00
return e.uid
}
2022-07-23 20:32:10 +00:00
let uidRet = uidReg.exec(e.msg)
if (uidRet) {
return uidRet[0]
}
2022-07-23 20:32:10 +00:00
let uid = false
try {
let user = await MysApi.initUser(e)
if (!user || !user.uid) {
2022-07-23 20:32:10 +00:00
return false
}
uid = user.uid
if ((!uid || !uidReg.test(uid)) && !e._replyNeedUid) {
2024-02-04 01:27:34 +00:00
e.reply(['请先发送【#绑定+你的UID】来绑定查询目标\n星铁请使用【#星铁绑定+UID】', new Button(e).bindUid()])
e._replyNeedUid = true
2022-07-23 20:32:10 +00:00
return false
}
} catch (err) {
2022-07-23 20:32:10 +00:00
console.log(err)
}
2022-07-23 20:32:10 +00:00
return uid || false
}
2024-05-13 12:05:34 +00:00
export async function getTargetUid (e) {
2023-02-09 16:57:25 +00:00
let uid = await _getTargetUid(e)
if (uid) {
e.uid = uid
}
return uid
}
2024-05-13 12:05:34 +00:00
export async function getProfileRefresh (e, avatar) {
2022-07-23 20:32:10 +00:00
let char = Character.get(avatar)
if (!char) {
return false
}
2023-02-09 16:57:25 +00:00
let player = Player.create(e)
let profile = player.getProfile(char.id)
if (!profile || !profile.hasData) {
logger.mark(`本地无UID:${player.uid}${char.name}面板数据,尝试自动请求...`)
await player.refresh({ profile: true })
profile = player.getProfile(char.id)
}
if (!profile || !profile.hasData) {
if (!e._isReplyed) {
2024-02-04 01:27:34 +00:00
e.reply([`请确认${char.name}已展示在【游戏内】的角色展柜中,并打开了“显示角色详情”。然后请使用 #更新面板\n命令来获取${char.name}的面板详情`, new Button(e).profileList(player.uid), new Button(e).profile(char, player.uid)])
}
return false
}
return profile
}
/*
* 面板帮助
* */
2024-05-13 12:05:34 +00:00
export async function profileHelp (e) {
e.reply(segment.image(`file://${miaoPath}/resources/character/imgs/help.jpg`))
2022-07-23 20:32:10 +00:00
return true
}