diff --git a/api/src/main/java/net/momirealms/customfishing/api/event/FishingEffectApplyEvent.java b/api/src/main/java/net/momirealms/customfishing/api/event/FishingEffectApplyEvent.java index 0e7571f3..e3a0a665 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/event/FishingEffectApplyEvent.java +++ b/api/src/main/java/net/momirealms/customfishing/api/event/FishingEffectApplyEvent.java @@ -90,8 +90,17 @@ public class FishingEffectApplyEvent extends Event { } public enum Stage { - CAST, - LOOT, - FISHING + + CAST(0), LOOT(1), FISHING(2); + + private final int id; + + Stage(int id) { + this.id = id; + } + + public int getId() { + return id; + } } } diff --git a/api/src/main/java/net/momirealms/customfishing/api/mechanic/effect/EffectModifier.java b/api/src/main/java/net/momirealms/customfishing/api/mechanic/effect/EffectModifier.java index a39338e7..0849fd0e 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/mechanic/effect/EffectModifier.java +++ b/api/src/main/java/net/momirealms/customfishing/api/mechanic/effect/EffectModifier.java @@ -1,5 +1,6 @@ package net.momirealms.customfishing.api.mechanic.effect; +import net.momirealms.customfishing.api.event.FishingEffectApplyEvent; import net.momirealms.customfishing.api.mechanic.MechanicType; import net.momirealms.customfishing.api.mechanic.context.Context; import net.momirealms.customfishing.api.mechanic.requirement.Requirement; @@ -51,6 +52,19 @@ public interface EffectModifier { */ MechanicType type(); + /** + * Applies the effect modifier to the effect + * + * @param effect effect + * @param stage stage + * @param context context + */ + default void apply(Effect effect, FishingEffectApplyEvent.Stage stage, Context context) { + for (TriConsumer, Integer> consumer : modifiers()) { + consumer.accept(effect, context, stage.getId()); + } + } + /** * Builder interface for constructing EffectModifier instances. */ diff --git a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/entity/MythicEntityProvider.java b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/entity/MythicEntityProvider.java index 54d554d0..fc8bfb9a 100644 --- a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/entity/MythicEntityProvider.java +++ b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/entity/MythicEntityProvider.java @@ -50,7 +50,7 @@ public class MythicEntityProvider implements EntityProvider { MythicMob theMob = mythicMob.get(); Position position = Position.of(location); AbstractLocation abstractLocation = new AbstractLocation(position); - ActiveMob activeMob = theMob.spawn(abstractLocation, (double) propertyMap.getOrDefault("level", 0d)); + ActiveMob activeMob = theMob.spawn(abstractLocation, ((Number) propertyMap.getOrDefault("level", 0d)).doubleValue()); return activeMob.getEntity().getBukkitEntity(); } throw new NullPointerException("MythicMobs: " + id + " doesn't exist."); diff --git a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/level/AuraSkillsLevelerProvider.java b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/level/AuraSkillsLevelerProvider.java index 954a830b..141fb3d3 100644 --- a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/level/AuraSkillsLevelerProvider.java +++ b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/level/AuraSkillsLevelerProvider.java @@ -19,7 +19,6 @@ package net.momirealms.customfishing.bukkit.integration.level; import dev.aurelium.auraskills.api.AuraSkillsApi; import dev.aurelium.auraskills.api.registry.NamespacedId; -import net.momirealms.customfishing.api.event.FishingLootSpawnEvent; import net.momirealms.customfishing.api.integration.LevelerProvider; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java b/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java index 759ed7a0..c3ba60ff 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java @@ -21,7 +21,6 @@ import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.event.CustomFishingReloadEvent; import net.momirealms.customfishing.api.mechanic.MechanicType; import net.momirealms.customfishing.api.mechanic.config.ConfigManager; -import net.momirealms.customfishing.api.mechanic.context.Context; import net.momirealms.customfishing.api.mechanic.misc.cooldown.CoolDownManager; import net.momirealms.customfishing.api.mechanic.misc.hologram.HologramManager; import net.momirealms.customfishing.api.mechanic.misc.placeholder.BukkitPlaceholderManager; diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java index 1aa463f3..79248d47 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java @@ -599,7 +599,11 @@ public class BukkitConfigManager extends ConfigManager { throw new RuntimeException(section.getRouteAsString()); } Action[] actions = plugin.getActionManager().parseActions(section.getSection("actions")); - switch (section.getString("type")) { + String type = section.getString("type"); + if (type == null) { + throw new RuntimeException(section.getRouteAsString()); + } + switch (type) { case "lava-fishing" -> { return (((effect, context, phase) -> { if (phase == 0) { diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/AbstractSQLDatabase.java b/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/AbstractSQLDatabase.java index 5fcb75f5..fcc20bb6 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/AbstractSQLDatabase.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/AbstractSQLDatabase.java @@ -18,7 +18,6 @@ package net.momirealms.customfishing.bukkit.storage.method.database.sql; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; -import net.momirealms.customfishing.api.mechanic.config.ConfigManager; import net.momirealms.customfishing.api.storage.data.PlayerData; import net.momirealms.customfishing.api.storage.user.UserData; import net.momirealms.customfishing.bukkit.storage.method.AbstractStorage; diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/SQLiteProvider.java b/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/SQLiteProvider.java index c98bdfda..603a3bdd 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/SQLiteProvider.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/storage/method/database/sql/SQLiteProvider.java @@ -20,7 +20,6 @@ package net.momirealms.customfishing.bukkit.storage.method.database.sql; import com.google.common.util.concurrent.ThreadFactoryBuilder; import dev.dejvokep.boostedyaml.YamlDocument; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; -import net.momirealms.customfishing.api.mechanic.config.ConfigManager; import net.momirealms.customfishing.api.storage.StorageType; import net.momirealms.customfishing.api.storage.data.PlayerData; import net.momirealms.customfishing.api.storage.user.UserData; diff --git a/gradle.properties b/gradle.properties index c4d28951..86d30af6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=2.2.28 +project_version=2.2.29 config_version=36 project_group=net.momirealms