mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-09-16 08:36:35 +02:00
d3dc2d3748
Drop the original console command completion patch and rewrite it for JLine 3. Add support to complete command names instead of just command arguments. The additional single thread executor for command completion was dropped because it's redundant: since the command completer needs to wait for it to complete anyway, we might as well do the completion directly from the console thread.
60 lines
2.8 KiB
Diff
60 lines
2.8 KiB
Diff
From dbbaeb6cf456ef94b5dba1bc5461ff69b3617838 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
|
|
|