From fe67e1b15da0cebd4aa08a848529845a194dff24 Mon Sep 17 00:00:00 2001 From: foss-mc <69294560+foss-mc@users.noreply.github.com> Date: Wed, 16 Dec 2020 17:57:23 +0800 Subject: [PATCH] Make PlayerHandshakeEvent cancellable diff --git a/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java b/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java index 2f7b38d9..e29b0ed3 100644 --- a/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java +++ b/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java @@ -2,8 +2,11 @@ package net.md_5.bungee.api.event; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; import lombok.ToString; import net.md_5.bungee.api.connection.PendingConnection; +import net.md_5.bungee.api.plugin.Cancellable; import net.md_5.bungee.api.plugin.Event; import net.md_5.bungee.protocol.packet.Handshake; @@ -14,8 +17,11 @@ import net.md_5.bungee.protocol.packet.Handshake; @Data @ToString(callSuper = false) @EqualsAndHashCode(callSuper = false) -public class PlayerHandshakeEvent extends Event -{ +// FlameCord - Implement cancellable +public class PlayerHandshakeEvent extends Event implements Cancellable { + @Getter + @Setter + private boolean cancelled = false; /** * Connection attempting to login. diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java index f6378e03..23571d40 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -338,7 +338,11 @@ public class InitialHandler extends PacketHandler implements PendingConnection this.virtualHost = InetSocketAddress.createUnresolved( handshake.getHost(), handshake.getPort() ); - bungee.getPluginManager().callEvent( new PlayerHandshakeEvent( InitialHandler.this, handshake ) ); + // FlameCord - Make PlayerHandshakeEvent cancellable + if (bungee.getPluginManager().callEvent(new PlayerHandshakeEvent(InitialHandler.this, handshake)).isCancelled()) { + ch.close(); + return; + } switch ( handshake.getRequestedProtocol() ) { -- 2.32.0