Rewriten how dependency is handled

This commit is contained in:
alexcrea 2024-06-16 12:58:44 +02:00
parent b512d8f732
commit aad9974baf
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
10 changed files with 56 additions and 19 deletions

View file

@ -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<WrappedEnchantment, Integer> getEnchants(@NotNull ItemStack item){ //TODO faster method to find vanilla enchantment
public static Map<WrappedEnchantment, Integer> getEnchants(@NotNull ItemStack item){
Map<WrappedEnchantment, Integer> 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();
}
}
/**

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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
)
}

View file

@ -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
}
}

View file

@ -0,0 +1,9 @@
package xyz.alexcrea.cuanvil.dependency
class EnchantmentSquaredDependency {
fun registerEnchantements(){
//TODO
}
}

View file

@ -1,4 +1,4 @@
package xyz.alexcrea.cuanvil.packet
package xyz.alexcrea.cuanvil.dependency.protocolib
import org.bukkit.entity.Player

View file

@ -1,4 +1,4 @@
package xyz.alexcrea.cuanvil.packet
package xyz.alexcrea.cuanvil.dependency.protocolib
import org.bukkit.entity.Player

View file

@ -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