@@ -2,7 +2,6 @@ package dev.slne.surf.surfapi.bukkit.server.packet.listener
22
33import com.github.benmanes.caffeine.cache.Caffeine
44import com.sksamuel.aedile.core.expireAfterAccess
5- import dev.slne.surf.surfapi.bukkit.api.extensions.server
65import dev.slne.surf.surfapi.bukkit.api.nms.NmsUseWithCaution
76import dev.slne.surf.surfapi.bukkit.api.nms.nmsBridge
87import dev.slne.surf.surfapi.bukkit.server.impl.nms.SurfBukkitNmsBridgeImpl
@@ -24,7 +23,6 @@ import io.papermc.paper.connection.PaperPlayerLoginConnection
2423import io.papermc.paper.connection.ReadablePlayerCookieConnectionImpl
2524import io.papermc.paper.event.connection.PlayerConnectionValidateLoginEvent
2625import io.papermc.paper.network.ChannelInitializeListenerHolder
27- import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet
2826import net.kyori.adventure.key.Key
2927import net.minecraft.network.Connection
3028import net.minecraft.network.HandlerNames
@@ -35,7 +33,6 @@ import org.bukkit.event.EventPriority
3533import org.bukkit.event.Listener
3634import org.bukkit.event.player.PlayerJoinEvent
3735import java.util.*
38- import java.util.function.Predicate
3936import kotlin.time.Duration.Companion.minutes
4037import dev.slne.surf.surfapi.bukkit.api.event.register as registerListener
4138import dev.slne.surf.surfapi.bukkit.api.event.unregister as unregisterListener
@@ -48,76 +45,13 @@ object PlayerChannelInjector : Listener {
4845
4946 private val playerInjectorCache = Caffeine .newBuilder()
5047 .weakValues()
51- .removalListener<UUID , Connection > { key, value, cause ->
52- log.atWarning()
53- .log(" Player connection cache for $key was removed due to $cause " )
54- }
5548 .expireAfterAccess(1 .minutes)
5649 .build<UUID , Connection >()
5750
5851 private val injectedChannels = Caffeine .newBuilder()
5952 .weakKeys()
60- .removalListener<Channel , Boolean > { channel, _, cause ->
61- log.atWarning()
62- .log(" Channel $channel was removed from injected channels due to $cause " )
63- }
6453 .build<Channel , Boolean >()
6554
66- private class TempObjectSet <T >() : ObjectOpenHashSet<T>() {
67- private var added: Long = 0
68- private var removed: Long = 0
69-
70- private enum class Operation {
71- ADD , REMOVE , REMOVE_ALL , REMOVE_IF , ADD_ALL
72- }
73-
74- fun printStats (operation : Operation ) {
75- log.atInfo()
76- .log(" O:$operation ,A:$added ,R:$removed ,D:${added - removed} ,S:$size ,P:${server.onlinePlayers.size} " )
77- }
78-
79- override fun addAll (c : Collection <T ?>): Boolean {
80- added + = c.size
81- printStats(Operation .ADD_ALL )
82-
83- return super .addAll(c)
84- }
85-
86- override fun removeAll (c : Collection <T ?>): Boolean {
87- removed + = c.size
88- printStats(Operation .REMOVE_ALL )
89-
90- return super .removeAll(c)
91- }
92-
93- override fun add (element : T ? ): Boolean {
94- added + = 1
95- printStats(Operation .ADD )
96-
97- return super .add(element)
98- }
99-
100- override fun remove (element : T ? ): Boolean {
101- removed + = 1
102- printStats(Operation .REMOVE )
103-
104- return super .remove(element)
105- }
106-
107- override fun removeIf (filter : Predicate <in T >): Boolean {
108- val removedElements = this .filter(filter::test)
109-
110- removed + = removedElements.size
111- printStats(Operation .REMOVE_IF )
112-
113- return super .removeIf(filter)
114- }
115-
116- companion object {
117- private const val serialVersionUID: Long = - 2618969176232686100L
118- }
119- }
120-
12155 fun register () {
12256 ChannelInitializeListenerHolder .addListener(CHANNEL_KEY ) { this .injectChannel(it) }
12357 registerListener(plugin)
0 commit comments