Skip to content

Commit 86b62b9

Browse files
authored
Feat/implement clientbound disconnect packet (#84)
2 parents bfdaefb + 98b7027 commit 86b62b9

7 files changed

Lines changed: 55 additions & 4 deletions

File tree

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ javaVersion=21
99
mcVersion=1.21.4
1010

1111
group=dev.slne.surf
12-
version=1.21.4-2.12.0-SNAPSHOT
12+
version=1.21.4-2.13.0-SNAPSHOT
1313
relocationPrefix=dev.slne.surf.surfapi.libs

surf-api-bukkit/surf-api-bukkit-api/api/surf-api-bukkit-api.api

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1500,6 +1500,10 @@ public abstract interface class dev/slne/surf/surfapi/bukkit/api/nms/listener/pa
15001500
public abstract fun getPacketClass ()Ljava/lang/Class;
15011501
}
15021502

1503+
public abstract interface class dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/clientbound/DisconnectPacket : dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/clientbound/NmsClientboundPacket {
1504+
public abstract fun getReason ()Lnet/kyori/adventure/text/Component;
1505+
}
1506+
15031507
public abstract interface class dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/clientbound/NmsClientboundPacket : dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/NmsPacket {
15041508
}
15051509

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package dev.slne.surf.surfapi.bukkit.api.nms.listener.packets.clientbound
2+
3+
import dev.slne.surf.surfapi.bukkit.api.nms.NmsUseWithCaution
4+
import net.kyori.adventure.text.Component
5+
6+
@NmsUseWithCaution
7+
interface DisconnectPacket : NmsClientboundPacket {
8+
val reason: Component
9+
}

surf-api-bukkit/surf-api-bukkit-server/src/main/kotlin/dev/slne/surf/surfapi/bukkit/server/impl/nms/listener/packets/PacketRegistry.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@ package dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets
33
import dev.slne.surf.surfapi.bukkit.api.nms.NmsUseWithCaution
44
import dev.slne.surf.surfapi.bukkit.api.nms.listener.packets.clientbound.NmsClientboundPacket
55
import dev.slne.surf.surfapi.bukkit.api.nms.listener.packets.serverbound.NmsServerboundPacket
6+
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.clientbound.ClientboundDisconnectPacketImpl
67
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.serverbound.CommandSuggestionPacketImpl
78
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.serverbound.RenameItemPacketImpl
89
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.serverbound.SignUpdatePacketImpl
910
import dev.slne.surf.surfapi.core.api.util.mutableObject2ObjectMapOf
1011
import net.minecraft.network.protocol.Packet
11-
import net.minecraft.network.protocol.game.*
12+
import net.minecraft.network.protocol.common.ClientCommonPacketListener
13+
import net.minecraft.network.protocol.common.ClientboundDisconnectPacket
14+
import net.minecraft.network.protocol.game.ServerGamePacketListener
15+
import net.minecraft.network.protocol.game.ServerboundCommandSuggestionPacket
16+
import net.minecraft.network.protocol.game.ServerboundRenameItemPacket
17+
import net.minecraft.network.protocol.game.ServerboundSignUpdatePacket
1218
import kotlin.reflect.KClass
1319

1420
@OptIn(NmsUseWithCaution::class)
@@ -20,9 +26,13 @@ object PacketRegistry {
2026

2127
init {
2228
// @formatter:off
29+
// Serverbound packets
2330
registerServerboundPacket(ServerboundSignUpdatePacket::class) { SignUpdatePacketImpl(it) }
2431
registerServerboundPacket(ServerboundRenameItemPacket::class) { RenameItemPacketImpl(it) }
2532
registerServerboundPacket(ServerboundCommandSuggestionPacket::class) { CommandSuggestionPacketImpl(it) }
33+
34+
// Clientbound packets
35+
registerClientboundPacket(ClientboundDisconnectPacket::class) { ClientboundDisconnectPacketImpl(it) }
2636
// @formatter:on
2737
}
2838

@@ -38,9 +48,9 @@ object PacketRegistry {
3848
return factory?.create(packet)
3949
}
4050

41-
private fun <Nms : Packet<ClientGamePacketListener>, Api : NmsClientboundPacket> registerClientboundPacket(
51+
private fun <Nms : Packet<ClientCommonPacketListener>, Api : NmsClientboundPacket> registerClientboundPacket(
4252
nms: KClass<Nms>,
43-
factory: ClientboundPacketFactory<Nms, Api>
53+
factory: ClientboundPacketFactory<Nms, Api>,
4454
) {
4555
CLIENTBOUND_PACKETS.put(nms.java, factory)
4656
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.clientbound
2+
3+
import dev.slne.surf.surfapi.bukkit.api.nms.NmsUseWithCaution
4+
import dev.slne.surf.surfapi.bukkit.api.nms.listener.packets.clientbound.DisconnectPacket
5+
import dev.slne.surf.surfapi.bukkit.server.nms.toBukkit
6+
import net.minecraft.network.protocol.common.ClientboundDisconnectPacket
7+
8+
@NmsUseWithCaution
9+
class ClientboundDisconnectPacketImpl(nmsPacket: ClientboundDisconnectPacket) :
10+
NmsClientboundPacketImpl<ClientboundDisconnectPacket>(nmsPacket), DisconnectPacket {
11+
override val reason get() = nmsPacket.reason.toBukkit()
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.clientbound
2+
3+
import dev.slne.surf.surfapi.bukkit.api.nms.NmsUseWithCaution
4+
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.NmsPacketImpl
5+
import net.minecraft.network.protocol.Packet
6+
import net.minecraft.network.protocol.common.ClientCommonPacketListener
7+
8+
@NmsUseWithCaution
9+
abstract class NmsClientboundPacketImpl<Nms : Packet<ClientCommonPacketListener>>(nmsPacket: Nms) :
10+
NmsPacketImpl<Nms, ClientCommonPacketListener>(nmsPacket)

0 commit comments

Comments
 (0)