mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-11-02 16:49:31 +01:00
e1553a3f25
Since Waterfall is now using Log4J for logging, these patches no longer have any effect.
60 lines
2.8 KiB
Diff
60 lines
2.8 KiB
Diff
From 41d65ce39cfdb9e20ddfe276641418c86b505450 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 3fe5ec5f..a0c07874 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
|
|
@@ -51,7 +51,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.14.1
|
|
|