Пример #1
0
        public async Task OnNext(Package value)
        {
            if (value.Command == 0 && value.Payload.Length == 0)
            {
                logger.Debug("Received null package");
                return;
            }
            logger.Trace("Received a new Package with ID: " + value.UId);
            try
            {
                value.Payload = defaultManager.Dispatch(value.Command, new CommandParameter(value.BaseClient.Id, value.Payload));
            }
            catch (Exception ex)
            {
                logger.Error("Dispatch failed in Command " + value.OfficialCommand, ex);
                return;
            }

            logger.Trace(value.OfficialCommand);

            if (value.Payload == null)
            {
                logger.Trace($"Payload is null, returning from Command {value.OfficialCommand} without sending return package.");
                return;
            }

            await value.BaseClient.SendPackageAsync(value);
        }
Пример #2
0
        public void OnNext(Package value)
        {
            Task.Run(() =>
            {
                if (value.Command == 0 && value.Payload.Length == 0)
                {
                    logger.Debug("Received null package");
                    return;
                }
                logger.Trace("Received a new Package with ID: " + value.UId);
                try
                {
                    value.Payload = defaultManager.Dispatch(value.Command, new CommandParameter(value.BaseClient.Id, value.Payload));
                }
                catch (Exception ex)
                {
                    logger.Error(ex, "Dispatch failed in Command " + value.Command);
                    return;
                }

                logger.Trace(value.Command);

                if (value.Payload == null)
                {
                    return;
                }

                value.BaseClient.SendPackage(value);
            });
        }
        static void Main(string[] args)
        {
            defaultCommandManager = new DefaultCommandManager("ConsoleApp.Commands", "ConsoleApp"); //New instance of a standard manager with two search areas

            foreach (var command in args)
            {
                defaultCommandManager.Dispatch(command, null); //Dispatch a new command from args
            }
            Console.ReadKey();
        }
Пример #4
0
        static void Main(string[] args)
        {
            defaultCommandManager = new DefaultCommandManager("ConsoleApp.Commands", "ConsoleApp");

            foreach (var command in args)
            {
                defaultCommandManager.Dispatch(command, null);
            }

            Console.ReadKey();
        }
Пример #5
0
        private static void ServerOnClientConnected(object sender, ConnectedClient e)
        {
            e.OnCommandReceived += (s, args) =>
            {
                var           connectedClient = (ConnectedClient)s;
                NetworkPlayer player          = null;

                if (connectedClient.Registered)
                {
                    GameManager.Players.TryGetValue(connectedClient.PlayerId, out player);
                }

                var answer = manager.Dispatch(command: (CommandName)args.Command, new CommandArgs(player, connectedClient, args.Data));
                e.Send(answer, answer.Length);
            };

            Console.WriteLine("New Client has connected. Current Amount: " + (server.ClientAmount + 1));
        }