diff --git a/eco-core/core-plugin/src/main/java/com/willfp/reforges/util/DiscoverRecipeListener.java b/eco-core/core-plugin/src/main/java/com/willfp/reforges/util/DiscoverRecipeListener.java new file mode 100644 index 0000000..91f2081 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/reforges/util/DiscoverRecipeListener.java @@ -0,0 +1,47 @@ + +package com.willfp.reforges.util; + +import com.willfp.eco.core.EcoPlugin; +import com.willfp.eco.core.PluginDependent; +import org.bukkit.Bukkit; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.ShapedRecipe; +import org.jetbrains.annotations.NotNull; + +public class DiscoverRecipeListener extends PluginDependent implements Listener { + /** + * Register listener. + * + * @param plugin Talismans. + */ + public DiscoverRecipeListener(@NotNull final EcoPlugin plugin) { + super(plugin); + } + + /** + * Unlock all recipes on player join. + * + * @param event The event to listen for. + */ + @EventHandler + public void onJoin(@NotNull final PlayerJoinEvent event) { + Player player = event.getPlayer(); + + if (this.getPlugin().getConfigYml().getBool("discover-recipes")) { + Bukkit.getServer().recipeIterator().forEachRemaining(recipe -> { + if (recipe instanceof ShapedRecipe) { + NamespacedKey key = ((ShapedRecipe) recipe).getKey(); + if (key.getNamespace().equals("reforges")) { + if (!key.getKey().contains("displayed")) { + player.discoverRecipe(key); + } + } + } + }); + } + } +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/config.yml b/eco-core/core-plugin/src/main/resources/config.yml index 8ac09fc..f9ab415 100644 --- a/eco-core/core-plugin/src/main/resources/config.yml +++ b/eco-core/core-plugin/src/main/resources/config.yml @@ -3,6 +3,8 @@ # by Auxilor # +discover-recipes: true + gui: allow: material: anvil