diff --git a/build.gradle b/build.gradle index 127a8e73..1aecb3c6 100644 --- a/build.gradle +++ b/build.gradle @@ -58,6 +58,7 @@ dependencies { implementation('net.kyori:adventure-text-serializer-legacy:4.11.0') implementation('de.tr7zw:item-nbt-api:2.10.0') compileOnly('com.willfp:EcoSkills:1.72.0') + compileOnly('com.willfp:eco:6.38.3') } def targetJavaVersion = 16 diff --git a/src/main/java/net/momirealms/customfishing/ConfigReader.java b/src/main/java/net/momirealms/customfishing/ConfigReader.java index 1b5349df..039484be 100644 --- a/src/main/java/net/momirealms/customfishing/ConfigReader.java +++ b/src/main/java/net/momirealms/customfishing/ConfigReader.java @@ -22,6 +22,7 @@ import net.momirealms.customcrops.helper.Log; import net.momirealms.customfishing.competition.CompetitionConfig; import net.momirealms.customfishing.competition.Goal; import net.momirealms.customfishing.competition.bossbar.BossBarConfig; +import net.momirealms.customfishing.hook.EcoItemRegister; import net.momirealms.customfishing.hook.season.CustomCropsSeason; import net.momirealms.customfishing.hook.season.RealisticSeason; import net.momirealms.customfishing.hook.season.SeasonInterface; @@ -81,6 +82,9 @@ public class ConfigReader{ loadBait(); loadEnchants(); loadCompetitions(); + if (Bukkit.getPluginManager().isPluginEnabled("eco")) { + EcoItemRegister.registerItems(); + } } public static class Config { diff --git a/src/main/java/net/momirealms/customfishing/hook/EcoItemRegister.java b/src/main/java/net/momirealms/customfishing/hook/EcoItemRegister.java new file mode 100644 index 00000000..5908a6e6 --- /dev/null +++ b/src/main/java/net/momirealms/customfishing/hook/EcoItemRegister.java @@ -0,0 +1,72 @@ +package net.momirealms.customfishing.hook; + +import com.willfp.eco.core.items.CustomItem; +import net.momirealms.customfishing.ConfigReader; +import net.momirealms.customfishing.CustomFishing; +import org.bukkit.NamespacedKey; +import org.bukkit.inventory.ItemStack; +import org.bukkit.persistence.PersistentDataType; + +import java.util.Map; + +public class EcoItemRegister { + public static void registerItems() { + // Rods + for (Map.Entry entry : ConfigReader.RodItem.entrySet()) { + new CustomItem( + new NamespacedKey(CustomFishing.instance, "rod_" + entry.getKey()), + itemStack -> { + try { + return itemStack.getItemMeta().getPersistentDataContainer() + .get(new NamespacedKey(CustomFishing.instance, "type"), + PersistentDataType.STRING).equalsIgnoreCase("rod") + && itemStack.getItemMeta().getPersistentDataContainer() + .get(new NamespacedKey(CustomFishing.instance, "id"), + PersistentDataType.STRING).equalsIgnoreCase(entry.getKey()); + } catch (Exception e) { + return false; + } + }, + entry.getValue() + ).register(); + } + // Baits + for (Map.Entry entry : ConfigReader.BaitItem.entrySet()) { + new CustomItem( + new NamespacedKey(CustomFishing.instance, "bait_" + entry.getKey()), + itemStack -> { + try { + return itemStack.getItemMeta().getPersistentDataContainer() + .get(new NamespacedKey(CustomFishing.instance, "type"), + PersistentDataType.STRING).equalsIgnoreCase("bait") + && itemStack.getItemMeta().getPersistentDataContainer() + .get(new NamespacedKey(CustomFishing.instance, "id"), + PersistentDataType.STRING).equalsIgnoreCase(entry.getKey()); + } catch (Exception e) { + return false; + } + }, + entry.getValue() + ).register(); + } + // Utils + for (Map.Entry entry : ConfigReader.UtilItem.entrySet()) { + new CustomItem( + new NamespacedKey(CustomFishing.instance, "util_" + entry.getKey()), + itemStack -> { + try { + return itemStack.getItemMeta().getPersistentDataContainer() + .get(new NamespacedKey(CustomFishing.instance, "type"), + PersistentDataType.STRING).equalsIgnoreCase("util") + && itemStack.getItemMeta().getPersistentDataContainer() + .get(new NamespacedKey(CustomFishing.instance, "id"), + PersistentDataType.STRING).equalsIgnoreCase(entry.getKey()); + } catch (Exception e) { + return false; + } + }, + entry.getValue() + ).register(); + } + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a39668fc..31ab458b 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -17,6 +17,7 @@ softdepend: - ItemsAdder - Oraxen - MMOItems + - eco commands: customfishing: usage: /customfishing