Не работает отправка сообщений от бота твитч (c#)

У меня такая проблема я подключаю бота к чату твитч предварительно вводив название канала в channelTextBox у меня бот подключается по нажатию кнопки коннект (с этим всё хорошо всё работает). Но я хочу отправить сообщение от бота я выбираю бота (бот в виде кнопки) пишу сообщение в idcopytextbox нажимаю энтер для отправки но ничего не происходит. ПОМОГИТЕ!

private void CreateButtonForBot(string botName, Bot bot)
{
    Button botButton = new Button
    {
        Content = botName,
        Width = 120,
        Height = 40,
        Margin = new Thickness(8),
        Padding = new Thickness(5),
        FontSize = 12,
        Background = new SolidColorBrush(Color.FromRgb(30, 33, 61)),
        Foreground = new SolidColorBrush(Colors.White),
        BorderBrush = new SolidColorBrush(Colors.Black),
        BorderThickness = new Thickness(1),
    };

    botButton.Click += BotButton_Click;

    botButton.MouseEnter += (s, e) =>
    {
        botButton.Background = new SolidColorBrush(Color.FromRgb(100, 149, 237));
    };
    botButton.MouseLeave += (s, e) =>
    {
        botButton.Background = new SolidColorBrush(Color.FromRgb(30, 33, 61));
    };

    stackPanelBots.Children.Add(botButton);
}
private void connectchat_Click(object sender, RoutedEventArgs e)
{
    if (botNames.Count == 0 || oauthTokens.Count == 0 || botNames.Count != oauthTokens.Count)
    {
        MessageBox.Show("Некорректные данные о ботах. Пожалуйста, загрузите файл с данными о ботах.");
        return;
    }

    for (int i = 0; i < botNames.Count; i++)
    {
        try
        {
            Bot bot = new Bot(channelNameTextBox.Text, botNames[i], oauthTokens[i]);
            bot.Connect(true);
            bots.Add(bot);
            CreateButtonForBot(botNames[i], bot);
        }
        catch (Exception ex)
        {
            MessageBox.Show($"Ошибка при подключении бота '{botNames[i]}': {ex.Message}");
        }
    }
}
 private void LoadFileButton_Click(object sender, RoutedEventArgs e)
 {
     OpenFileDialog openFileDialog = new OpenFileDialog();
     openFileDialog.Filter = "Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";
     bool? result = openFileDialog.ShowDialog();
     if (result == true)
     {
         string filePath = openFileDialog.FileName;
         try
         {
             string[] lines = File.ReadAllLines(filePath);
             foreach (string line in lines)
             {
                 string[] parts = line.Split(':');
                 if (parts.Length >= 2)
                 {
                     string botName = parts[0].Trim();
                     string oauthToken = parts[1].Trim();

                     botNames.Add(botName);
                     oauthTokens.Add(oauthToken);
                 }
             }
         }
         catch (Exception exception)
         {
             MessageBox.Show("Ошибка при чтении файла: " + exception.Message);
         }
     }
 }
private void Idtextbox_Copy_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        if (selectedBot == null)
        {
            MessageBox.Show("Бот не выбран.");
            return;
        }

        string message = idtextbox_Copy.Text;

        selectedBot.SendMessage(message);

       
    }
}
using System;
using TwitchLib.Client;
using TwitchLib.Client.Events;
using TwitchLib.Client.Models;

namespace WpfAppGlebItog
{
    internal class Bot
    {
        private ConnectionCredentials creds;
        private TwitchClient client;
        public string ChannelName { get; private set; }
        public string BotName { get; private set; }
        private string BotToken;

        internal Bot(string channelName, string botName, string botToken)
        {
            ChannelName = channelName;
            BotName = botName;
            BotToken = botToken;
            creds = new ConnectionCredentials(BotName, BotToken);
            client = new TwitchClient();
        }

        internal void Connect(bool isLogging)
        {
            client.Initialize(creds, ChannelName);
            if (isLogging)
                client.OnLog += Client_OnLog;
            client.OnConnected += Client_OnConnected;
            client.Connect();
        }

        private void Client_OnLog(object sender, OnLogArgs e)
        {
            Console.WriteLine(e.Data);
        }

        private void Client_OnConnected(object sender, OnConnectedArgs e)
        {
            Console.WriteLine($"Connected to {e.AutoJoinChannel}");
        }

        internal void Disconnect()
        {
            client.Disconnect();
        }

        internal void SendMessage(string message)
        {
            if (client.IsConnected && !string.IsNullOrEmpty(ChannelName))
            {
                client.SendMessage(ChannelName, message);
            }
        }
    }
}

It’s unclear how your bot works?

Like what is bot in your code?

Are you logging the raw responses/message lines from the socket assuming you are using an IRC socket connection, or if using the send chat API the response from it

– google translate –

Непонятно, как работает ваш бот?

Например, что такое bot в вашем коде?

Вы регистрируете необработанные ответы/строки сообщений из сокета, предполагая, что вы используете соединение через сокет IRC, или, если вы используете API отправки чата, ответ от него

Я использую twitch lib для подключения к чату по irc и логирую все действия в консоль. Далее в программе загружаю txt файл в таком формате nickbot:OAuth и подключаю его по irc к чату канала. Но я хотел отправлять от его имени сообщения в чате но это не работает.

But are you logging the raw lines responding from the server? For anything that the lib doesn’t surface back to you? For focussed help with a library the libraries discord might be a better shout Twitch API

Но вы регистрируете необработанные строки, отвечающие с сервера? Для всего, что библиотека не возвращает вам? Для целенаправленной помощи с библиотекой, библиотека Discord может быть лучшим криком Twitch API

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.