mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2024-11-25 01:21:55 +00:00
127 lines
3.3 KiB
JavaScript
127 lines
3.3 KiB
JavaScript
import { Common } from '#miao'
|
|
import { getTargetUid } from '../profile/ProfileCommon.js'
|
|
import GachaData from './GachaData.js'
|
|
import { Button, Character, Player } from '#miao.models'
|
|
|
|
let Gacha = {
|
|
async detail (e) {
|
|
let msg = e.msg.replace(/#|抽卡|记录|祈愿|分析|池/g, '')
|
|
let game = /星铁/.test(msg) ? 'sr' : 'gs'
|
|
msg = msg.replace(/星铁/, '')
|
|
let type
|
|
if (e.isSr) {
|
|
type = 11
|
|
switch (msg) {
|
|
case 'up':
|
|
case '抽卡':
|
|
case '角色':
|
|
case '抽奖':
|
|
type = 11
|
|
break
|
|
case '常驻':
|
|
type = 1
|
|
break
|
|
case '武器':
|
|
case '光锥':
|
|
type = 12
|
|
break
|
|
}
|
|
} else {
|
|
type = 301
|
|
switch (msg) {
|
|
case 'up':
|
|
case '抽卡':
|
|
case '角色':
|
|
case '抽奖':
|
|
type = 301
|
|
break
|
|
case '常驻':
|
|
type = 200
|
|
break
|
|
case '武器':
|
|
type = 302
|
|
break
|
|
case '集录':
|
|
type = 500
|
|
break
|
|
}
|
|
}
|
|
let uid = e.uid || await getTargetUid(e)
|
|
let qq = e.user.qq
|
|
if (!uid || !qq) {
|
|
return false
|
|
}
|
|
|
|
let gacha = GachaData.analyse(qq, uid, type, game)
|
|
if (!gacha) {
|
|
e.reply([`UID:${uid} 本地暂无抽卡信息,请通过【#抽卡帮助】获得绑定帮助...`, new Button(e).gacha()])
|
|
return true
|
|
}
|
|
|
|
if (type === 302 || type === 12) type = 'weapon'
|
|
this.reply([await Common.render('gacha/gacha-detail', {
|
|
save_id: uid,
|
|
uid,
|
|
gacha,
|
|
face: Gacha.getFace(uid, game),
|
|
game,
|
|
type,
|
|
elem: e.isSr ? 'sr' : 'hydro'
|
|
}, { e, scale: 1.4, retType: 'base64' }), new Button(e).gacha()])
|
|
},
|
|
async stat (e) {
|
|
let msg = e.msg.replace(/#|统计|分析|池/g, '')
|
|
let game = /星铁/.test(msg) ? 'sr' : 'gs'
|
|
msg = msg.replace(/星铁/, '')
|
|
let type = 'up'
|
|
if (/武器|光锥/.test(msg)) {
|
|
type = 'weapon'
|
|
} else if (/角色/.test(msg)) {
|
|
type = 'char'
|
|
} else if (/常驻/.test(msg)) {
|
|
type = 'normal'
|
|
} else if (/集录/.test(msg)) {
|
|
type = 'mix'
|
|
} else if (/全部/.test(msg)) {
|
|
type = 'all'
|
|
}
|
|
let uid = e.uid || await getTargetUid(e)
|
|
let qq = e.user.qq
|
|
if (!uid || !qq) {
|
|
return false
|
|
}
|
|
let gacha = GachaData.stat(qq, uid, type, game)
|
|
if (!gacha) {
|
|
e.reply([`UID:${uid} 本地暂无抽卡信息,请通过【#抽卡帮助】获得绑定帮助...`, new Button(e).gacha()])
|
|
return true
|
|
}
|
|
e.reply([await Common.render('gacha/gacha-stat', {
|
|
save_id: uid,
|
|
uid,
|
|
gacha,
|
|
face: Gacha.getFace(uid, game),
|
|
game,
|
|
elem: e.isSr ? 'sr' : 'hydro'
|
|
}, { e, scale: 1.4, retType: 'base64' }), new Button(e).gacha()])
|
|
},
|
|
|
|
getFace (uid, game) {
|
|
let player = Player.create(uid, game)
|
|
let defaultFaceChar = game === 'gs' ? 10000014 : 1005
|
|
let faceChar = Character.get(player.face || defaultFaceChar, game)
|
|
let imgs = faceChar?.imgs
|
|
if (!imgs?.face) {
|
|
imgs = game === 'gs' ? Character.get(10000079, game).imgs : Character.get(1005, game).imgs
|
|
}
|
|
return {
|
|
banner: imgs?.banner,
|
|
face: imgs?.face,
|
|
qFace: imgs?.qFace,
|
|
name: player.name || '旅行者',
|
|
sign: player.sign,
|
|
level: player.level
|
|
}
|
|
}
|
|
}
|
|
export default Gacha
|