mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-11-19 00:35:55 +01:00
57 lines
2.3 KiB
Diff
57 lines
2.3 KiB
Diff
From bcd1ccc0bed71e4a478d5c2a4988c6b6583df66c 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 c6a3f1b8..b307b5ca 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
|
|
@@ -361,7 +361,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.37.0.windows.1
|
|
|