mirror of
https://github.com/PaperMC/Waterfall.git
synced 2025-01-03 22:47:38 +01:00
Fix some forge plugin message packets not being forwarded correctly
This fixes #155, see SpongePowered/SpongeForge#1507
This commit is contained in:
parent
8edae227f6
commit
6b33c62e14
@ -0,0 +1,59 @@
|
||||
From eb1a75325f83a7eabb72d503f6438fecd65bfd98 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.11.0
|
||||
|
Loading…
Reference in New Issue
Block a user