diff --git a/src/main/java/xyz/alexcrea/cuanvil/enchant/WrappedEnchantment.java b/src/main/java/xyz/alexcrea/cuanvil/enchant/WrappedEnchantment.java index efe277c..a452dce 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/enchant/WrappedEnchantment.java +++ b/src/main/java/xyz/alexcrea/cuanvil/enchant/WrappedEnchantment.java @@ -9,6 +9,7 @@ import org.bukkit.inventory.meta.EnchantmentStorageMeta; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import xyz.alexcrea.cuanvil.dependency.DependencyManager; import xyz.alexcrea.cuanvil.enchant.wrapped.VanillaEnchant; import java.util.*; @@ -172,7 +173,7 @@ public abstract class WrappedEnchantment { * @param item Item to get enchantment from. * @return A map of the set enchantments and there's respective levels. */ - public static Map getEnchants(@NotNull ItemStack item){ //TODO faster method to find vanilla enchantment + public static Map getEnchants(@NotNull ItemStack item){ Map enchantments = new HashMap<>(); ItemMeta meta = item.getItemMeta(); @@ -232,6 +233,10 @@ public abstract class WrappedEnchantment { register(new VanillaEnchant(enchantment)); } + if(DependencyManager.INSTANCE.getEnchantmentSquaredCompatibility() != null){ + DependencyManager.INSTANCE.getEnchantmentSquaredCompatibility().registerEnchantements(); + } + } /** diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java index db5e835..e41e0e3 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/MainConfigGui.java @@ -10,7 +10,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import xyz.alexcrea.cuanvil.gui.config.global.*; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; -import xyz.alexcrea.cuanvil.packet.PacketManager; +import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager; import java.util.Collections; diff --git a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java index 6476bec..3ab84a9 100644 --- a/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java +++ b/src/main/java/xyz/alexcrea/cuanvil/gui/config/global/BasicConfigGui.java @@ -18,7 +18,7 @@ import xyz.alexcrea.cuanvil.gui.config.settings.IntSettingsGui; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant; -import xyz.alexcrea.cuanvil.packet.PacketManager; +import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/kotlin/io/delilaheve/AnvilEventListener.kt b/src/main/kotlin/io/delilaheve/AnvilEventListener.kt index ead5a1a..f6f3303 100644 --- a/src/main/kotlin/io/delilaheve/AnvilEventListener.kt +++ b/src/main/kotlin/io/delilaheve/AnvilEventListener.kt @@ -27,7 +27,7 @@ import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.Repairable import xyz.alexcrea.cuanvil.config.ConfigHolder import xyz.alexcrea.cuanvil.group.ConflictType -import xyz.alexcrea.cuanvil.packet.PacketManager +import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe import xyz.alexcrea.cuanvil.util.UnitRepairUtil.getRepair import kotlin.math.min diff --git a/src/main/kotlin/io/delilaheve/CustomAnvil.kt b/src/main/kotlin/io/delilaheve/CustomAnvil.kt index 7d3503a..64c2926 100644 --- a/src/main/kotlin/io/delilaheve/CustomAnvil.kt +++ b/src/main/kotlin/io/delilaheve/CustomAnvil.kt @@ -7,13 +7,12 @@ import org.bukkit.plugin.java.JavaPlugin import xyz.alexcrea.cuanvil.command.EditConfigExecutor import xyz.alexcrea.cuanvil.command.ReloadExecutor import xyz.alexcrea.cuanvil.config.ConfigHolder +import xyz.alexcrea.cuanvil.dependency.DependencyManager import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment import xyz.alexcrea.cuanvil.gui.config.MainConfigGui import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant import xyz.alexcrea.cuanvil.listener.ChatEventListener -import xyz.alexcrea.cuanvil.packet.NoProtocoLib -import xyz.alexcrea.cuanvil.packet.PacketManager -import xyz.alexcrea.cuanvil.packet.ProtocoLibWrapper +import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager import xyz.alexcrea.cuanvil.update.Update_1_21 import xyz.alexcrea.cuanvil.util.Metrics import java.io.File @@ -76,8 +75,6 @@ class CustomAnvil : JavaPlugin() { } - lateinit var packetManager: PacketManager - /** * Setup plugin for use */ @@ -97,11 +94,8 @@ class CustomAnvil : JavaPlugin() { // Register enchantments WrappedEnchantment.registerEnchantments() - // Load ProtocolLib dependency if exist - packetManager = if(pluginManager.isPluginEnabled("ProtocolLib")) - { ProtocoLibWrapper(); } - else - { NoProtocoLib(); } + // Load dependency + DependencyManager.loadDependency() // Load chat listener chatListener = ChatEventListener() @@ -115,7 +109,7 @@ class CustomAnvil : JavaPlugin() { Update_1_21.handleUpdate() // Load gui constants //TODO maybe something better later - MainConfigGui.getInstance().init(this.packetManager) + MainConfigGui.getInstance().init(DependencyManager.packetManager) GuiSharedConstant.loadConstants() // Load metrics @@ -125,7 +119,7 @@ class CustomAnvil : JavaPlugin() { prepareCommand() server.pluginManager.registerEvents( - AnvilEventListener(packetManager), + AnvilEventListener(DependencyManager.packetManager), this ) } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt new file mode 100644 index 0000000..6a460cc --- /dev/null +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -0,0 +1,29 @@ +package xyz.alexcrea.cuanvil.dependency + +import org.bukkit.Bukkit +import xyz.alexcrea.cuanvil.dependency.protocolib.NoProtocoLib +import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager +import xyz.alexcrea.cuanvil.dependency.protocolib.ProtocoLibWrapper + +object DependencyManager { + + lateinit var packetManager: PacketManager + var enchantmentSquaredCompatibility: EnchantmentSquaredDependency? = null; + + fun loadDependency(){ + val pluginManager = Bukkit.getPluginManager(); + + // ProtocolLib dependency + packetManager = + if(pluginManager.isPluginEnabled("ProtocolLib")) ProtocoLibWrapper(); + else NoProtocoLib(); + + // Enchantment Squared dependency + enchantmentSquaredCompatibility = + if(pluginManager.isPluginEnabled("EnchantsSquared")) EnchantmentSquaredDependency() + else null + + + } + +} diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/EnchantmentSquaredDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/EnchantmentSquaredDependency.kt new file mode 100644 index 0000000..e641e5a --- /dev/null +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/EnchantmentSquaredDependency.kt @@ -0,0 +1,9 @@ +package xyz.alexcrea.cuanvil.dependency + +class EnchantmentSquaredDependency { + + fun registerEnchantements(){ + //TODO + } + +} diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/packet/NoProtocoLib.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/NoProtocoLib.kt similarity index 83% rename from src/main/kotlin/xyz/alexcrea/cuanvil/packet/NoProtocoLib.kt rename to src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/NoProtocoLib.kt index 29c2074..3591baa 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/packet/NoProtocoLib.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/NoProtocoLib.kt @@ -1,4 +1,4 @@ -package xyz.alexcrea.cuanvil.packet +package xyz.alexcrea.cuanvil.dependency.protocolib import org.bukkit.entity.Player diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/packet/PacketManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/PacketManager.kt similarity index 76% rename from src/main/kotlin/xyz/alexcrea/cuanvil/packet/PacketManager.kt rename to src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/PacketManager.kt index a59a48c..65830ac 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/packet/PacketManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/PacketManager.kt @@ -1,4 +1,4 @@ -package xyz.alexcrea.cuanvil.packet +package xyz.alexcrea.cuanvil.dependency.protocolib import org.bukkit.entity.Player diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/packet/ProtocoLibWrapper.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/ProtocoLibWrapper.kt similarity index 95% rename from src/main/kotlin/xyz/alexcrea/cuanvil/packet/ProtocoLibWrapper.kt rename to src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/ProtocoLibWrapper.kt index f7e5e92..8a52e31 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/packet/ProtocoLibWrapper.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/protocolib/ProtocoLibWrapper.kt @@ -1,4 +1,4 @@ -package xyz.alexcrea.cuanvil.packet +package xyz.alexcrea.cuanvil.dependency.protocolib import com.comphenix.protocol.PacketType import com.comphenix.protocol.ProtocolLibrary