From 1056d858fa2063378a32103ef42e6da66d59125c Mon Sep 17 00:00:00 2001 From: Troy Frew Date: Sat, 16 Jul 2016 20:45:23 -0400 Subject: [PATCH] Reverted Store-last-known-dimension-and-don-t-send-useless-re patch. This patch needs additional work before it is ready for general usage. There are multiple issues with client first connection and client kicks. --- ...tch => 0038-Improve-ServerKickEvent.patch} | 16 +-- ...-dimension-and-don-t-send-useless-re.patch | 130 ------------------ ...ble-server-version-in-ping-response.patch} | 4 +- ...-timeout-variant-to-connect-methods.patch} | 17 ++- ...ent.patch => 0041-Proxy-query-event.patch} | 2 +- 5 files changed, 19 insertions(+), 150 deletions(-) rename BungeeCord-Patches/{0039-Improve-ServerKickEvent.patch => 0038-Improve-ServerKickEvent.patch} (94%) delete mode 100644 BungeeCord-Patches/0038-Store-last-known-dimension-and-don-t-send-useless-re.patch rename BungeeCord-Patches/{0040-Configurable-server-version-in-ping-response.patch => 0039-Configurable-server-version-in-ping-response.patch} (96%) rename BungeeCord-Patches/{0041-Add-timeout-variant-to-connect-methods.patch => 0040-Add-timeout-variant-to-connect-methods.patch} (91%) rename BungeeCord-Patches/{0042-Proxy-query-event.patch => 0041-Proxy-query-event.patch} (99%) diff --git a/BungeeCord-Patches/0039-Improve-ServerKickEvent.patch b/BungeeCord-Patches/0038-Improve-ServerKickEvent.patch similarity index 94% rename from BungeeCord-Patches/0039-Improve-ServerKickEvent.patch rename to BungeeCord-Patches/0038-Improve-ServerKickEvent.patch index c47a260..dfdf65f 100644 --- a/BungeeCord-Patches/0039-Improve-ServerKickEvent.patch +++ b/BungeeCord-Patches/0038-Improve-ServerKickEvent.patch @@ -1,4 +1,4 @@ -From 26debc4163d31315a6083bb2fcc62f45333d8edc Mon Sep 17 00:00:00 2001 +From 80a0bf1992f1ad7e080692ba323a784c3aee3fd3 Mon Sep 17 00:00:00 2001 From: Troy Frew Date: Tue, 28 Jun 2016 23:00:49 -0500 Subject: [PATCH] Improve ServerKickEvent @@ -62,10 +62,10 @@ index 0e1ef5c..ee63732 100644 @Deprecated public String getKickReason() diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -index f1ccd72..beb8fa6 100644 +index e327325..d16fa57 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -@@ -305,7 +305,7 @@ public class ServerConnector extends PacketHandler +@@ -302,7 +302,7 @@ public class ServerConnector extends PacketHandler public void handle(Kick kick) throws Exception { ServerInfo def = user.updateAndGetNextServer( target ); @@ -75,10 +75,10 @@ index f1ccd72..beb8fa6 100644 { // Pre cancel the event if we are going to try another server diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -index 017c2b2..8ce578e 100644 +index fa57f28..6463f75 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -@@ -59,16 +59,19 @@ public class DownstreamBridge extends PacketHandler +@@ -58,16 +58,19 @@ public class DownstreamBridge extends PacketHandler return; } @@ -104,7 +104,7 @@ index 017c2b2..8ce578e 100644 } @Override -@@ -83,7 +86,19 @@ public class DownstreamBridge extends PacketHandler +@@ -82,7 +85,19 @@ public class DownstreamBridge extends PacketHandler if ( !server.isObsolete() ) { @@ -125,7 +125,7 @@ index 017c2b2..8ce578e 100644 } ServerDisconnectEvent serverDisconnectEvent = new ServerDisconnectEvent( con, server.getInfo() ); -@@ -454,7 +469,7 @@ public class DownstreamBridge extends PacketHandler +@@ -453,7 +468,7 @@ public class DownstreamBridge extends PacketHandler { def = null; } @@ -135,5 +135,5 @@ index 017c2b2..8ce578e 100644 { con.connectNow( event.getCancelServer() ); -- -2.9.0 +2.7.4 (Apple Git-66) diff --git a/BungeeCord-Patches/0038-Store-last-known-dimension-and-don-t-send-useless-re.patch b/BungeeCord-Patches/0038-Store-last-known-dimension-and-don-t-send-useless-re.patch deleted file mode 100644 index e7a400e..0000000 --- a/BungeeCord-Patches/0038-Store-last-known-dimension-and-don-t-send-useless-re.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 0619f444be30213382fa501bcc12bc5dc68f58bc Mon Sep 17 00:00:00 2001 -From: PunKeel -Date: Wed, 8 Apr 2015 22:36:33 +0200 -Subject: [PATCH] Store last known dimension and don't send useless respawn - packets - -In order to improve server switching without lossing the advantages of the Respawn package (reset entities, for instance) - -diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -index e327325..f1ccd72 100644 ---- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -+++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java -@@ -257,7 +257,10 @@ public class ServerConnector extends PacketHandler - } - user.getSentBossBars().clear(); - -- user.sendDimensionSwitch(); -+ if( user.getDimension() == login.getDimension() ){ -+ // Only change dimension to reset entities -+ user.unsafe().sendPacket( new Respawn( ( login.getDimension() == 0 ) ? 1 : 0, login.getDifficulty(), login.getGameMode(), login.getLevelType() ) ); -+ } - - user.setServerEntityId( login.getEntityId() ); - user.unsafe().sendPacket( new Respawn( login.getDimension(), login.getDifficulty(), login.getGameMode(), login.getLevelType() ) ); -@@ -280,7 +283,7 @@ public class ServerConnector extends PacketHandler - target.addPlayer( user ); - user.getPendingConnects().remove( target ); - user.setServerJoinQueue( null ); -- user.setDimensionChange( false ); -+ user.setDimension( login.getDimension() ); - - user.setServer( server ); - ch.getHandle().pipeline().get( HandlerBoss.class ).setHandler( new DownstreamBridge( bungee, user, server ) ); -@@ -316,14 +319,7 @@ public class ServerConnector extends PacketHandler - throw CancelSendSignal.INSTANCE; - } - -- String message = bungee.getTranslation( "connect_kick", target.getName(), event.getKickReason() ); -- if ( user.isDimensionChange() ) -- { -- user.disconnect( message ); -- } else -- { -- user.sendMessage( message ); -- } -+ user.sendMessage( bungee.getTranslation( "connect_kick", target.getName(), event.getKickReason() ) ); - - throw CancelSendSignal.INSTANCE; - } -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 9a13f5c..ff103bf 100644 ---- a/proxy/src/main/java/net/md_5/bungee/UserConnection.java -+++ b/proxy/src/main/java/net/md_5/bungee/UserConnection.java -@@ -89,7 +89,7 @@ public final class UserConnection implements ProxiedPlayer - private ServerConnection server; - @Getter - @Setter -- private boolean dimensionChange = true; -+ private int dimension = 0; - @Getter - private final Collection pendingConnects = new HashSet<>(); - /*========================================================================*/ -@@ -187,7 +187,7 @@ public final class UserConnection implements ProxiedPlayer - - // No-config FML handshake marker. - // Set whether the connection has a 1.8 FML marker in the handshake. -- if (this.getPendingConnection().getExtraDataInHandshake().contains( ForgeConstants.FML_HANDSHAKE_TOKEN )) -+ if (this.getPendingConnection().getExtraDataInHandshake().contains( ForgeConstants.FML_HANDSHAKE_TOKEN )) - { - forgeClientHandler.setFmlTokenInHandshake( true ); - } -@@ -223,16 +223,8 @@ public final class UserConnection implements ProxiedPlayer - connect( target, callback, false ); - } - -- void sendDimensionSwitch() -- { -- dimensionChange = true; -- unsafe().sendPacket( PacketConstants.DIM1_SWITCH ); -- unsafe().sendPacket( PacketConstants.DIM2_SWITCH ); -- } -- - public void connectNow(ServerInfo target) - { -- sendDimensionSwitch(); - connect( target ); - } - -@@ -328,12 +320,9 @@ public final class UserConnection implements ProxiedPlayer - { - sendMessage( bungee.getTranslation( "fallback_lobby" ) ); - connect( def, null, false ); -- } else if ( dimensionChange ) -- { -- disconnect( bungee.getTranslation( "fallback_kick", future.cause().getClass().getName() ) ); - } else - { -- sendMessage( bungee.getTranslation( "fallback_kick", future.cause().getClass().getName() ) ); -+ disconnect( bungee.getTranslation( "fallback_kick", future.cause().getClass().getName() ) ); - } - } - } -diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -index fa57f28..017c2b2 100644 ---- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -+++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java -@@ -37,6 +37,7 @@ import net.md_5.bungee.protocol.packet.ScoreboardScore; - import net.md_5.bungee.protocol.packet.ScoreboardDisplay; - import net.md_5.bungee.protocol.packet.PluginMessage; - import net.md_5.bungee.protocol.packet.Kick; -+import net.md_5.bungee.protocol.packet.Respawn; - import net.md_5.bungee.protocol.packet.SetCompression; - import net.md_5.bungee.protocol.packet.TabCompleteResponse; - import net.md_5.bungee.tab.TabList; -@@ -501,6 +502,12 @@ public class DownstreamBridge extends PacketHandler - } - - @Override -+ public void handle(Respawn respawn) throws Exception -+ { -+ con.setDimension( respawn.getDimension() ); -+ } -+ -+ @Override - public String toString() - { - return "[" + con.getAddress() + "|" + con.getName() + "] <-> DownstreamBridge <-> [" + server.getInfo().getName() + "]"; --- -2.7.4 (Apple Git-66) - diff --git a/BungeeCord-Patches/0040-Configurable-server-version-in-ping-response.patch b/BungeeCord-Patches/0039-Configurable-server-version-in-ping-response.patch similarity index 96% rename from BungeeCord-Patches/0040-Configurable-server-version-in-ping-response.patch rename to BungeeCord-Patches/0039-Configurable-server-version-in-ping-response.patch index b0df6c3..8fdb7b0 100644 --- a/BungeeCord-Patches/0040-Configurable-server-version-in-ping-response.patch +++ b/BungeeCord-Patches/0039-Configurable-server-version-in-ping-response.patch @@ -1,4 +1,4 @@ -From 1bd07f8815ec9d4435b66a2fe8ad5489c7491fb7 Mon Sep 17 00:00:00 2001 +From 6d435eb0afdd47cf90abb505cf4bf0a943ec73bd Mon Sep 17 00:00:00 2001 From: Troy Frew Date: Wed, 29 Jun 2016 13:56:57 -0500 Subject: [PATCH] Configurable server version in ping response @@ -21,7 +21,7 @@ index f04e2bf..a443614 100644 /** diff --git a/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java b/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java -index 114961d..7c84fea 100644 +index 114961d..32f7b99 100644 --- a/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java +++ b/proxy/src/main/java/io/github/waterfallmc/waterfall/conf/WaterfallConfiguration.java @@ -5,8 +5,11 @@ import lombok.*; diff --git a/BungeeCord-Patches/0041-Add-timeout-variant-to-connect-methods.patch b/BungeeCord-Patches/0040-Add-timeout-variant-to-connect-methods.patch similarity index 91% rename from BungeeCord-Patches/0041-Add-timeout-variant-to-connect-methods.patch rename to BungeeCord-Patches/0040-Add-timeout-variant-to-connect-methods.patch index 89f14dc..96c969a 100644 --- a/BungeeCord-Patches/0041-Add-timeout-variant-to-connect-methods.patch +++ b/BungeeCord-Patches/0040-Add-timeout-variant-to-connect-methods.patch @@ -1,6 +1,6 @@ -From 146a4a7ade1125df18f4d3ff7f2575822e1c0c44 Mon Sep 17 00:00:00 2001 +From 062766d296509d5a201d6c0815eb0a608698a712 Mon Sep 17 00:00:00 2001 From: Ichbinjoe -Date: Sun, 3 Jul 2016 03:54:14 -0400 +Date: Sat, 16 Jul 2016 20:44:01 -0400 Subject: [PATCH] Add timeout variant to connect methods Also added more connect methods to ProxiedPlayer, in addition to the new method @@ -49,33 +49,32 @@ index 375815c..c49e900 100644 * Gets the server this player is connected to. * 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 ff103bf..47b37c0 100644 +index 9a13f5c..fead216 100644 --- a/proxy/src/main/java/net/md_5/bungee/UserConnection.java +++ b/proxy/src/main/java/net/md_5/bungee/UserConnection.java -@@ -251,6 +251,13 @@ public final class UserConnection implements ProxiedPlayer +@@ -259,6 +259,12 @@ public final class UserConnection implements ProxiedPlayer public void connect(ServerInfo info, final Callback callback, final boolean retry) { + // Waterfall start + connect(info, callback, retry, 5000); // todo: configurable + } -+ + public void connect(ServerInfo info, final Callback callback, final boolean retry, final int timeout) + { + // Waterfall end Preconditions.checkNotNull( info, "info" ); ServerConnectEvent event = new ServerConnectEvent( this, info ); -@@ -319,7 +326,7 @@ public final class UserConnection implements ProxiedPlayer +@@ -327,7 +333,7 @@ public final class UserConnection implements ProxiedPlayer if ( retry && def != null && ( getServer() == null || def != getServer().getInfo() ) ) { sendMessage( bungee.getTranslation( "fallback_lobby" ) ); - connect( def, null, false ); + connect( def, null, false, timeout ); // Waterfall - } else + } else if ( dimensionChange ) { disconnect( bungee.getTranslation( "fallback_kick", future.cause().getClass().getName() ) ); -@@ -331,7 +338,7 @@ public final class UserConnection implements ProxiedPlayer +@@ -342,7 +348,7 @@ public final class UserConnection implements ProxiedPlayer .channel( PipelineUtils.getChannel() ) .group( ch.getHandle().eventLoop() ) .handler( initializer ) @@ -85,5 +84,5 @@ index ff103bf..47b37c0 100644 // Windows is bugged, multi homed users will just have to live with random connecting IPs if ( getPendingConnection().getListener().isSetLocalAddress() && !PlatformDependent.isWindows() ) -- -2.8.2 +2.7.4 (Apple Git-66) diff --git a/BungeeCord-Patches/0042-Proxy-query-event.patch b/BungeeCord-Patches/0041-Proxy-query-event.patch similarity index 99% rename from BungeeCord-Patches/0042-Proxy-query-event.patch rename to BungeeCord-Patches/0041-Proxy-query-event.patch index c99d808..fca9fd9 100644 --- a/BungeeCord-Patches/0042-Proxy-query-event.patch +++ b/BungeeCord-Patches/0041-Proxy-query-event.patch @@ -1,4 +1,4 @@ -From 2df0089bfe96dcd1abf5a192a4f21b025867bfa8 Mon Sep 17 00:00:00 2001 +From 81f57993d2aa0f7595a469c3eaa33cbaf32e3b79 Mon Sep 17 00:00:00 2001 From: minecrafter Date: Sun, 3 Jul 2016 04:03:21 -0400 Subject: [PATCH] Proxy query event