diff --git a/api/src/main/java/net/momirealms/customfishing/api/event/FishingHookStateEvent.java b/api/src/main/java/net/momirealms/customfishing/api/event/FishingHookStateEvent.java index 7e46e0ef..f9ef1cc4 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/event/FishingHookStateEvent.java +++ b/api/src/main/java/net/momirealms/customfishing/api/event/FishingHookStateEvent.java @@ -79,6 +79,7 @@ public class FishingHookStateEvent extends PlayerEvent { BITE, ESCAPE, LURE, - LAND + LAND, + HOOK } } diff --git a/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java b/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java index 95530b2a..02fe1af2 100644 --- a/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java +++ b/api/src/main/java/net/momirealms/customfishing/api/mechanic/fishing/CustomFishingHook.java @@ -19,6 +19,7 @@ package net.momirealms.customfishing.api.mechanic.fishing; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.event.FishingEffectApplyEvent; +import net.momirealms.customfishing.api.event.FishingHookStateEvent; import net.momirealms.customfishing.api.event.FishingLootSpawnEvent; import net.momirealms.customfishing.api.event.FishingResultEvent; import net.momirealms.customfishing.api.mechanic.MechanicType; @@ -383,6 +384,7 @@ public class CustomFishingHook { gears.trigger(ActionTrigger.REEL, context); destroy(); } else { + EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.HOOK)); if (nextLoot.disableGame() || RequirementManager.isSatisfied(context, ConfigManager.skipGameRequirements())) { handleSuccessfulFishing(); destroy(); @@ -398,7 +400,6 @@ public class CustomFishingHook { } } - /** * Handles the bite action. */ diff --git a/compatibility/build.gradle.kts b/compatibility/build.gradle.kts index feb2d3fe..c26a3c44 100644 --- a/compatibility/build.gradle.kts +++ b/compatibility/build.gradle.kts @@ -51,7 +51,6 @@ dependencies { compileOnly(files("libs/ExecutableItems-7.24.9.29.jar")) compileOnly(files("libs/SCore-5.24.9.29.jar")) compileOnly(files("libs/SCore-5.24.9.29.jar")) - compileOnly(files("libs/CraftEngine-0.0.8.jar")) compileOnly(files("libs/libreforge-4.73.0.jar")) compileOnly("com.github.LoneDev6:API-ItemsAdder:3.6.1") compileOnly("net.Indyuce:MMOItems-API:6.10-SNAPSHOT") diff --git a/compatibility/j21/build.gradle.kts b/compatibility/j21/build.gradle.kts index 08b5978d..f29987c0 100644 --- a/compatibility/j21/build.gradle.kts +++ b/compatibility/j21/build.gradle.kts @@ -8,6 +8,7 @@ dependencies { compileOnly(project(":api")) compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") compileOnly("com.nexomc:nexo:0.5.0-dev.8") + compileOnly(files("libs/CraftEngine-0.0.11.jar")) } tasks.withType { diff --git a/compatibility/j21/libs/CraftEngine-0.0.11.jar b/compatibility/j21/libs/CraftEngine-0.0.11.jar new file mode 100644 index 00000000..782e976e Binary files /dev/null and b/compatibility/j21/libs/CraftEngine-0.0.11.jar differ diff --git a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineProvider.java b/compatibility/j21/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineItemProvider.java similarity index 93% rename from compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineProvider.java rename to compatibility/j21/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineItemProvider.java index 930b2b30..36f0e2fd 100644 --- a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineProvider.java +++ b/compatibility/j21/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineItemProvider.java @@ -17,8 +17,8 @@ package net.momirealms.customfishing.bukkit.integration.item; -import net.momirealms.craftengine.api.util.Key; import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine; +import net.momirealms.craftengine.core.util.Key; import net.momirealms.customfishing.api.integration.ItemProvider; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -28,7 +28,7 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; -public class CraftEngineProvider implements ItemProvider { +public class CraftEngineItemProvider implements ItemProvider { @Override public String identifier() { diff --git a/compatibility/libs/CraftEngine-0.0.8.jar b/compatibility/libs/CraftEngine-0.0.8.jar deleted file mode 100644 index b70993b6..00000000 Binary files a/compatibility/libs/CraftEngine-0.0.8.jar and /dev/null differ diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/fishing/BukkitFishingManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/fishing/BukkitFishingManager.java index 9aeb39d2..bbfb1f1c 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/fishing/BukkitFishingManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/fishing/BukkitFishingManager.java @@ -31,6 +31,7 @@ import net.momirealms.customfishing.api.mechanic.game.AbstractGamingPlayer; import net.momirealms.customfishing.api.mechanic.game.GamingPlayer; import net.momirealms.customfishing.api.mechanic.requirement.RequirementManager; import net.momirealms.customfishing.api.util.EventUtils; +import net.momirealms.sparrow.heart.SparrowHeart; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; @@ -82,8 +83,9 @@ public class BukkitFishingManager implements FishingManager, Listener { @Override public Optional getOwner(FishHook hook) { - if (hook.getOwnerUniqueId() != null) { - return Optional.ofNullable(Bukkit.getPlayer(hook.getOwnerUniqueId())); + UUID ownerUUID = SparrowHeart.getInstance().getFishingHookOwner(hook); + if (ownerUUID != null) { + return Optional.ofNullable(Bukkit.getPlayer(ownerUUID)); } return Optional.empty(); } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java index 1ee48571..ae384c58 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java @@ -86,7 +86,15 @@ public class BukkitIntegrationManager implements IntegrationManager { registerEntityProvider(new ItemsAdderEntityProvider()); } if (isHooked("CraftEngine")) { - registerItemProvider(new CraftEngineProvider()); + try { + Class ceItemProviderClass = Class.forName("net.momirealms.customfishing.bukkit.integration.item.CraftEngineItemProvider"); + Constructor itemProviderConstructor = ceItemProviderClass.getDeclaredConstructor(); + itemProviderConstructor.setAccessible(true); + ItemProvider itemProvider = (ItemProvider) itemProviderConstructor.newInstance(); + registerItemProvider(itemProvider); + } catch (ReflectiveOperationException e) { + plugin.getPluginLogger().warn("Failed to hook CraftEngine", e); + } } if (isHooked("Nexo")) { try { @@ -100,8 +108,8 @@ public class BukkitIntegrationManager implements IntegrationManager { nexoBlockProviderConstructor.setAccessible(true); BlockProvider blockProvider = (BlockProvider) nexoBlockProviderConstructor.newInstance(); registerBlockProvider(blockProvider); - } catch (ReflectiveOperationException exception) { - plugin.getPluginLogger().warn("Failed to hook Nexo", exception); + } catch (ReflectiveOperationException e) { + plugin.getPluginLogger().warn("Failed to hook Nexo", e); } } if (isHooked("MMOItems")) { diff --git a/gradle.properties b/gradle.properties index f10fd067..749fde13 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,7 +20,7 @@ h2_driver_version=2.3.232 sqlite_driver_version=3.48.0.0 adventure_bundle_version=4.18.0 adventure_platform_version=4.3.4 -sparrow_heart_version=0.49 +sparrow_heart_version=0.50 cloud_core_version=2.0.0 cloud_services_version=2.0.0 cloud_brigadier_version=2.0.0-beta.10