mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-12-11 11:34:18 +01:00
f49e238640
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing BungeeCord Changes: 5e7dcc48 #3382: Use the correct write method for ChatChain in ClientChat packet 5cdba87b #3377: Add additional checks for protocol length limits
95 lines
4.9 KiB
Diff
95 lines
4.9 KiB
Diff
From dbbaf10f0d11e08489bd0e29b3788ea76bf282ac Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Fri, 16 Apr 2021 06:29:28 +0100
|
|
Subject: [PATCH] ServerConnectRequest#sendFeedback
|
|
|
|
|
|
diff --git a/api/src/main/java/net/md_5/bungee/api/ServerConnectRequest.java b/api/src/main/java/net/md_5/bungee/api/ServerConnectRequest.java
|
|
index c81b0a4e..d21370be 100644
|
|
--- a/api/src/main/java/net/md_5/bungee/api/ServerConnectRequest.java
|
|
+++ b/api/src/main/java/net/md_5/bungee/api/ServerConnectRequest.java
|
|
@@ -68,6 +68,14 @@ public class ServerConnectRequest
|
|
*/
|
|
@Setter
|
|
private boolean retry;
|
|
+ // Waterfall start
|
|
+ /**
|
|
+ * Should feedback from the request be sent to players, allows plugins
|
|
+ * to silently deal with the outcome on their own
|
|
+ */
|
|
+ @Setter
|
|
+ private boolean sendFeedback;
|
|
+ // Waterfall end
|
|
|
|
/**
|
|
* Class that sets default properties/adds methods to the lombok builder
|
|
@@ -77,5 +85,6 @@ public class ServerConnectRequest
|
|
{
|
|
|
|
private int connectTimeout = ProxyServer.getInstance().getConfig().getServerConnectTimeout();
|
|
+ private boolean isSendFeedback = true; // Waterfall # God. f##king. lombok.
|
|
}
|
|
}
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/UserConnection.java b/proxy/src/main/java/net/md_5/bungee/UserConnection.java
|
|
index 5961392a..eb236957 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/UserConnection.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/UserConnection.java
|
|
@@ -268,12 +268,16 @@ public final class UserConnection implements ProxiedPlayer
|
|
connect(info, callback, retry, ServerConnectEvent.Reason.PLUGIN, timeout);
|
|
}
|
|
|
|
- public void connect(ServerInfo info, final Callback<Boolean> callback, final boolean retry, ServerConnectEvent.Reason reason, final int timeout)
|
|
+ public void connect(ServerInfo info, final Callback<Boolean> callback, final boolean retry, ServerConnectEvent.Reason reason, final int timeout) {
|
|
+ this.connect(info, callback, retry, reason, timeout, true);
|
|
+ }
|
|
+
|
|
+ public void connect(ServerInfo info, final Callback<Boolean> callback, final boolean retry, ServerConnectEvent.Reason reason, final int timeout, boolean sendFeedback)
|
|
{
|
|
// Waterfall end
|
|
Preconditions.checkNotNull( info, "info" );
|
|
|
|
- ServerConnectRequest.Builder builder = ServerConnectRequest.builder().retry( retry ).reason( reason ).target( info );
|
|
+ ServerConnectRequest.Builder builder = ServerConnectRequest.builder().retry( retry ).reason( reason ).target( info ).sendFeedback(sendFeedback); // Waterfall - feedback param
|
|
builder.connectTimeout(timeout); // Waterfall
|
|
if ( callback != null )
|
|
{
|
|
@@ -321,7 +325,7 @@ public final class UserConnection implements ProxiedPlayer
|
|
callback.done( ServerConnectRequest.Result.ALREADY_CONNECTED, null );
|
|
}
|
|
|
|
- sendMessage( bungee.getTranslation( "already_connected" ) );
|
|
+ if (request.isSendFeedback()) sendMessage( bungee.getTranslation( "already_connected" ) ); // Waterfall
|
|
return;
|
|
}
|
|
if ( pendingConnects.contains( target ) )
|
|
@@ -331,7 +335,7 @@ public final class UserConnection implements ProxiedPlayer
|
|
callback.done( ServerConnectRequest.Result.ALREADY_CONNECTING, null );
|
|
}
|
|
|
|
- sendMessage( bungee.getTranslation( "already_connecting" ) );
|
|
+ if (request.isSendFeedback()) sendMessage( bungee.getTranslation( "already_connecting" ) ); // Waterfall
|
|
return;
|
|
}
|
|
|
|
@@ -367,14 +371,14 @@ public final class UserConnection implements ProxiedPlayer
|
|
ServerInfo def = updateAndGetNextServer( target );
|
|
if ( request.isRetry() && def != null && ( getServer() == null || def != getServer().getInfo() ) )
|
|
{
|
|
- sendMessage( bungee.getTranslation( "fallback_lobby" ) );
|
|
- connect( def, null, true, ServerConnectEvent.Reason.LOBBY_FALLBACK, request.getConnectTimeout() ); // Waterfall
|
|
+ if (request.isSendFeedback()) sendMessage( bungee.getTranslation( "fallback_lobby" ) ); // Waterfall
|
|
+ connect( def, null, true, ServerConnectEvent.Reason.LOBBY_FALLBACK, request.getConnectTimeout(), request.isSendFeedback() ); // Waterfall
|
|
} else if ( dimensionChange )
|
|
{
|
|
disconnect( bungee.getTranslation( "fallback_kick", connectionFailMessage( future.cause() ) ) );
|
|
} else
|
|
{
|
|
- sendMessage( bungee.getTranslation( "fallback_kick", connectionFailMessage( future.cause() ) ) );
|
|
+ if (request.isSendFeedback()) sendMessage( bungee.getTranslation( "fallback_kick", connectionFailMessage( future.cause() ) ) );
|
|
}
|
|
}
|
|
}
|
|
--
|
|
2.37.2
|
|
|