Add new Packet Manager Selector

This commit is contained in:
alexcrea 2024-08-08 04:21:23 +02:00
parent 3cc9c674f3
commit 6c5eab6fff
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
2 changed files with 45 additions and 5 deletions

View file

@ -0,0 +1,41 @@
package xyz.alexcrea.cuanvil.dependency.packet;
import org.bukkit.Bukkit;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class PacketManagerSelector {
private PacketManagerSelector(){}
public static @NotNull PacketManager selectPacketManager(boolean forceProtocolib){
// Try to find version
if(forceProtocolib){
PacketManager protocolibPacketManager = getProtocolibIfPresent();
if(protocolibPacketManager != null) return protocolibPacketManager;
}
PacketManager versionSpecificManager = getVersionSpecificManager();
if(versionSpecificManager != null) return versionSpecificManager;
if(!forceProtocolib){
PacketManager protocolibPacketManager = getProtocolibIfPresent();
if(protocolibPacketManager != null) return protocolibPacketManager;
}
return new NoPacketManager();
}
private static @Nullable PacketManager getProtocolibIfPresent(){
if(Bukkit.getPluginManager().isPluginEnabled("ProtocolLib")) return new ProtocoLibWrapper();
return null;
}
private static @Nullable PacketManager getVersionSpecificManager() {
//TODO depending on version. find the manager !
return null;
}
}

View file

@ -1,9 +1,9 @@
package xyz.alexcrea.cuanvil.dependency
import org.bukkit.Bukkit
import xyz.alexcrea.cuanvil.dependency.packet.NoPacketManager
import xyz.alexcrea.cuanvil.config.ConfigHolder
import xyz.alexcrea.cuanvil.dependency.packet.PacketManager
import xyz.alexcrea.cuanvil.dependency.packet.ProtocoLibWrapper
import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerSelector
object DependencyManager {
@ -15,9 +15,8 @@ object DependencyManager {
val pluginManager = Bukkit.getPluginManager()
// ProtocolLib dependency
packetManager =
if(pluginManager.isPluginEnabled("ProtocolLib")) ProtocoLibWrapper()
else NoPacketManager()
val forceProtocolib = ConfigHolder.DEFAULT_CONFIG.config.getBoolean("force_protocolib", false)
packetManager = PacketManagerSelector.selectPacketManager(forceProtocolib)
// Enchantment Squared dependency
if(pluginManager.isPluginEnabled("EnchantsSquared")){