public bool ExecutePlayerCommand(AdventurePlayer player, ChatCommandEventArgs e) { var advCommands = e.ArgsAsList; var cmd = advCommands[0].ToLower(); var command = _commandRegistry.RegisteredCommands.FirstOrDefault(c => c.IsMatch(cmd)) ?? _commandRegistry.RegisteredCommands.FirstOrDefault(c => c.IsMatch("use")); if (!command.IsVerbatim) { var nullWords = new List <string> { "a", "an", "the", "this", "that", "to" }; var argsSent = advCommands.ToArray(); foreach (var word in argsSent.Where(word => nullWords.Contains(word)).Select(word => word)) { advCommands.Remove(word); } } command?.Invoke(player, e); return(command.CheckEvents); }
public void ExecutePlayerCommand(AdventurePlayer player, ChatCommandEventArgs e) { var advCommands = e.ArgsAsList; var cmd = advCommands[0].ToLower(); var command = _commandRegistry.RegisteredCommands.FirstOrDefault(c => c.IsMatch(cmd)) ?? _commandRegistry.RegisteredCommands.FirstOrDefault(c => c.IsMatch("use")); command?.Invoke(player, e); }
private void JoinGame(IChatClient chatClient, ChatCommandEventArgs e) { var player = new AdventurePlayer(e.UserId, e.UserName, chatClient) { CurrentLocation = Dungeon.GetStartingLocation() }; _players.Add(player); chatClient.PostMessage(e.Channel, $"{e.UserName} has joined the Adventure!"); var welcome = new StringBuilder("Welcome to Adventure!"); welcome.AppendLine("Use `!adv help` to get some help."); player.ChatClient.PostDirectMessage(player.Id, welcome.ToString()); var look = _commandHandler.GetCommand("look"); look?.Invoke(player, e); }