Ejemplo n.º 1
0
        public static void Run(ChatCallback Callback, string ChatText)
        {
            if (ChatText.StartsWith("/"))
            {
                ChatText = ChatText.Substring(1);
            }

            if (ChatText.Length == 0)
            {
                AllCommands(Callback);
                return;
            }

            var Parts = ChatText.Split(' ')
                        .Where(Part => Part.Trim().Length > 0)
                        .ToList();

            if (Commands.ContainsKey(Parts[0]))
            {
                Commands[Parts[0]].Run(Callback, Parts.Skip(1).ToList());
            }
            else
            {
                NotFound(Callback, Parts[0]);
                AllCommands(Callback);
            }
        }
Ejemplo n.º 2
0
 public static void Help(ChatCallback Callback, string CommandName = null)
 {
     if (CommandName == null)
     {
         Callback.Usage(Commands.Values.Select(Command => Command.Usage()));
     }
     else
     {
         if (Commands.ContainsKey(CommandName))
         {
             Callback.Usage(Commands[CommandName].Usage());
         }
         else
         {
             NotFound(Callback, CommandName);
         }
     }
 }
Ejemplo n.º 3
0
 private static void NotFound(ChatCallback Callback, string CommandName)
 {
     Callback.Send(XenoLang.COMMAND_NOT_FOUND.Get()
                   .Replace("%1", CommandName));
 }
Ejemplo n.º 4
0
 private static void AllCommands(ChatCallback Callback)
 {
     Callback.Send(XenoLang.AVAILABLE_COMMANDS.Get()
                   .Replace("%1", string.Join(", ", Commands.Keys)));
 }
Ejemplo n.º 5
0
 public static void UsageError(this ICommand Command, ChatCallback Callback, string ErrorText)
 {
     Callback.Send(ErrorText);
     Help(Callback, Command.Name());
 }