Skip to content

Commit 6ada16a

Browse files
committed
feat: implement SystemChatPacket support and version bump
- Added `SystemChatPacket` interface with `content` and `overlay` properties. - Introduced `ClientboundSystemChatPacketImpl` for handling clientbound system chat packets. - Updated `PacketRegistry` to support `ClientboundSystemChatPacket`. - Adjusted parameter variance for `NmsPacketImpl` and `NmsClientboundPacketImpl`. - Bumped version to 1.21.8-2.35.0.
1 parent ec67a41 commit 6ada16a

File tree

7 files changed

+47
-8
lines changed

7 files changed

+47
-8
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
77
javaVersion=21
88
mcVersion=1.21.8
99
group=dev.slne.surf
10-
version=1.21.8-2.34.1
10+
version=1.21.8-2.35.0
1111
relocationPrefix=dev.slne.surf.surfapi.libs
1212
snapshot=true

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1990,6 +1990,13 @@ public abstract interface class dev/slne/surf/surfapi/bukkit/api/nms/listener/pa
19901990
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 {
19911991
}
19921992

1993+
public abstract interface class dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/clientbound/SystemChatPacket : dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/clientbound/NmsClientboundPacket {
1994+
public abstract fun getContent ()Lnet/kyori/adventure/text/Component;
1995+
public abstract fun getOverlay ()Z
1996+
public abstract fun setContent (Lnet/kyori/adventure/text/Component;)V
1997+
public abstract fun setOverlay (Z)V
1998+
}
1999+
19932000
public abstract interface class dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/serverbound/CommandSuggestionPacket : dev/slne/surf/surfapi/bukkit/api/nms/listener/packets/serverbound/NmsServerboundPacket {
19942001
public abstract fun getCommand ()Ljava/lang/String;
19952002
public abstract fun getCompletionId ()I
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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 SystemChatPacket : NmsClientboundPacket {
8+
var content: Component
9+
var overlay: Boolean
10+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import net.minecraft.network.PacketListener
66
import net.minecraft.network.protocol.Packet
77

88
@NmsUseWithCaution
9-
abstract class NmsPacketImpl<Nms : Packet<Listener>, Listener : PacketListener>(val nmsPacket: Nms) :
9+
abstract class NmsPacketImpl<Nms : Packet<out Listener>, Listener : PacketListener>(var nmsPacket: Nms) :
1010
NmsPacket {
1111
val nmsClass = nmsPacket.javaClass as Class<Nms>
1212
override val packetClass =

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@ 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
66
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.clientbound.ClientboundDisconnectPacketImpl
7+
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.clientbound.ClientboundSystemChatPacketImpl
78
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.serverbound.CommandSuggestionPacketImpl
89
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.serverbound.RenameItemPacketImpl
910
import dev.slne.surf.surfapi.bukkit.server.impl.nms.listener.packets.serverbound.SignUpdatePacketImpl
1011
import dev.slne.surf.surfapi.core.api.util.mutableObject2ObjectMapOf
1112
import net.minecraft.network.protocol.Packet
1213
import net.minecraft.network.protocol.common.ClientCommonPacketListener
1314
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
15+
import net.minecraft.network.protocol.game.*
1816
import kotlin.reflect.KClass
1917

2018
@OptIn(NmsUseWithCaution::class)
@@ -33,6 +31,7 @@ object PacketRegistry {
3331

3432
// Clientbound packets
3533
registerClientboundPacket(ClientboundDisconnectPacket::class) { ClientboundDisconnectPacketImpl(it) }
34+
registerClientboundPacket(ClientboundSystemChatPacket::class) { ClientboundSystemChatPacketImpl(it) }
3635
// @formatter:on
3736
}
3837

@@ -48,7 +47,7 @@ object PacketRegistry {
4847
return factory?.create(packet)
4948
}
5049

51-
private fun <Nms : Packet<ClientCommonPacketListener>, Api : NmsClientboundPacket> registerClientboundPacket(
50+
private fun <Nms : Packet<out ClientCommonPacketListener>, Api : NmsClientboundPacket> registerClientboundPacket(
5251
nms: KClass<Nms>,
5352
factory: ClientboundPacketFactory<Nms, Api>,
5453
) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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.SystemChatPacket
5+
import dev.slne.surf.surfapi.bukkit.server.nms.toBukkit
6+
import net.kyori.adventure.text.Component
7+
import net.minecraft.network.protocol.game.ClientboundSystemChatPacket
8+
9+
@NmsUseWithCaution
10+
class ClientboundSystemChatPacketImpl(nmsPacket: ClientboundSystemChatPacket) :
11+
NmsClientboundPacketImpl<ClientboundSystemChatPacket>(nmsPacket), SystemChatPacket {
12+
override var content: Component
13+
get() = nmsPacket.content().toBukkit()
14+
set(value) {
15+
nmsPacket = ClientboundSystemChatPacket(value, nmsPacket.overlay)
16+
}
17+
18+
override var overlay: Boolean
19+
get() = nmsPacket.overlay()
20+
set(value) {
21+
nmsPacket = ClientboundSystemChatPacket(nmsPacket.content(), value)
22+
}
23+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ import net.minecraft.network.protocol.Packet
66
import net.minecraft.network.protocol.common.ClientCommonPacketListener
77

88
@NmsUseWithCaution
9-
abstract class NmsClientboundPacketImpl<Nms : Packet<ClientCommonPacketListener>>(nmsPacket: Nms) :
9+
abstract class NmsClientboundPacketImpl<Nms : Packet<out ClientCommonPacketListener>>(nmsPacket: Nms) :
1010
NmsPacketImpl<Nms, ClientCommonPacketListener>(nmsPacket)

0 commit comments

Comments
 (0)