diff --git a/api/src/main/java/net/momirealms/customfishing/api/manager/RequirementManager.java b/api/src/main/java/net/momirealms/customfishing/api/manager/RequirementManager.java index 6d61fe07..d970a8dc 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/manager/RequirementManager.java +++ b/api/src/main/java/net/momirealms/customfishing/api/manager/RequirementManager.java @@ -26,6 +26,16 @@ import org.jetbrains.annotations.Nullable; public interface RequirementManager { + /** + * Legacy format support + * @param key key + * @param requirements requirements + * @param weight weight + * @return success or not + */ + @Deprecated + boolean putLegacyLootToMap(String key, Requirement[] requirements, double weight); + /** * Registers a custom requirement type with its corresponding factory. * diff --git a/build.gradle.kts b/build.gradle.kts index 7f3cd7da..182c7596 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,7 +7,7 @@ plugins { allprojects { - version = "2.0.0" + version = "2.0.1" apply() apply(plugin = "java") diff --git a/plugin/src/main/java/net/momirealms/customfishing/CustomFishingPluginImpl.java b/plugin/src/main/java/net/momirealms/customfishing/CustomFishingPluginImpl.java index 77e47800..6ce2f66a 100644 --- a/plugin/src/main/java/net/momirealms/customfishing/CustomFishingPluginImpl.java +++ b/plugin/src/main/java/net/momirealms/customfishing/CustomFishingPluginImpl.java @@ -219,7 +219,7 @@ public class CustomFishingPluginImpl extends CustomFishingPlugin { "org.mongodb:mongodb-driver-core:4.11.1", mavenRepo, "org.mongodb:bson:4.11.1", mavenRepo, "org.xerial:sqlite-jdbc:3.43.2.2", mavenRepo, - "dev.jorel:commandapi-bukkit-shade:9.2.0", mavenRepo, + "dev.jorel:commandapi-bukkit-shade:9.3.0", mavenRepo, "xyz.xenondevs.invui:invui-core:1.23", "https://repo.xenondevs.xyz/releases/", "xyz.xenondevs.invui:inventory-access:1.23", "https://repo.xenondevs.xyz/releases/", "xyz.xenondevs.invui:inventory-access-r8:1.23", "https://repo.xenondevs.xyz/releases/", diff --git a/plugin/src/main/java/net/momirealms/customfishing/mechanic/loot/LootManagerImpl.java b/plugin/src/main/java/net/momirealms/customfishing/mechanic/loot/LootManagerImpl.java index bc0537c8..b221a6a2 100644 --- a/plugin/src/main/java/net/momirealms/customfishing/mechanic/loot/LootManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customfishing/mechanic/loot/LootManagerImpl.java @@ -241,8 +241,13 @@ public class LootManagerImpl implements LootManager { groupMembers.add(loot.getID()); } } - if (section.contains("requirements")) { - + // legacy format support + if (section.contains("requirements") && section.contains("weight")) { + plugin.getRequirementManager().putLegacyLootToMap( + loot.getID(), + plugin.getRequirementManager().getRequirements(section.getConfigurationSection("requirements"), false), + section.getDouble("weight", 0) + ); } } } diff --git a/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java b/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java index 480dd131..379ebe86 100644 --- a/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customfishing/mechanic/requirement/RequirementManagerImpl.java @@ -27,6 +27,7 @@ import net.momirealms.customfishing.api.mechanic.action.Action; import net.momirealms.customfishing.api.mechanic.competition.FishingCompetition; import net.momirealms.customfishing.api.mechanic.condition.Condition; import net.momirealms.customfishing.api.mechanic.loot.Loot; +import net.momirealms.customfishing.api.mechanic.loot.WeightModifier; import net.momirealms.customfishing.api.mechanic.requirement.Requirement; import net.momirealms.customfishing.api.mechanic.requirement.RequirementExpansion; import net.momirealms.customfishing.api.mechanic.requirement.RequirementFactory; @@ -85,6 +86,16 @@ public class RequirementManagerImpl implements RequirementManager { this.conditionalLootsMap.clear(); } + @Override + public boolean putLegacyLootToMap(String key, Requirement[] requirements, double weight) { + if (conditionalLootsMap.containsKey("LEGACY_" + key)) { + return false; + } else { + conditionalLootsMap.put("LEGACY_" + key, new ConditionalElement(requirements, List.of(Pair.of(key, (player, origin) -> weight + origin)), new HashMap<>())); + return true; + } + } + /** * Loads requirement group configuration data from various configuration files. */