示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }