koishi-plugin-beatsaber-bot
Version:
一个 用于 BeatSaber 的 koishi Bot 插件
54 lines (53 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BeatLeaderFilter = void 0;
const filterMap = {
'rank-only': RankOnly,
'huge-improve': HugeImprove,
'high-stars': HighStar,
'standard': StandardMode,
'high-pp': HighPP,
'top-score': TopScore,
'fc-only': FullComboOnly,
};
function RankOnly(event) {
return event.pp != 0;
}
function FullComboOnly(event) {
return event.fullCombo;
}
function HugeImprove(event, ppImprovePercent) {
event.scoreImprovement.pp;
return event.rankVoting != null;
}
function HighStar(event, stars) {
return event.leaderboard.difficulty.stars >= stars;
}
function StandardMode(event) {
return event.leaderboard.difficulty.modeName === "Standard";
}
function HighPP(event, minPP) {
return event.pp > minPP;
}
function TopScore(event, minTop) {
return event.rank != 0 && event.rank <= minTop;
}
function BeatLeaderFilter(event, ...filters) {
for (const filter of filters) {
const fc = filterMap[filter.filterName];
if (fc) {
try {
if (fc.length - 1 > filter.filterParams.length) {
continue;
}
const res = fc(event, ...filter.filterParams);
if (!res)
return false;
}
catch (e) {
}
}
}
return true;
}
exports.BeatLeaderFilter = BeatLeaderFilter;