private static void HandleChatMessageReceived(object sender, ChatMessageEventArgs e) { var message = e.Message; if (!message.StartsWith("/") || message.StartsWith("//")) { SendChatMessage(e.Client.Username, message); } else { e.PreventDefault = ProcessChatCommand(e); } }
/// <summary> /// Parse sent message as chat command /// </summary> /// <param name="e"></param> /// <returns>true if the command was successfully executed</returns> private static bool ProcessChatCommand(ChatMessageEventArgs e) { var commandWithoutSlash = e.Message.TrimStart('/'); var messageArray = commandWithoutSlash .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (messageArray.Length <= 0) { return(false); // command not found } var alias = messageArray[0]; var trimmedMessageArray = new string[messageArray.Length - 1]; if (trimmedMessageArray.Length != 0) { Array.Copy(messageArray, 1, trimmedMessageArray, 0, messageArray.Length - 1); } CommandManager.HandleCommand(e.Client, alias, trimmedMessageArray); return(true); }