Bot doesn't see the server responses to its slash commands?

Thank you so much for the reply and additional information. I’m pretty new to this, so everything helps.

The original issue of not getting the response to the commands was indeed solved, and I do have a functional method for getting the data I wanted. But as you point out, its not totally bullet proof. I want to try and be cautious and not get too clever right away, particularly since I’m not familiar with the syntax of all the possible NOTICE message response formats. But experimenting with adding the CAP for tags and adjusting which splits have which parts of the data, this is what I’m using now:

                else if (split.Length > 2 && split[2] == "NOTICE")
                {
                    _vaProxy.WriteToLog($"TwitchBot NOTICE: {line}", "yellow");
                    //Not sure about the format of all the NOTICE messages, but we want to handle mods and vips_success
                    if (split[0].StartsWith("@msg-id=room_mods") || split[0].StartsWith("@msg-id=vips_success"))
                    {
                        //@msg-id=room_mods :tmi.twitch.tv NOTICE #robertsmania :The moderators of this channel are: mod1, mod2, mod3, ... modX
                        //@msg-id=vips_success :tmi.twitch.tv NOTICE #robertsmania :The VIPs of this channel are: vip1, vip2, vip3, ... vipX.
                        //                                            ^^^^^^^^
                        //Grab the channel name here
                        int secondColonPosition = line.IndexOf(':');
                        int thirdColonPosition = line.IndexOf(':', secondColonPosition + 1);
                        int fourthColonPosition = line.IndexOf(':', thirdColonPosition + 1);
                        string message = line.Substring(thirdColonPosition + 1);//Everything past the third colon
                        string channel = split[3].TrimStart('#');
                        string userList = line.Substring(fourthColonPosition + 2); //2 skips the space after the colon, should be list of users
                        userList = userList.TrimEnd('.'); //VIP lists do appear to have a period at the end?
                        if (split[0].StartsWith("@msg-id=vips_success"))
                        {
                            vips = userList.Split(new string[] { ", " }, StringSplitOptions.None).ToList();
                        }
                        else if (split[0].StartsWith("@msg-id=room_mods"))
                        {
                            mods = userList.Split(new string[] { ", " }, StringSplitOptions.None).ToList();
                        }
                    }
                }

I guess I am a little worried that its depending on things in the message being a certain number of colons in, or that the NOTICE/JOIN/PING/PRVMSG identifiers are always in the same segment when split by spaces. Seems kind of risky.

Is there some kind of documentation with best practice or established framework for reliably parsing and handing the messages?