Advertisement
Serious07

Twitch bot

Jun 23rd, 2019
467
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.68 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using TwitchLib.Api;
  7. using TwitchLib.Api.V5.Models.Channels;
  8. using TwitchLib.Client;
  9. using TwitchLib.Client.Events;
  10. using TwitchLib.Client.Models;
  11. using TwitchLib.Communication.Clients;
  12. using TwitchLib.Communication.Models;
  13.  
  14. namespace FatChat {
  15.     class TwitchBot {
  16.         private TwitchClient client;
  17.         private TwitchAPI twitchApi;
  18.  
  19.         public MessagesTracker msgTracker = new MessagesTracker();
  20.  
  21.         public TwitchBot() {
  22.             Console.WriteLine("Твич бот - инициализация");
  23.  
  24.             ConnectionCredentials credentials =
  25.                 new ConnectionCredentials(Settings.botUserName, Settings.accesToken);
  26.  
  27.             Console.WriteLine("Settings.botUserName: " + Settings.botUserName);
  28.             Console.WriteLine("Settings.accesToken: " + Settings.accesToken);
  29.  
  30.             twitchApi = new TwitchAPI();
  31.             twitchApi.Settings.ClientId = Settings.clientID;
  32.             twitchApi.Settings.AccessToken = Settings.accesToken;
  33.  
  34.             client = new TwitchClient();
  35.             client.Initialize(credentials, Settings.chennelToConnect);
  36.             client.OnLog += Client_OnLog;
  37.  
  38.             client.OnMessageReceived += Client_OnMessageRecevied;
  39.             client.OnMessageSent += Client_OnMessageSend;
  40.             client.OnConnected += Client_OnConnected;
  41.             client.OnJoinedChannel += Client_OnJoinedChannel;
  42.             client.OnLeftChannel += Client_OnLeftChennel;
  43.             client.OnConnectionError += Client_OnConnectionError;
  44.  
  45.             client.Connect();
  46.  
  47.             //client.JoinRoom(Settings.chennelToConnect, "test_room");
  48.  
  49.             if (client.IsConnected) {
  50.                 Console.WriteLine("Бот присоединился к каналу " + Settings.chennelToConnect);
  51.                 Console.WriteLine(client.JoinedChannels.Count);
  52.  
  53.                 foreach (JoinedChannel cennel in client.JoinedChannels.ToList<JoinedChannel>()) {
  54.                     Console.WriteLine(cennel.Channel);
  55.                 }
  56.             } else {
  57.                 Console.WriteLine("Бот не смог присоединится к каналу" + Settings.chennelToConnect);
  58.             }
  59.  
  60.             Console.WriteLine("Твич бот - загружен");
  61.         }
  62.  
  63.         private void Client_OnConnected(object sender, OnConnectedArgs e) {
  64.             client.JoinChannel(Settings.chennelToConnect);
  65.             Console.WriteLine(client.TwitchUsername);
  66.             client.SendMessage(Settings.chennelToConnect, "MrDestructoid");
  67.         }
  68.  
  69.         private void Client_OnMessageSend(object sender, OnMessageSentArgs e) {
  70.             Console.WriteLine("On msg send: " + e.SentMessage);
  71.         }
  72.  
  73.         private void Client_OnLog(object sender, OnLogArgs e) {
  74.             Console.WriteLine("On log: " + e.BotUsername + " " + e.Data + " " + e.DateTime);
  75.         }
  76.  
  77.         private void Client_OnConnectionError(object sender, OnConnectionErrorArgs e) {
  78.             Console.WriteLine("Error: " + e.Error);
  79.         }
  80.  
  81.         private void Client_OnLeftChennel(object sender, OnLeftChannelArgs e) {
  82.             Console.WriteLine(e.BotUsername + " left " + e.Channel);
  83.         }
  84.  
  85.         private void Client_OnMessageRecevied(object sender, OnMessageReceivedArgs e) {
  86.             //Console.WriteLine("Got msg from chat");
  87.             //Console.WriteLine("Sender: " + e.ChatMessage.Username);
  88.             //Console.WriteLine("Message: " + e.ChatMessage.Message);
  89.  
  90.             //Console.WriteLine("EmoteReplacedMessage: " + e.ChatMessage.EmoteReplacedMessage);
  91.  
  92.             Dictionary<string, string> emoutes = new Dictionary<string, string>();
  93.  
  94.             foreach (EmoteSet.Emote emote in e.ChatMessage.EmoteSet.Emotes) {
  95.                 //Console.WriteLine("Emote set: " + emote.ImageUrl + " " + emote.Name);
  96.  
  97.                 if(emoutes.ContainsKey(emote.Name) == false)
  98.                     emoutes.Add(emote.Name, emote.ImageUrl);
  99.             }
  100.             msgTracker.AddMsg(e.ChatMessage.Username, e.ChatMessage.Message, emoutes, e.ChatMessage.ColorHex);
  101.  
  102.             emoutes.Clear();
  103.         }
  104.  
  105.         private void Client_OnJoinedChannel(object sender, OnJoinedChannelArgs e) {
  106.             Console.WriteLine("Hey guys! I am a bot connected via TwitchLib!");
  107.             client.SendMessage(e.Channel, "Hey guys! I am a bot connected via TwitchLib!");
  108.         }
  109.  
  110.         public void Disconnect() {
  111.             if (client != null && client.IsConnected) {
  112.                 client.Disconnect();
  113.                 Console.WriteLine("Twitch bot disconnected!");
  114.             }
  115.         }
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement