Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using TwitchLib.Api;
- using TwitchLib.Api.V5.Models.Channels;
- using TwitchLib.Client;
- using TwitchLib.Client.Events;
- using TwitchLib.Client.Models;
- using TwitchLib.Communication.Clients;
- using TwitchLib.Communication.Models;
- namespace FatChat {
- class TwitchBot {
- private TwitchClient client;
- private TwitchAPI twitchApi;
- public MessagesTracker msgTracker = new MessagesTracker();
- public TwitchBot() {
- Console.WriteLine("Твич бот - инициализация");
- ConnectionCredentials credentials =
- new ConnectionCredentials(Settings.botUserName, Settings.accesToken);
- Console.WriteLine("Settings.botUserName: " + Settings.botUserName);
- Console.WriteLine("Settings.accesToken: " + Settings.accesToken);
- twitchApi = new TwitchAPI();
- twitchApi.Settings.ClientId = Settings.clientID;
- twitchApi.Settings.AccessToken = Settings.accesToken;
- client = new TwitchClient();
- client.Initialize(credentials, Settings.chennelToConnect);
- client.OnLog += Client_OnLog;
- client.OnMessageReceived += Client_OnMessageRecevied;
- client.OnMessageSent += Client_OnMessageSend;
- client.OnConnected += Client_OnConnected;
- client.OnJoinedChannel += Client_OnJoinedChannel;
- client.OnLeftChannel += Client_OnLeftChennel;
- client.OnConnectionError += Client_OnConnectionError;
- client.Connect();
- //client.JoinRoom(Settings.chennelToConnect, "test_room");
- if (client.IsConnected) {
- Console.WriteLine("Бот присоединился к каналу " + Settings.chennelToConnect);
- Console.WriteLine(client.JoinedChannels.Count);
- foreach (JoinedChannel cennel in client.JoinedChannels.ToList<JoinedChannel>()) {
- Console.WriteLine(cennel.Channel);
- }
- } else {
- Console.WriteLine("Бот не смог присоединится к каналу" + Settings.chennelToConnect);
- }
- Console.WriteLine("Твич бот - загружен");
- }
- private void Client_OnConnected(object sender, OnConnectedArgs e) {
- client.JoinChannel(Settings.chennelToConnect);
- Console.WriteLine(client.TwitchUsername);
- client.SendMessage(Settings.chennelToConnect, "MrDestructoid");
- }
- private void Client_OnMessageSend(object sender, OnMessageSentArgs e) {
- Console.WriteLine("On msg send: " + e.SentMessage);
- }
- private void Client_OnLog(object sender, OnLogArgs e) {
- Console.WriteLine("On log: " + e.BotUsername + " " + e.Data + " " + e.DateTime);
- }
- private void Client_OnConnectionError(object sender, OnConnectionErrorArgs e) {
- Console.WriteLine("Error: " + e.Error);
- }
- private void Client_OnLeftChennel(object sender, OnLeftChannelArgs e) {
- Console.WriteLine(e.BotUsername + " left " + e.Channel);
- }
- private void Client_OnMessageRecevied(object sender, OnMessageReceivedArgs e) {
- //Console.WriteLine("Got msg from chat");
- //Console.WriteLine("Sender: " + e.ChatMessage.Username);
- //Console.WriteLine("Message: " + e.ChatMessage.Message);
- //Console.WriteLine("EmoteReplacedMessage: " + e.ChatMessage.EmoteReplacedMessage);
- Dictionary<string, string> emoutes = new Dictionary<string, string>();
- foreach (EmoteSet.Emote emote in e.ChatMessage.EmoteSet.Emotes) {
- //Console.WriteLine("Emote set: " + emote.ImageUrl + " " + emote.Name);
- if(emoutes.ContainsKey(emote.Name) == false)
- emoutes.Add(emote.Name, emote.ImageUrl);
- }
- msgTracker.AddMsg(e.ChatMessage.Username, e.ChatMessage.Message, emoutes, e.ChatMessage.ColorHex);
- emoutes.Clear();
- }
- private void Client_OnJoinedChannel(object sender, OnJoinedChannelArgs e) {
- Console.WriteLine("Hey guys! I am a bot connected via TwitchLib!");
- client.SendMessage(e.Channel, "Hey guys! I am a bot connected via TwitchLib!");
- }
- public void Disconnect() {
- if (client != null && client.IsConnected) {
- client.Disconnect();
- Console.WriteLine("Twitch bot disconnected!");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement