From e7775806a5498ebc12eee85da8f4667cd51e3216 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 15 May 2023 16:21:45 +0100 Subject: [PATCH] Fixed magic --- .../com/willfp/ecoskills/EcoSkillsPlugin.kt | 6 ++++-- .../com/willfp/ecoskills/api/EcoSkillsAPI.kt | 4 ++-- .../libreforge/EffectArgumentMagicCost.kt | 4 ++-- .../ecoskills/{mana => magic}/MagicHandler.kt | 20 ++++++++++++++++++- .../ecoskills/{mana => magic}/MagicMap.kt | 2 +- .../ecoskills/{mana => magic}/MagicType.kt | 4 +++- .../ecoskills/{mana => magic}/MagicTypes.kt | 2 +- .../{mana => magic}/PriceFactoryMagic.kt | 2 +- .../main/resources/magic_types/_example.yml | 3 +++ .../src/main/resources/magic_types/mana.yml | 3 ++- 10 files changed, 38 insertions(+), 12 deletions(-) rename eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/{mana => magic}/MagicHandler.kt (50%) rename eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/{mana => magic}/MagicMap.kt (93%) rename eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/{mana => magic}/MagicType.kt (95%) rename eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/{mana => magic}/MagicTypes.kt (94%) rename eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/{mana => magic}/PriceFactoryMagic.kt (98%) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt index f5410a7..91183c1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlugin.kt @@ -21,8 +21,9 @@ import com.willfp.ecoskills.libreforge.FilterSkill import com.willfp.ecoskills.libreforge.FilterSkillCrit import com.willfp.ecoskills.libreforge.TriggerGainSkillXp import com.willfp.ecoskills.libreforge.TriggerLevelUpSkill -import com.willfp.ecoskills.mana.MagicHandler -import com.willfp.ecoskills.mana.MagicTypes +import com.willfp.ecoskills.magic.MagicHandler +import com.willfp.ecoskills.magic.MagicListener +import com.willfp.ecoskills.magic.MagicTypes import com.willfp.ecoskills.skills.EcoSkillsSkillTopPlaceholder import com.willfp.ecoskills.skills.EcoSkillsTopPlaceholder import com.willfp.ecoskills.skills.SkillCritListener @@ -104,6 +105,7 @@ class EcoSkillsPlugin : LibreforgePlugin() { LevelUpDisplay(this), GainXPDisplay(this), DamageIndicatorListener(this), + MagicListener(this), ActionBarGamemodeListener, SkillCritListener ) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/api/EcoSkillsAPI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/api/EcoSkillsAPI.kt index 43fdb1b..cd85dbc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/api/EcoSkillsAPI.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/api/EcoSkillsAPI.kt @@ -6,8 +6,8 @@ import com.willfp.ecoskills.api.modifiers.StatModifier import com.willfp.ecoskills.effects.Effect import com.willfp.ecoskills.effects.Effects import com.willfp.ecoskills.effects.effects -import com.willfp.ecoskills.mana.MagicType -import com.willfp.ecoskills.mana.magic +import com.willfp.ecoskills.magic.MagicType +import com.willfp.ecoskills.magic.magic import com.willfp.ecoskills.skills.Skill import com.willfp.ecoskills.skills.Skills import com.willfp.ecoskills.skills.skills diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/libreforge/EffectArgumentMagicCost.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/libreforge/EffectArgumentMagicCost.kt index d776b8b..19cd34f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/libreforge/EffectArgumentMagicCost.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/libreforge/EffectArgumentMagicCost.kt @@ -1,7 +1,7 @@ package com.willfp.ecoskills.libreforge -import com.willfp.ecoskills.mana.MagicType -import com.willfp.ecoskills.mana.magic +import com.willfp.ecoskills.magic.MagicType +import com.willfp.ecoskills.magic.magic import com.willfp.libreforge.ConfigurableElement import com.willfp.libreforge.NoCompileData import com.willfp.libreforge.effects.arguments.EffectArgument diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicHandler.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicHandler.kt similarity index 50% rename from eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicHandler.kt rename to eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicHandler.kt index fae4886..630d2cc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicHandler.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicHandler.kt @@ -1,8 +1,11 @@ -package com.willfp.ecoskills.mana +package com.willfp.ecoskills.magic import com.willfp.eco.core.EcoPlugin import org.bukkit.Bukkit import org.bukkit.entity.Player +import org.bukkit.event.EventHandler +import org.bukkit.event.Listener +import org.bukkit.event.player.PlayerJoinEvent class MagicHandler(private val plugin: EcoPlugin) { internal fun startTicking() { @@ -17,5 +20,20 @@ class MagicHandler(private val plugin: EcoPlugin) { } } +class MagicListener( + private val plugin: EcoPlugin +) : Listener { + @EventHandler + fun onJoin(event: PlayerJoinEvent) { + plugin.scheduler.runLater(2) { + for (type in MagicTypes.values()) { + if (type.joinOnFull) { + event.player.magic[type] = type.getLimit(event.player) + } + } + } + } +} + internal val Player.magic: MagicMap get() = MagicMap(this) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicMap.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicMap.kt similarity index 93% rename from eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicMap.kt rename to eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicMap.kt index ac50d88..6ed96c4 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicMap.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicMap.kt @@ -1,4 +1,4 @@ -package com.willfp.ecoskills.mana +package com.willfp.ecoskills.magic import com.willfp.eco.core.map.nestedMap import org.bukkit.entity.Player diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicType.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicType.kt similarity index 95% rename from eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicType.kt rename to eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicType.kt index b89d219..0eff26d 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicType.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicType.kt @@ -1,4 +1,4 @@ -package com.willfp.ecoskills.mana +package com.willfp.ecoskills.magic import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.placeholder.PlayerPlaceholder @@ -23,6 +23,8 @@ class MagicType( private val limitExpr = config.getString("limit") + val joinOnFull = config.getBool("join-on-full") + init { PlayerlessPlaceholder(plugin, "${id}_name") { config.getFormattedString("name") diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicTypes.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicTypes.kt similarity index 94% rename from eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicTypes.kt rename to eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicTypes.kt index dda72f9..ce9a885 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/MagicTypes.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/MagicTypes.kt @@ -1,4 +1,4 @@ -package com.willfp.ecoskills.mana +package com.willfp.ecoskills.magic import com.willfp.eco.core.config.interfaces.Config import com.willfp.ecoskills.CategoryWithRegistry diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/PriceFactoryMagic.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/PriceFactoryMagic.kt similarity index 98% rename from eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/PriceFactoryMagic.kt rename to eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/PriceFactoryMagic.kt index 44e8b17..cddea27 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/mana/PriceFactoryMagic.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/magic/PriceFactoryMagic.kt @@ -1,4 +1,4 @@ -package com.willfp.ecoskills.mana +package com.willfp.ecoskills.magic import com.willfp.eco.core.placeholder.context.PlaceholderContext import com.willfp.eco.core.placeholder.context.PlaceholderContextSupplier diff --git a/eco-core/core-plugin/src/main/resources/magic_types/_example.yml b/eco-core/core-plugin/src/main/resources/magic_types/_example.yml index fbb37b8..5e99470 100644 --- a/eco-core/core-plugin/src/main/resources/magic_types/_example.yml +++ b/eco-core/core-plugin/src/main/resources/magic_types/_example.yml @@ -12,3 +12,6 @@ regen-rate: "0.02 * %ecoskills_mana_limit%" # The maximum amount of this type a player can have limit: "100 + %ecoskills_wisdom%" + +# If players should join with full magic (true) or empty magic (false) +join-on-full: true diff --git a/eco-core/core-plugin/src/main/resources/magic_types/mana.yml b/eco-core/core-plugin/src/main/resources/magic_types/mana.yml index 35e7f4a..f249024 100644 --- a/eco-core/core-plugin/src/main/resources/magic_types/mana.yml +++ b/eco-core/core-plugin/src/main/resources/magic_types/mana.yml @@ -1,5 +1,6 @@ name: "(ffe6🌊 Mana" regen-rate: "0.02 * %ecoskills_mana_limit%" - limit: "100 + %ecoskills_wisdom%" + +join-on-full: true