Waterfall/BungeeCord-Patches/0033-Fix-some-forge-plugin-message-packets-not-being-forw.patch
Shane Freeder 25ecd402f3
Updated Upstream (BungeeCord)
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:
1a807731 #3567: Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.2 to 3.6.3
772ad995 #3566: Bump actions/setup-java from 3 to 4
2431c40a #3562: Bump io.netty:netty-bom from 4.1.100.Final to 4.1.101.Final
8144ae8d #3555: Bump com.mysql:mysql-connector-j from 8.1.0 to 8.2.0
0757c39a Attempt upgrade of resolver libraries
2023-12-13 15:18:04 +00:00

60 lines
2.8 KiB
Diff

From d6f4754d7bbbc92d84ccce081c3a62318a445ae4 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 77d18e6d..d254b84e 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.43.0