mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-11-28 13:15:31 +01:00
69d0c4010d
Upstream has released updates that appears 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: af10f82d Apply and enforce import ordering rules 3f01748d Minecraft 1.14-pre5 support
60 lines
2.8 KiB
Diff
60 lines
2.8 KiB
Diff
From 0bcddf3f2a54189e017bb728c4486f65dd691a8b Mon Sep 17 00:00:00 2001
|
|
From: Daniel Naylor <git@drnaylor.co.uk>
|
|
Date: Mon, 17 Jul 2017 20:24:17 +0100
|
|
Subject: [PATCH] Fix some forge plugin message packets not being forwarded
|
|
correctly
|
|
|
|
This fixes #155, see SpongePowered/SpongeForge#1507
|
|
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/forge/ForgeClientHandshakeState.java b/proxy/src/main/java/net/md_5/bungee/forge/ForgeClientHandshakeState.java
|
|
index 52429265..5e02f8c8 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/forge/ForgeClientHandshakeState.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/forge/ForgeClientHandshakeState.java
|
|
@@ -171,7 +171,8 @@ enum ForgeClientHandshakeState implements IForgeClientPacketHandler<ForgeClientH
|
|
public ForgeClientHandshakeState handle(PluginMessage message, UserConnection con)
|
|
{
|
|
// Ack.
|
|
- if ( message.getData()[0] == -1 )
|
|
+ if (( message.getTag().equals( ForgeConstants.FML_HANDSHAKE_TAG ) && message.getData()[0] == -1 )
|
|
+ || message.getTag().equals( ForgeConstants.FORGE_REGISTER ))
|
|
{
|
|
ForgeLogger.logClient( ForgeLogger.LogDirection.RECEIVED, this.name(), message );
|
|
con.unsafe().sendPacket( message );
|
|
@@ -187,7 +188,7 @@ enum ForgeClientHandshakeState implements IForgeClientPacketHandler<ForgeClientH
|
|
}
|
|
},
|
|
/**
|
|
- * Handshake has been completed. Ignores any future handshake packets.
|
|
+ * Handshake has been completed. Ignores any future handshake packets, but not any FORGE packets.
|
|
*/
|
|
DONE
|
|
{
|
|
@@ -196,6 +197,11 @@ enum ForgeClientHandshakeState implements IForgeClientPacketHandler<ForgeClientH
|
|
public ForgeClientHandshakeState handle(PluginMessage message, UserConnection con)
|
|
{
|
|
ForgeLogger.logClient( ForgeLogger.LogDirection.RECEIVED, this.name(), message );
|
|
+ if ( message.getTag().equals( ForgeConstants.FORGE_REGISTER ))
|
|
+ {
|
|
+ con.unsafe().sendPacket( message );
|
|
+ }
|
|
+
|
|
return this;
|
|
}
|
|
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/forge/ForgeServerHandler.java b/proxy/src/main/java/net/md_5/bungee/forge/ForgeServerHandler.java
|
|
index 7166d061..b5b9ec70 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/forge/ForgeServerHandler.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/forge/ForgeServerHandler.java
|
|
@@ -50,7 +50,7 @@ public class ForgeServerHandler
|
|
ForgeServerHandshakeState prevState = state;
|
|
packetQueue.add( message );
|
|
state = state.send( message, con );
|
|
- if ( state != prevState ) // send packets
|
|
+ if ( state == ForgeServerHandshakeState.DONE || state != prevState ) // send packets
|
|
{
|
|
synchronized ( packetQueue )
|
|
{
|
|
--
|
|
2.21.0
|
|
|