9
0
mirror of https://github.com/Xiao-MoMi/Custom-Fishing.git synced 2025-12-19 15:09:24 +00:00

Update CraftEngine compatibility

This commit is contained in:
XiaoMoMi
2025-02-15 15:56:43 +08:00
parent 4a7182fa31
commit 3c555a1cdf
10 changed files with 23 additions and 11 deletions

View File

@@ -79,6 +79,7 @@ public class FishingHookStateEvent extends PlayerEvent {
BITE, BITE,
ESCAPE, ESCAPE,
LURE, LURE,
LAND LAND,
HOOK
} }
} }

View File

@@ -19,6 +19,7 @@ package net.momirealms.customfishing.api.mechanic.fishing;
import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; import net.momirealms.customfishing.api.BukkitCustomFishingPlugin;
import net.momirealms.customfishing.api.event.FishingEffectApplyEvent; 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.FishingLootSpawnEvent;
import net.momirealms.customfishing.api.event.FishingResultEvent; import net.momirealms.customfishing.api.event.FishingResultEvent;
import net.momirealms.customfishing.api.mechanic.MechanicType; import net.momirealms.customfishing.api.mechanic.MechanicType;
@@ -383,6 +384,7 @@ public class CustomFishingHook {
gears.trigger(ActionTrigger.REEL, context); gears.trigger(ActionTrigger.REEL, context);
destroy(); destroy();
} else { } else {
EventUtils.fireAndForget(new FishingHookStateEvent(context.holder(), hook, FishingHookStateEvent.State.HOOK));
if (nextLoot.disableGame() || RequirementManager.isSatisfied(context, ConfigManager.skipGameRequirements())) { if (nextLoot.disableGame() || RequirementManager.isSatisfied(context, ConfigManager.skipGameRequirements())) {
handleSuccessfulFishing(); handleSuccessfulFishing();
destroy(); destroy();
@@ -398,7 +400,6 @@ public class CustomFishingHook {
} }
} }
/** /**
* Handles the bite action. * Handles the bite action.
*/ */

View File

@@ -51,7 +51,6 @@ dependencies {
compileOnly(files("libs/ExecutableItems-7.24.9.29.jar")) 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/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(files("libs/libreforge-4.73.0.jar"))
compileOnly("com.github.LoneDev6:API-ItemsAdder:3.6.1") compileOnly("com.github.LoneDev6:API-ItemsAdder:3.6.1")
compileOnly("net.Indyuce:MMOItems-API:6.10-SNAPSHOT") compileOnly("net.Indyuce:MMOItems-API:6.10-SNAPSHOT")

View File

@@ -8,6 +8,7 @@ dependencies {
compileOnly(project(":api")) compileOnly(project(":api"))
compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
compileOnly("com.nexomc:nexo:0.5.0-dev.8") compileOnly("com.nexomc:nexo:0.5.0-dev.8")
compileOnly(files("libs/CraftEngine-0.0.11.jar"))
} }
tasks.withType<JavaCompile> { tasks.withType<JavaCompile> {

Binary file not shown.

View File

@@ -17,8 +17,8 @@
package net.momirealms.customfishing.bukkit.integration.item; 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.bukkit.plugin.BukkitCraftEngine;
import net.momirealms.craftengine.core.util.Key;
import net.momirealms.customfishing.api.integration.ItemProvider; import net.momirealms.customfishing.api.integration.ItemProvider;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@@ -28,7 +28,7 @@ import java.util.Optional;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;
public class CraftEngineProvider implements ItemProvider { public class CraftEngineItemProvider implements ItemProvider {
@Override @Override
public String identifier() { public String identifier() {

View File

@@ -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.game.GamingPlayer;
import net.momirealms.customfishing.api.mechanic.requirement.RequirementManager; import net.momirealms.customfishing.api.mechanic.requirement.RequirementManager;
import net.momirealms.customfishing.api.util.EventUtils; import net.momirealms.customfishing.api.util.EventUtils;
import net.momirealms.sparrow.heart.SparrowHeart;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.Material; import org.bukkit.Material;
@@ -82,8 +83,9 @@ public class BukkitFishingManager implements FishingManager, Listener {
@Override @Override
public Optional<Player> getOwner(FishHook hook) { public Optional<Player> getOwner(FishHook hook) {
if (hook.getOwnerUniqueId() != null) { UUID ownerUUID = SparrowHeart.getInstance().getFishingHookOwner(hook);
return Optional.ofNullable(Bukkit.getPlayer(hook.getOwnerUniqueId())); if (ownerUUID != null) {
return Optional.ofNullable(Bukkit.getPlayer(ownerUUID));
} }
return Optional.empty(); return Optional.empty();
} }

View File

@@ -86,7 +86,15 @@ public class BukkitIntegrationManager implements IntegrationManager {
registerEntityProvider(new ItemsAdderEntityProvider()); registerEntityProvider(new ItemsAdderEntityProvider());
} }
if (isHooked("CraftEngine")) { 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")) { if (isHooked("Nexo")) {
try { try {
@@ -100,8 +108,8 @@ public class BukkitIntegrationManager implements IntegrationManager {
nexoBlockProviderConstructor.setAccessible(true); nexoBlockProviderConstructor.setAccessible(true);
BlockProvider blockProvider = (BlockProvider) nexoBlockProviderConstructor.newInstance(); BlockProvider blockProvider = (BlockProvider) nexoBlockProviderConstructor.newInstance();
registerBlockProvider(blockProvider); registerBlockProvider(blockProvider);
} catch (ReflectiveOperationException exception) { } catch (ReflectiveOperationException e) {
plugin.getPluginLogger().warn("Failed to hook Nexo", exception); plugin.getPluginLogger().warn("Failed to hook Nexo", e);
} }
} }
if (isHooked("MMOItems")) { if (isHooked("MMOItems")) {

View File

@@ -20,7 +20,7 @@ h2_driver_version=2.3.232
sqlite_driver_version=3.48.0.0 sqlite_driver_version=3.48.0.0
adventure_bundle_version=4.18.0 adventure_bundle_version=4.18.0
adventure_platform_version=4.3.4 adventure_platform_version=4.3.4
sparrow_heart_version=0.49 sparrow_heart_version=0.50
cloud_core_version=2.0.0 cloud_core_version=2.0.0
cloud_services_version=2.0.0 cloud_services_version=2.0.0
cloud_brigadier_version=2.0.0-beta.10 cloud_brigadier_version=2.0.0-beta.10