From d837311ae207c10483ef37db5fbe22a16e7a360d Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 14 Aug 2021 13:37:05 +0100 Subject: [PATCH] Added discover-recipes --- .../com/willfp/ecobosses/EcoBossesPlugin.java | 2 + .../util/DiscoverRecipeListener.java | 46 +++++++++++++++++++ .../core-plugin/src/main/resources/config.yml | 1 + 3 files changed, 49 insertions(+) create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/ecobosses/util/DiscoverRecipeListener.java diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java index 0a74517..d289b80 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java @@ -9,6 +9,7 @@ import com.willfp.ecobosses.bosses.listeners.PassiveListeners; import com.willfp.ecobosses.bosses.listeners.SpawnListeners; import com.willfp.ecobosses.bosses.util.BossUtils; import com.willfp.ecobosses.commands.CommandEcobosses; +import com.willfp.ecobosses.util.DiscoverRecipeListener; import lombok.Getter; import org.bukkit.event.Listener; @@ -54,6 +55,7 @@ public class EcoBossesPlugin extends EcoPlugin { new AttackListeners(this), new DeathListeners(this), new SpawnListeners(this), + new DiscoverRecipeListener(this), new PassiveListeners(this) ); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/util/DiscoverRecipeListener.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/util/DiscoverRecipeListener.java new file mode 100644 index 0000000..7e2e37f --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/util/DiscoverRecipeListener.java @@ -0,0 +1,46 @@ +package com.willfp.ecobosses.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("ecobosses")) { + 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 0da5e65..9b0e9a3 100644 --- a/eco-core/core-plugin/src/main/resources/config.yml +++ b/eco-core/core-plugin/src/main/resources/config.yml @@ -4,5 +4,6 @@ # bossbar-radius: 50 # How far away players should be able to see the boss bar for bosses. +discover-recipes: true # Read the wiki! https://ecobosses.willfp.com/ \ No newline at end of file