Created 1.18 R1 (plugin's native version) nms package.

Created 1.18 R1 handling of sending player abilities packet and tested on spigot.
Documented force_protocolib config.
This commit is contained in:
alexcrea 2024-08-08 23:37:43 +02:00
parent 6c5eab6fff
commit 0f2a295039
No known key found for this signature in database
GPG key ID: 43FD265DB0DBF91F
15 changed files with 201 additions and 67 deletions

View file

@ -98,6 +98,12 @@ class CustomAnvil : JavaPlugin() {
chatListener = ChatEventListener()
server.pluginManager.registerEvents(chatListener, this)
// Load default configuration
if (!ConfigHolder.loadDefaultConfig()) {
logger.log(Level.SEVERE,"could not load default config.")
return
}
// Load dependency
DependencyManager.loadDependency()
@ -113,12 +119,6 @@ class CustomAnvil : JavaPlugin() {
}
private fun loadEnchantmentSystem(){
// Load default configuration
if (!ConfigHolder.loadDefaultConfig()) {
logger.log(Level.SEVERE,"could not load default config.")
return
}
// Register enchantments
CAEnchantmentRegistry.getInstance().registerBukkit()
DependencyManager.registerEnchantments()

View file

@ -14,7 +14,7 @@ object DependencyManager {
fun loadDependency(){
val pluginManager = Bukkit.getPluginManager()
// ProtocolLib dependency
// Packet Manager
val forceProtocolib = ConfigHolder.DEFAULT_CONFIG.config.getBoolean("force_protocolib", false)
packetManager = PacketManagerSelector.selectPacketManager(forceProtocolib)

View file

@ -0,0 +1,67 @@
package xyz.alexcrea.cuanvil.dependency.packet
import org.bukkit.Bukkit
import xyz.alexcrea.cuanvil.dependency.packet.versions.V1_18R1_Manager
import xyz.alexcrea.cuanvil.update.UpdateUtils
object PacketManagerSelector {
fun selectPacketManager(forceProtocolib: Boolean): PacketManager {
// Try to find version
return if (forceProtocolib)
protocolibIfPresent
else
versionSpecificManager ?: protocolibIfPresent
}
private val protocolibIfPresent: PacketManager
get() =
if (Bukkit.getPluginManager().isPluginEnabled("ProtocolLib"))
ProtocoLibWrapper()
else
NoPacketManager()
private val versionSpecificManager: PacketManager?
get() {
val versionParts = UpdateUtils.currentMinecraftVersion()
if (versionParts[0] != 1) return null;
return when (versionParts[1]) {
16 -> when (versionParts[2]) {
4, 5 -> null // TODO V1_16R3 (if possible)
else -> null
}
17 -> when (versionParts[2]) {
0, 1 -> null // TODO V1_17R1 (if possible)
else -> null
}
18 -> when (versionParts[2]) {
0, 1 -> V1_18R1_Manager()
2 -> null // TODO V1_18R2
else -> null
}
19 -> when (versionParts[2]) {
0, 1, 2 -> null // TODO V1_19R1
3 -> null // TODO V1_19R2
4 -> null // TODO V1_19R3
else -> null
}
20 -> when (versionParts[2]) {
0, 1 -> null // TODO V1_20R1
2 -> null // TODO V1_20R2
3, 4 -> null // TODO V1_20R3
5, 6 -> null // TODO V1_20R4
else -> null
}
21 -> when (versionParts[2]) {
0 -> null // TODO V1_21R1
else -> null
}
else -> null
}
}
}