mirror of
https://github.com/PaperMC/Waterfall.git
synced 2024-12-04 08:03:35 +01:00
9ac9f375b1
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: bd8d1149 #3561: Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.0 to 3.6.2 30e12c6f #3560: Bump org.junit.jupiter:junit-jupiter from 5.10.0 to 5.10.1 bd009ca5 #3559: Fix serialisation of certain scoreboard packets < 1.13 65d8edf6 Minecraft 23w44a support
87 lines
4.4 KiB
Diff
87 lines
4.4 KiB
Diff
From de632d241ae895ad859c98bf12954a4c092f3b62 Mon Sep 17 00:00:00 2001
|
|
From: Techcable <Techcable@techcable.net>
|
|
Date: Tue, 3 May 2016 20:31:52 -0700
|
|
Subject: [PATCH] Don't access a ByteBuf's underlying array
|
|
|
|
It returns the underlying array storage, and does *not* return a view of the buffer as an array
|
|
|
|
diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PluginMessage.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PluginMessage.java
|
|
index 70b292f0..91f71c09 100644
|
|
--- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PluginMessage.java
|
|
+++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PluginMessage.java
|
|
@@ -3,6 +3,7 @@ package net.md_5.bungee.protocol.packet;
|
|
import com.google.common.base.Function;
|
|
import com.google.common.base.Preconditions;
|
|
import io.netty.buffer.ByteBuf;
|
|
+import io.netty.buffer.ByteBufUtil; // Waterfall
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.DataInput;
|
|
import java.io.DataInputStream;
|
|
@@ -47,10 +48,23 @@ public class PluginMessage extends DefinedPacket
|
|
return "legacy:" + tag.toLowerCase( Locale.ROOT );
|
|
}
|
|
};
|
|
- //
|
|
+
|
|
+ public PluginMessage(String tag, ByteBuf data, boolean allowExtendedPacket) {
|
|
+ this(tag, ByteBufUtil.getBytes(data), allowExtendedPacket);
|
|
+ }
|
|
+
|
|
private String tag;
|
|
private byte[] data;
|
|
|
|
+ public void setData(byte[] data) {
|
|
+ this.data = Preconditions.checkNotNull(data, "Null data");
|
|
+ }
|
|
+
|
|
+ public void setData(ByteBuf buf) {
|
|
+ Preconditions.checkNotNull(buf, "Null buffer");
|
|
+ setData(ByteBufUtil.getBytes(buf));
|
|
+ }
|
|
+
|
|
/**
|
|
* Allow this packet to be sent as an "extended" packet.
|
|
*/
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java
|
|
index 6d660bab..137d93cb 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java
|
|
@@ -267,7 +267,7 @@ public class ServerConnector extends PacketHandler
|
|
|
|
ByteBuf brand = ByteBufAllocator.DEFAULT.heapBuffer();
|
|
DefinedPacket.writeString( bungee.getName() + " (" + bungee.getVersion() + ")", brand );
|
|
- user.unsafe().sendPacket( new PluginMessage( user.getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_13 ? "minecraft:brand" : "MC|Brand", DefinedPacket.toArray( brand ), handshakeHandler != null && handshakeHandler.isServerForge() ) );
|
|
+ user.unsafe().sendPacket( new PluginMessage( user.getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_13 ? "minecraft:brand" : "MC|Brand", brand, handshakeHandler != null && handshakeHandler.isServerForge() ) ); // Waterfall
|
|
brand.release();
|
|
}
|
|
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java
|
|
index 172cc8e5..a16c48bb 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java
|
|
@@ -300,7 +300,7 @@ public class DownstreamBridge extends PacketHandler
|
|
|
|
brand = ByteBufAllocator.DEFAULT.heapBuffer();
|
|
DefinedPacket.writeString( bungee.getName() + " (" + bungee.getVersion() + ")" + " <- " + serverBrand, brand );
|
|
- pluginMessage.setData( DefinedPacket.toArray( brand ) );
|
|
+ pluginMessage.setData( brand );
|
|
brand.release();
|
|
// changes in the packet are ignored so we need to send it manually
|
|
con.unsafe().sendPacket( pluginMessage );
|
|
diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
|
|
index 5b9c35d1..2d6885a9 100644
|
|
--- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
|
|
+++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
|
|
@@ -50,7 +50,7 @@ import net.md_5.bungee.protocol.Varint21LengthFieldPrepender;
|
|
public class PipelineUtils
|
|
{
|
|
|
|
- public static final AttributeKey<ListenerInfo> LISTENER = AttributeKey.valueOf( "ListerInfo" );
|
|
+ public static final AttributeKey<ListenerInfo> LISTENER = AttributeKey.newInstance( "ListerInfo" );
|
|
public static final ChannelInitializer<Channel> SERVER_CHILD = new ChannelInitializer<Channel>()
|
|
{
|
|
@Override
|
|
--
|
|
2.42.1
|
|
|