Skip to content

Commit 5a06fd0

Browse files
feat: Add player to packetInterceptor
1 parent 41fb502 commit 5a06fd0

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/main/kotlin/cc/modlabs/kpaper/packets/PacketInterceptor.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.jetbrains.annotations.ApiStatus
1010

1111
object PacketInterceptor {
1212

13-
private val packetCallbacks = mutableMapOf<Int, Pair<Class<out Packet<*>>, (Packet<*>) -> Unit>>()
13+
private val packetCallbacks = mutableMapOf<Int, Pair<Class<out Packet<*>>, (Player, Packet<*>) -> Unit>>()
1414
private var counter = 0
1515

1616
/**
@@ -22,12 +22,12 @@ object PacketInterceptor {
2222
* @param callback the callback to be called when the packet is received
2323
* @return the ID of the callback
2424
*/
25-
fun <T : Packet<*>> registerPacketCallback(packet: Class<T>, callback: (T) -> Unit): Int {
25+
fun <T : Packet<*>> registerPacketCallback(packet: Class<T>, callback: (Player, T) -> Unit): Int {
2626
val id = counter++
27-
packetCallbacks[id] = Pair(packet, callback as (Packet<*>) -> Unit)
27+
packetCallbacks[id] = Pair(packet, callback as (Player,Packet<*>) -> Unit)
2828
return id
2929
}
30-
30+
3131
/**
3232
* Unregisters a packet callback.
3333
*
@@ -44,9 +44,9 @@ object PacketInterceptor {
4444
* @param packet the packet to handle
4545
*/
4646
@ApiStatus.Internal
47-
internal fun handlePacket(packet: Packet<*>) {
48-
packetCallbacks.filter { it.value.first.javaClass == packet.javaClass }.forEach { (id, pair) ->
49-
pair.second(packet)
47+
internal fun handlePacket(player: Player, packet: Packet<*>) {
48+
packetCallbacks.filter { it.value.first.javaClass == packet.javaClass }.forEach { (_, pair) ->
49+
pair.second(player, packet)
5050
}
5151
}
5252
}
@@ -60,7 +60,7 @@ fun Player.injectPacketInterceptor() {
6060
val channelDuplexHandler = object : ChannelDuplexHandler() {
6161
override fun channelRead(channelHandlerContext: ChannelHandlerContext, packet: Any) {
6262
if (packet !is Packet<*>) return
63-
PacketInterceptor.handlePacket(packet)
63+
PacketInterceptor.handlePacket(this@injectPacketInterceptor, packet)
6464
super.channelRead(channelHandlerContext, packet)
6565
}
6666
}

0 commit comments

Comments
 (0)