diff --git a/eco-core/core-backend-modern/src/main/kotlin/com/willfp/eco/internal/compat/modern/recipes/AutocrafterPatchImpl.kt b/eco-core/core-backend-modern/src/main/kotlin/com/willfp/eco/internal/compat/modern/recipes/AutocrafterPatchImpl.kt new file mode 100644 index 000000000..b230a42e7 --- /dev/null +++ b/eco-core/core-backend-modern/src/main/kotlin/com/willfp/eco/internal/compat/modern/recipes/AutocrafterPatchImpl.kt @@ -0,0 +1,19 @@ +@file:Suppress("UnstableApiUsage") + +package com.willfp.eco.internal.compat.modern.recipes + +import com.willfp.eco.core.EcoPlugin +import com.willfp.eco.internal.recipes.AutocrafterPatch +import org.bukkit.event.EventHandler +import org.bukkit.event.block.CrafterCraftEvent + +class AutocrafterPatchImpl: AutocrafterPatch { + @EventHandler + fun preventEcoRecipes(event: CrafterCraftEvent) { + if (!EcoPlugin.getPluginNames().contains(event.recipe.key.namespace)) { + return + } + + event.isCancelled = true + } +} diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/recipes/AutocrafterPatch.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/recipes/AutocrafterPatch.kt new file mode 100644 index 000000000..367ab811e --- /dev/null +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/recipes/AutocrafterPatch.kt @@ -0,0 +1,7 @@ +package com.willfp.eco.internal.recipes + +import com.willfp.eco.internal.compat.ModernCompatibilityProxy +import org.bukkit.event.Listener + +@ModernCompatibilityProxy("recipes.AutocrafterPatchImpl") +interface AutocrafterPatch: Listener diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt index ca8ce9f88..a878b6ee4 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt @@ -58,6 +58,7 @@ import com.willfp.eco.internal.particle.ParticleFactoryRGB import com.willfp.eco.internal.price.PriceFactoryEconomy import com.willfp.eco.internal.price.PriceFactoryXP import com.willfp.eco.internal.price.PriceFactoryXPLevels +import com.willfp.eco.internal.recipes.AutocrafterPatch import com.willfp.eco.internal.spigot.arrows.ArrowDataListener import com.willfp.eco.internal.spigot.data.DataListener import com.willfp.eco.internal.spigot.data.DataYml @@ -433,6 +434,10 @@ abstract class EcoSpigotPlugin : EcoPlugin() { listeners.add(NaturalExpGainListenersSpigot()) } + ifModern { + listeners += loadProxy() + } + return listeners } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipeListener.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipeListener.kt index a04e2d148..53dc08a68 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipeListener.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipeListener.kt @@ -1,10 +1,8 @@ package com.willfp.eco.internal.spigot.recipes -import com.willfp.eco.core.Eco import com.willfp.eco.core.EcoPlugin import com.willfp.eco.core.recipe.Recipes import org.bukkit.Keyed -import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.Listener import org.bukkit.event.inventory.CraftItemEvent @@ -17,6 +15,7 @@ class CraftingRecipeListener(val plugin: EcoPlugin) : Listener { if (!EcoPlugin.getPluginNames().contains(event.recipe.namespace)) { return } + if (event.recipe.key.contains("_displayed")) { event.isCancelled = true } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipes.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipes.kt index d47c9ab40..5c472e44b 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipes.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/recipes/CraftingRecipes.kt @@ -59,4 +59,4 @@ class WrappedCraftItemEvent( event.result = Event.Result.DENY event.isCancelled = true } -} \ No newline at end of file +}