LTDV10Test/packet/kubejs/server_scripts/Improved Mobs/quest.js
3944Realms 67a395b765
Some checks failed
Deploy to Remote Server / deploy (push) Failing after 1m11s
初始化
2026-04-14 18:20:56 +08:00

53 lines
2.2 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//想用任务增加难度系数的在奖励里加一个自定义然后加上标签rank_难度等级比如rank_1就会增加一级
const $CrossPlatformStuff = Java.loadClass("io.github.flemmli97.improvedmobs.platform.CrossPlatformStuff")
const $Quest = Java.loadClass("dev.ftb.mods.ftbquests.quest.Quest")
const $ProgressChange = Java.loadClass("dev.ftb.mods.ftbquests.util.ProgressChange")
/**
*
* @param {Internal.Player} player
* @param {number} value
*/
function UpdateRank(player, value) {
let diffData = $CrossPlatformStuff.INSTANCE.getPlayerDifficultyData(player).get()
if (!diffData || player.persistentData.getBoolean("disableRankChange"))
return
value = (GetPlayerDifficulty(player) + value) < 0 ? -GetPlayerDifficulty(player) : value
player.getServer().runCommandSilent(`/improvedmobs difficulty player ${player.username} add ${value}`)
if (value < 0)
player.tell(`难度降低了${-value}`)
else
player.tell(`难度提升了${value}`)
}
FTBQuestsEvents.customReward(e => {
const { player, reward, server } = e
reward.tags.forEach(s => {
let strings = s.split("_")
let start = strings[0]
let mid = strings[1]
let end = strings[strings.length - 1]
if (start == "rank") {
UpdateRank(player, end)
}
else if (start == "unrank") {
UpdateRank(player, -end)
}
else if (s == "change_rank_change_state") {
let disableRankChange = player.persistentData.getBoolean("disableRankChange")
if (disableRankChange == null)
player.persistentData.putBoolean("disableRankChange", true)
else
player.persistentData.putBoolean("disableRankChange", !disableRankChange)
if (!disableRankChange)
player.tell("已关闭难度变化!")
else
player.tell("已开启难度变化!")
}
if (mid != "unrepeatable") {
// Client.tell(`${player.uuid}, ${reward.quest}`)
server.runCommand(`/execute as ${player.uuid} run ftbquests change_progress @s reset ${reward.quest}`)
}
})
})