From f9f9c3213d0c4d99e9591884992123108f9cee83 Mon Sep 17 00:00:00 2001 From: IfarPL Date: Sat, 2 Aug 2014 16:03:52 +0200 Subject: [PATCH] Added 'ForwardToPlayer' subchannel --- .../bungee/connection/DownstreamBridge.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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 3446bab1..8a25fcb9 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 @@ -232,6 +232,29 @@ public class DownstreamBridge extends PacketHandler ByteArrayDataOutput out = ByteStreams.newDataOutput(); String subChannel = in.readUTF(); + if ( subChannel.equals( "ForwardToPlayer" ) ) + { + ProxiedPlayer target = bungee.getPlayer( in.readUTF() ); + if ( target != null ) + { + // Read data from server + String channel = in.readUTF(); + short len = in.readShort(); + byte[] data = new byte[ len ]; + in.readFully( data ); + + // Prepare new data to send + out.writeUTF( channel ); + out.writeShort( data.length ); + out.write( data ); + byte[] payload = out.toByteArray(); + + target.getServer().sendData( "BungeeCord", payload ); + } + + // Null out stream, important as we don't want to send to ourselves + out = null; + } if ( subChannel.equals( "Forward" ) ) { // Read data from server