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); }
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(); }
static void Main(string[] args) { defaultCommandManager = new DefaultCommandManager("ConsoleApp.Commands", "ConsoleApp"); foreach (var command in args) { defaultCommandManager.Dispatch(command, null); } Console.ReadKey(); }
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)); }