mirror of
https://github.com/yoimiya-kokomi/miao-plugin.git
synced 2025-02-01 16:05:53 +00:00
优化Mys天赋请求策略,金卡数屏蔽旅行者,对鲸泽佬的极限角色文件增加支持并屏蔽排名
This commit is contained in:
parent
ce47f9d8e7
commit
c10fe06fea
@ -25,8 +25,8 @@ let Avatar = {
|
||||
avatar = { id: char.id, name: char.name, detail: false }
|
||||
} else {
|
||||
let player = Player.create(e)
|
||||
await player.refreshMysDetail()
|
||||
await player.refreshTalent(char.id)
|
||||
await player.refreshMysDetail(1)
|
||||
await player.refreshTalent(char.id, 1)
|
||||
avatar = player.getAvatar(char.id)
|
||||
if (!avatar) {
|
||||
avatar = { id: char.id, name: char.name, detail: false }
|
||||
|
@ -29,7 +29,7 @@ app.reg({
|
||||
groupProfile: {
|
||||
name: '群内最强',
|
||||
fn: groupRank,
|
||||
rule: /^#(群|群内)?(排名|排行)?(最强|最高|最高分|最牛|第一)+.+/
|
||||
rule: /^#(群|群内)?(排名|排行)?(最强|最高|最高分|最牛|第一|极限)+.+/
|
||||
},
|
||||
|
||||
resetRank: {
|
||||
|
@ -4,10 +4,6 @@ import { Data, Common, Format } from '../../components/index.js'
|
||||
import lodash from 'lodash'
|
||||
|
||||
export async function groupRank (e) {
|
||||
let groupId = e.group_id
|
||||
if (!groupId) {
|
||||
return false
|
||||
}
|
||||
const groupRank = Common.cfg('groupRank')
|
||||
let msg = e.original_msg || e.msg
|
||||
let type = ''
|
||||
@ -15,12 +11,15 @@ export async function groupRank (e) {
|
||||
type = 'list'
|
||||
} else if (/(最强|最高|最高分|最牛|第一)/.test(msg)) {
|
||||
type = 'detail'
|
||||
} else if (/极限/.test(msg)) {
|
||||
type = 'super'
|
||||
}
|
||||
if (!type) {
|
||||
let groupId = e.group_id
|
||||
if (!type || (!groupId && type !== 'super')) {
|
||||
return false
|
||||
}
|
||||
let mode = /(分|圣遗物|评分|ACE)/.test(msg) ? 'mark' : 'dmg'
|
||||
let name = msg.replace(/(#|最强|最高分|第一|最高|最牛|圣遗物|评分|群内|群|排名|排行|面板|面版|详情|榜)/g, '')
|
||||
let name = msg.replace(/(#|最强|最高分|第一|极限|最高|最牛|圣遗物|评分|群内|群|排名|排行|面板|面版|详情|榜)/g, '')
|
||||
let char = Character.get(name)
|
||||
if (!char) {
|
||||
// 名字不存在或不为列表模式,则返回false
|
||||
@ -28,6 +27,17 @@ export async function groupRank (e) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
// 对鲸泽佬的极限角色文件增加支持
|
||||
if (type === 'super') {
|
||||
let player = Player.create(100000000)
|
||||
if (player.getProfile(char.id)) {
|
||||
e.uid = 100000000
|
||||
return await renderProfile(e, char)
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
// 正常群排名
|
||||
let groupCfg = await ProfileRank.getGroupCfg(groupId)
|
||||
if (!groupRank) {
|
||||
e.reply('群面板排名功能已禁用,Bot主人可通过【#喵喵设置】启用...')
|
||||
|
@ -196,7 +196,11 @@ export default class AvatarData extends Base {
|
||||
}
|
||||
|
||||
getDetail (keys = '') {
|
||||
return this.getData(keys || 'id,name,level,star,cons,fetter,elem,face,side,gacha,abbr,weapon,talent,artisSet') || {}
|
||||
let imgs = this.char.getImgs(this.costume)
|
||||
return {
|
||||
...(this.getData(keys || 'id,name,level,star,cons,fetter,elem,abbr,weapon,talent,artisSet') || {}),
|
||||
...Data.getData(imgs, 'face,qFace,side,gacha')
|
||||
}
|
||||
}
|
||||
|
||||
getArtisDetail () {
|
||||
|
@ -78,6 +78,9 @@ export default class Player extends Base {
|
||||
this._chars = data.chars
|
||||
}
|
||||
this.setAvatars(data.avatars || [])
|
||||
if (!data.avatars) {
|
||||
this.save()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -201,6 +201,9 @@ export default class ProfileRank {
|
||||
if (!uid) {
|
||||
return false
|
||||
}
|
||||
if (uid * 1 < 100000005) {
|
||||
return false
|
||||
}
|
||||
try {
|
||||
let rankLimit = Common.cfg('groupRankLimit') * 1 || 1
|
||||
if (rankLimit === 1) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
import lodash from 'lodash'
|
||||
import { Common, Data } from '../../components/index.js'
|
||||
import { Data } from '../../components/index.js'
|
||||
import { chestInfo } from '../../resources/meta/info/index.js'
|
||||
import moment from 'moment'
|
||||
|
||||
@ -170,7 +170,8 @@ const MysAvatar = {
|
||||
if (!avatar) {
|
||||
return true
|
||||
}
|
||||
if (!avatar.hasTalent || MysAvatar.needRefresh(avatar._talent, force, { 0: 60 * 24, 1: 60, 2: 0 })) {
|
||||
let needMap = { 0: avatar.hasTalent ? 60 * 48 : 60 * 3, 1: 60, 2: 0 }
|
||||
if (MysAvatar.needRefresh(avatar._talent, force, needMap)) {
|
||||
ret.push(avatar.id)
|
||||
}
|
||||
})
|
||||
@ -199,7 +200,11 @@ const MysAvatar = {
|
||||
// 并发5,请求天赋数据
|
||||
await Data.asyncPool(5, needReqIds, async (id) => {
|
||||
let avatar = player.getAvatar(id)
|
||||
if (!avatar || failCount > 5) {
|
||||
if (!avatar) {
|
||||
return false
|
||||
}
|
||||
if (failCount > 5) {
|
||||
avatar.setTalent(false, 'original', true)
|
||||
return false
|
||||
}
|
||||
let ret = await MysAvatar.refreshAvatarTalent(avatar, mys)
|
||||
@ -209,6 +214,7 @@ const MysAvatar = {
|
||||
})
|
||||
}
|
||||
player.save()
|
||||
return true
|
||||
},
|
||||
|
||||
async refreshAvatarTalent (avatar, mys) {
|
||||
@ -286,7 +292,9 @@ const MysAvatar = {
|
||||
avatarCount++
|
||||
if (avatar.star === 5) {
|
||||
avatar5Count++
|
||||
goldCount += (avatar.cons || 0) + 1
|
||||
if (!avatar.char?.isTraveler) {
|
||||
goldCount += (avatar.cons || 0) + 1
|
||||
}
|
||||
}
|
||||
let w = avatar.weapon
|
||||
if (w && w.star === 5) {
|
||||
|
Loading…
Reference in New Issue
Block a user