@@ -6,13 +6,17 @@ import com.velocitypowered.api.event.Subscribe
66import com.velocitypowered.api.event.command.CommandExecuteEvent
77import com.velocitypowered.api.event.connection.LoginEvent
88import com.velocitypowered.api.event.player.PlayerChatEvent
9+ import com.velocitypowered.api.event.player.ServerPostConnectEvent
910import com.velocitypowered.api.event.player.ServerPreConnectEvent
1011import com.velocitypowered.api.network.ProtocolVersion
1112import com.velocitypowered.api.proxy.Player
13+ import net.azisaba.spicyAzisaBan.SABMessages
14+ import net.azisaba.spicyAzisaBan.SpicyAzisaBan
1215import net.azisaba.spicyAzisaBan.common.ServerInfo
1316import net.azisaba.spicyAzisaBan.punishment.PunishmentChecker
1417import net.azisaba.spicyAzisaBan.struct.PlayerData
1518import net.azisaba.spicyAzisaBan.util.Util.send
19+ import net.azisaba.spicyAzisaBan.util.Util.translate
1620import net.azisaba.spicyAzisaBan.velocity.VelocityPlayerActor
1721import net.azisaba.spicyAzisaBan.velocity.util.VelocityUtil.toVelocity
1822import net.kyori.adventure.text.Component
@@ -36,14 +40,27 @@ object EventListeners {
3640
3741 @Subscribe
3842 fun onServerPreConnect (e : ServerPreConnectEvent ): EventTask = EventTask .async {
43+ if (e.result.server.isEmpty) return @async
3944 PunishmentChecker .checkLocalBan(
40- ServerInfo (e.originalServer. serverInfo.name, e.originalServer .serverInfo.address),
45+ ServerInfo (e.result.server.get(). serverInfo.name, e.result.server.get() .serverInfo.address),
4146 VelocityPlayerActor (e.player)
4247 ) {
4348 e.result = ServerPreConnectEvent .ServerResult .denied()
4449 }.complete()
4550 }
4651
52+ @Subscribe
53+ fun onServerPostConnect (e : ServerPostConnectEvent ): EventTask = EventTask .async {
54+ if (e.player.currentServer.isEmpty) return @async
55+ PunishmentChecker .checkLocalBan(
56+ ServerInfo (e.player.currentServer.get().serverInfo.name, e.player.currentServer.get().serverInfo.address),
57+ VelocityPlayerActor (e.player)
58+ ) {
59+ SpicyAzisaBan .LOGGER .warning(" Kicking player ${e.player.username} because they are banned from ${e.player.currentServer.get().serverInfo.name} " )
60+ e.player.disconnect(SABMessages .General .error.translate())
61+ }.complete()
62+ }
63+
4764 @Suppress(" DEPRECATION" )
4865 @Subscribe
4966 fun onPlayerChat (e : PlayerChatEvent ): EventTask = EventTask .async {
0 commit comments