Exemple #1
0
        public IMcpeMessageHandler CreatePlayer(INetworkHandler session, PlayerInfo playerInfo)
        {
            Stopwatch timer = new Stopwatch();

            timer.Start();

            try
            {
                Log.Debug($"Proxy connecting to node on {_serverEndpoint}");

                TcpClient client = new TcpClient() /*{NoDelay = true}*/;
                client.NoDelay           = true;
                client.ReceiveBufferSize = client.ReceiveBufferSize * 10;

                {
                    var endPoint = (IPEndPoint)_serverEndpoint;
                    client.Connect(endPoint);

                    Log.Debug("Connected to node, requesting new player");

                    var          stream = client.GetStream();
                    BinaryWriter writer = new BinaryWriter(new BufferedStream(stream, client.SendBufferSize));;
                    BinaryReader reader = new BinaryReader(stream);

                    FtlCreatePlayer message = new FtlCreatePlayer();
                    message.username      = playerInfo.Username;
                    message.clientuuid    = playerInfo.ClientUuid;
                    message.serverAddress = playerInfo.ServerAddress;
                    message.clientId      = playerInfo.ClientId;
                    message.skin          = playerInfo.Skin;
                    var bytes = message.Encode();

                    writer.Write((byte)1);
                    writer.Write(bytes.Length);
                    writer.Write(bytes);
                    writer.Flush();

                    int port = reader.ReadInt32();
                    Log.Debug("Recieved port for node message handler " + port);

                    IMcpeMessageHandler handler = new ProxyMessageHandler(client, session);

                    return(handler);
                }
            }
            catch (Exception e)
            {
                Log.Error($"Failed communication with node after {timer.ElapsedMilliseconds}ms", e);
            }

            return(null);
        }
Exemple #2
0
 public virtual void HandleFtlCreatePlayer(FtlCreatePlayer message)
 {
 }
 public abstract void HandleFtlCreatePlayer(FtlCreatePlayer message);
Exemple #4
0
 public override void HandleFtlCreatePlayer(FtlCreatePlayer message)
 {
 }
Exemple #5
0
 public override void HandleFtlCreatePlayer(FtlCreatePlayer message)
 {
     UnhandledPackage(message);
 }