Esempio n. 1
0
        internal IPromise <Nothing> Dispatch(PlayerHandle client, Message eventMsg)
        {
            ARequest request = ARequest.Parse(client, this.server, eventMsg);

            if (request == null)
            {
                Log.Warning("Failed to parse request from {name}/{hash}/{address}: {msg_name} \"{msg_data}\"",
                            client.Name,
                            client.Stream.ConnectionHash,
                            client.Stream.ConnectionEndpoint,
                            eventMsg.name,
                            eventMsg.DebugDescription());

                return(Nothing.Resolved());
            }

            if (!request.Validate(client, this.server))
            {
                Log.Warning("Failed to validate request from {name}/{hash}/{address}: {msg_name} \"{msg_data}\"",
                            client.Name,
                            client.Stream.ConnectionHash,
                            client.Stream.ConnectionEndpoint,
                            eventMsg.name,
                            eventMsg.DebugDescription());

                return(Nothing.Resolved());
            }

            Log.Verbose("<= {player}@{lobby} {event_description}",
                        client.Digest,
                        client.CurrentLobbyIdentifier,
                        request.DebugDescription());

            return(request.Process(client, this.server));
        }