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.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import xyz.alexcrea.cuanvil.dependency.DependencyManager;
import xyz.alexcrea.cuanvil.enchant.wrapped.VanillaEnchant; import xyz.alexcrea.cuanvil.enchant.wrapped.VanillaEnchant;
import java.util.*; import java.util.*;
@ -172,7 +173,7 @@ public abstract class WrappedEnchantment {
* @param item Item to get enchantment from. * @param item Item to get enchantment from.
* @return A map of the set enchantments and there's respective levels. * @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<>(); Map<WrappedEnchantment, Integer> enchantments = new HashMap<>();
ItemMeta meta = item.getItemMeta(); ItemMeta meta = item.getItemMeta();
@ -232,6 +233,10 @@ public abstract class WrappedEnchantment {
register(new VanillaEnchant(enchantment)); 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 org.bukkit.inventory.meta.ItemMeta;
import xyz.alexcrea.cuanvil.gui.config.global.*; import xyz.alexcrea.cuanvil.gui.config.global.*;
import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems;
import xyz.alexcrea.cuanvil.packet.PacketManager; import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager;
import java.util.Collections; 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.GuiGlobalActions;
import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems; import xyz.alexcrea.cuanvil.gui.util.GuiGlobalItems;
import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant; 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.ArrayList;
import java.util.Arrays; import java.util.Arrays;

View file

@ -27,7 +27,7 @@ import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.meta.Repairable import org.bukkit.inventory.meta.Repairable
import xyz.alexcrea.cuanvil.config.ConfigHolder import xyz.alexcrea.cuanvil.config.ConfigHolder
import xyz.alexcrea.cuanvil.group.ConflictType 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.recipe.AnvilCustomRecipe
import xyz.alexcrea.cuanvil.util.UnitRepairUtil.getRepair import xyz.alexcrea.cuanvil.util.UnitRepairUtil.getRepair
import kotlin.math.min 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.EditConfigExecutor
import xyz.alexcrea.cuanvil.command.ReloadExecutor import xyz.alexcrea.cuanvil.command.ReloadExecutor
import xyz.alexcrea.cuanvil.config.ConfigHolder import xyz.alexcrea.cuanvil.config.ConfigHolder
import xyz.alexcrea.cuanvil.dependency.DependencyManager
import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment
import xyz.alexcrea.cuanvil.gui.config.MainConfigGui import xyz.alexcrea.cuanvil.gui.config.MainConfigGui
import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant import xyz.alexcrea.cuanvil.gui.util.GuiSharedConstant
import xyz.alexcrea.cuanvil.listener.ChatEventListener import xyz.alexcrea.cuanvil.listener.ChatEventListener
import xyz.alexcrea.cuanvil.packet.NoProtocoLib import xyz.alexcrea.cuanvil.dependency.protocolib.PacketManager
import xyz.alexcrea.cuanvil.packet.PacketManager
import xyz.alexcrea.cuanvil.packet.ProtocoLibWrapper
import xyz.alexcrea.cuanvil.update.Update_1_21 import xyz.alexcrea.cuanvil.update.Update_1_21
import xyz.alexcrea.cuanvil.util.Metrics import xyz.alexcrea.cuanvil.util.Metrics
import java.io.File import java.io.File
@ -76,8 +75,6 @@ class CustomAnvil : JavaPlugin() {
} }
lateinit var packetManager: PacketManager
/** /**
* Setup plugin for use * Setup plugin for use
*/ */
@ -97,11 +94,8 @@ class CustomAnvil : JavaPlugin() {
// Register enchantments // Register enchantments
WrappedEnchantment.registerEnchantments() WrappedEnchantment.registerEnchantments()
// Load ProtocolLib dependency if exist // Load dependency
packetManager = if(pluginManager.isPluginEnabled("ProtocolLib")) DependencyManager.loadDependency()
{ ProtocoLibWrapper(); }
else
{ NoProtocoLib(); }
// Load chat listener // Load chat listener
chatListener = ChatEventListener() chatListener = ChatEventListener()
@ -115,7 +109,7 @@ class CustomAnvil : JavaPlugin() {
Update_1_21.handleUpdate() Update_1_21.handleUpdate()
// Load gui constants //TODO maybe something better later // Load gui constants //TODO maybe something better later
MainConfigGui.getInstance().init(this.packetManager) MainConfigGui.getInstance().init(DependencyManager.packetManager)
GuiSharedConstant.loadConstants() GuiSharedConstant.loadConstants()
// Load metrics // Load metrics
@ -125,7 +119,7 @@ class CustomAnvil : JavaPlugin() {
prepareCommand() prepareCommand()
server.pluginManager.registerEvents( server.pluginManager.registerEvents(
AnvilEventListener(packetManager), AnvilEventListener(DependencyManager.packetManager),
this 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 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 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.PacketType
import com.comphenix.protocol.ProtocolLibrary import com.comphenix.protocol.ProtocolLibrary