Miao-Yunzai/apps/calculator.ts

81 lines
2.2 KiB
TypeScript
Raw Permalink Normal View History

2024-06-14 10:44:18 +08:00
import { plugin } from 'yunzai/core'
import Calculator from '../model/calculator.js'
import Blueprint from '../model/blueprint.js'
2024-06-17 23:04:18 +08:00
import { puppeteer } from 'yunzai/utils'
import { gsCfg } from 'yunzai/mys'
2024-06-14 10:44:18 +08:00
export class calculator extends plugin {
2024-06-17 23:04:18 +08:00
constructor() {
2024-06-14 10:44:18 +08:00
/**
*
name: '养成计算',
dsc: '角色养成材料计算器',
*/
super({
priority: 700,
rule: [
{
reg: '^#*(星铁)?(.*)(养成|计算)([0-9]|,|| )*$',
fnc: 'Calculator'
},
{
reg: '^#*(星铁)?角色(养成|计算|养成计算)$',
fnc: 'calculatorHelp'
},
{
reg: '^#*尘歌壶模数(养成|计算|养成计算)$',
fnc: 'blueprintHelp'
},
{
reg: '^#*尘歌壶(模数|养成|养成计算)(\\d{10,15})$',
fnc: 'Blueprint'
2024-06-17 23:04:18 +08:00
}
2024-06-14 10:44:18 +08:00
]
})
}
2024-06-17 23:04:18 +08:00
_path = process.cwd().replace(/\\/g, '/')
async blueprintHelp(e) {
let msg =
'#尘歌壶模数\n指令#尘歌壶模数\n示例#尘歌壶模数123456\n参数为模数id(10-15位数字)'
2024-06-14 10:44:18 +08:00
await e.reply(msg)
return true
}
2024-06-17 23:04:18 +08:00
async calculatorHelp(e) {
2024-06-14 10:44:18 +08:00
let msg = `角色养成计算\n指令${e.isSr ? '*克拉拉养成\n示例*克拉拉养成75 80 6 9 9 9\n参数为角色、武器、普攻、战技、终结技、天赋' : '#刻晴养成\n示例#刻晴养成81 90 9 9 9\n参数为角色、武器、技能等级'}`
await e.reply(msg)
return true
}
2024-06-17 23:04:18 +08:00
async Blueprint() {
2024-06-14 10:44:18 +08:00
let role = this.e.msg.replace(/#/, '').match(/\d+/g)
let data = await new Blueprint(this.e).get(role)
if (!data) return
/** 生成图片 */
let img = await puppeteer.screenshot('Blueprint', data)
if (img) await this.reply(img)
}
/** #刻晴养成 */
2024-06-17 23:04:18 +08:00
async Calculator() {
let role = gsCfg.getRole(
this.e.msg,
'#||星铁|养成|计算|[0-9]|,|| ',
this.e.isSr
)
2024-06-14 10:44:18 +08:00
if (!role) return false
if ([10000005, 10000007, 20000000].includes(Number(role.roleId))) {
await this.e.reply('暂不支持旅行者养成计算')
return true
}
let data = await new Calculator(this.e).get(role)
if (!data) return
this.renderImg('genshin', `html/calculator/calculator-${data.game}`, data)
}
}