9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-06 15:51:52 +00:00

Added disabled-in-worlds

This commit is contained in:
Auxilor
2023-09-25 10:49:27 +01:00
parent f36bb46521
commit 5d1e3cf011
4 changed files with 21 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ package com.willfp.ecoskills
import com.willfp.eco.core.command.impl.PluginCommand
import com.willfp.eco.core.packet.PacketListener
import com.willfp.eco.util.containsIgnoreCase
import com.willfp.ecoskills.actionbar.ActionBarCompatibilityProxy
import com.willfp.ecoskills.actionbar.ActionBarGamemodeListener
import com.willfp.ecoskills.actionbar.ActionBarHandler
@@ -41,6 +42,7 @@ import com.willfp.ecoskills.skills.display.DamageIndicatorListener
import com.willfp.ecoskills.skills.display.GainXPDisplay
import com.willfp.ecoskills.skills.display.LevelUpDisplay
import com.willfp.ecoskills.skills.display.TemporaryBossBarHandler
import com.willfp.ecoskills.skills.isInDisabledWorld
import com.willfp.ecoskills.stats.StatModifierListener
import com.willfp.ecoskills.stats.Stats
import com.willfp.libreforge.SimpleProvidedHolder
@@ -71,9 +73,10 @@ class EcoSkillsPlugin : LibreforgePlugin() {
override fun handleEnable() {
registerHolderProvider { player ->
(Effects.values() union Stats.values())
.mapNotNull { it.getLevelHolder(it.getActualLevel(player)) }
.map { SimpleProvidedHolder(it) }
if (player.isInDisabledWorld) emptyList() else
(Effects.values() union Stats.values())
.mapNotNull { it.getLevelHolder(it.getActualLevel(player)) }
.map { SimpleProvidedHolder(it) }
}
com.willfp.libreforge.effects.Effects.register(EffectAddStat)

View File

@@ -7,6 +7,7 @@ import com.willfp.eco.core.data.profile
import com.willfp.eco.core.map.defaultMap
import com.willfp.eco.core.placeholder.PlayerPlaceholder
import com.willfp.eco.core.placeholder.context.placeholderContext
import com.willfp.eco.util.containsIgnoreCase
import com.willfp.eco.util.evaluateExpression
import com.willfp.eco.util.formatEco
import com.willfp.eco.util.toNiceString
@@ -21,6 +22,7 @@ import com.willfp.ecoskills.effects.Effects
import com.willfp.ecoskills.gui.components.SkillIcon
import com.willfp.ecoskills.gui.menus.SkillLevelGUI
import com.willfp.ecoskills.libreforge.TriggerLevelUpSkill
import com.willfp.ecoskills.plugin
import com.willfp.ecoskills.stats.Stats
import com.willfp.ecoskills.util.InvalidConfigurationException
import com.willfp.ecoskills.util.LevelInjectable
@@ -283,3 +285,6 @@ class Skill(
internal val OfflinePlayer.skills: SkillLevelMap
get() = SkillLevelMap(this)
val Player.isInDisabledWorld: Boolean
get() = plugin.configYml.getStrings("disabled-in-worlds").containsIgnoreCase(world.name)

View File

@@ -3,6 +3,7 @@ package com.willfp.ecoskills.skills
import com.github.benmanes.caffeine.cache.Caffeine
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.integrations.afk.AFKManager
import com.willfp.eco.util.containsIgnoreCase
import com.willfp.ecoskills.api.gainSkillXP
import com.willfp.libreforge.EmptyProvidedHolder
import com.willfp.libreforge.counters.Accumulator
@@ -16,6 +17,10 @@ class SkillXPAccumulator(
private val skill: Skill
) : Accumulator {
override fun accept(player: Player, count: Double) {
if (player.isInDisabledWorld) {
return
}
if (plugin.configYml.getBool("skills.prevent-levelling-while-afk") && AFKManager.isAfk(player)) {
return
}

View File

@@ -8,6 +8,11 @@
# cross-server sync.
use-local-storage: false
# Worlds that EcoSkills should be disabled in
disabled-in-worlds:
- world_1
- world_2
gui:
rows: 6