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