//password from twitchapps.com/tmi static void Main(string[] args) { var irc = new IrcClient("irc.twitch.tv",6667, "cogwheelbot", "oauth:ffiiryof5w501xlz43qbk75k9xcmv1"); irc.JoinRoom("faddei"); var stopWatch = Stopwatch.StartNew(); while (true) { string message = irc.ReadMessage(); if(!string.IsNullOrEmpty(message)) { Console.WriteLine(message); if (message.ToLower().Contains("!hallo")) { irc.SendChatMessage("Testing Testing"); } if (message.ToLower().Contains("!add")) { string[] html = message.Split('!'); Console.WriteLine("open link: "+html[1].Substring(4)); System.Diagnostics.Process.Start(html[1].Substring(4)); } if (message.ToLower().Contains("!uptime")) { DateTime time = new DateTime(stopWatch.ElapsedTicks); string uptime = time.ToString("HH:mm:ss"); irc.SendChatMessage(time.Hour+ " hours "+ time.Minute + " mins"); irc.SendChatMessage(uptime); } } } }
static void Main(string[] args) { IrcClient client = new IrcClient("irc.twitch.tv", 6667, "mybot", "mypassword", "mychannel"); var pinger = new Pinger(client); pinger.Start(); while (true) { Console.WriteLine("Reading message"); var message = client.ReadMessage(); Console.WriteLine($"Message: {message}"); } }
private void CheckChat() { var paused = false; while (true) { var message = irc.ReadMessage(); if (message != null) { var localMessage = message; Dispatcher.Invoke(() => recieveChat.Text += localMessage + "\n"); Dispatcher.Invoke(() => scroll.ScrollToBottom()); if (message.Contains("PING")) { irc.Pong(); } if (message.Contains("!Pause")) { paused = true; } while (paused) { var pausedMessage = irc.ReadMessage(); if (pausedMessage.Contains("PING")) { irc.Pong(); } if (pausedMessage.Contains("!Pause")) { paused = false; } Thread.Sleep(100); } if (message.Contains("!Info")) { infoAllowed = !infoAllowed; } if (message.Contains("!Load")) { bot.LoadNames(message); } if (message.Contains("!Save")) { bot.SaveNames(message); } if (message.Contains("!Random")) { bot.Random(message); } if (message.Contains("!Remove ") && !message.Contains("Vip")) { bot.Remove(message); } if (message.Contains("!Remove") && message.Contains("Vip ")) { bot.RemoveVip(message); } if (message.Contains("!Hello")) { bot.GreetUser(message); } if (message.Contains("!RickRoll")) { bot.RickRoll(message); } if (message.Contains("!Strippers")) { bot.Strippers(message); } if (message.Contains("!Trials")) { bot.Trials(message); } if (message.Contains("!Vip ")) { bot.Vip(message); } if (message.Contains("!Donate")) { bot.Donate(); } if (message.Contains("!Slots")) { bot.Spin(message); } if (message.Contains("!Score")) { bot.ListScore(message); } if (message.Contains("!Commands") || message.Contains("!commands")) { bot.Commands(); } if (message.Contains("!List") && !message.Contains("Vip") && !message.Contains("Vip")) { bot.List(); } if ((message.Contains("!List") && message.Contains("Vip")) || message.Contains("!VipList") || message.Contains("!VIPList") || message.Contains("!ListVip")) { bot.ListVip(); } } Thread.Sleep(40); } // ReSharper disable once FunctionNeverReturns }
static void Main(string[] args) { //Survey survey = new Survey(); // Initialize and connect to Twitch chat IrcClient irc = new IrcClient("irc.chat.twitch.tv", 6667, _botName, _twitchOAuth, _broadcasterName); // Ping to the server to make sure this bot stays connected to the chat // Server will respond back to this bot with a PONG (without quotes): // Example: ":tmi.twitch.tv PONG tmi.twitch.tv :irc.twitch.tv" PingSender ping = new PingSender(irc); ping.Start(); // Listen to the chat until program exits while (true) { if (survey.IsActive && survey.End < DateTime.Now) { irc.SendPublicChatMessage(survey.ReportResults()); } // Read any message from the chat room string message = irc.ReadMessage(); Console.WriteLine(message); // Print raw irc messages if (message.Contains("PRIVMSG")) { // Messages from the users will look something like this (without quotes): // Format: ":[user]![user]@[user].tmi.twitch.tv PRIVMSG #[channel] :[message]" // Modify message to only retrieve user and message int intIndexParseSign = message.IndexOf('!'); string userName = message.Substring(1, intIndexParseSign - 1); // parse username from specific section (without quotes) // Format: ":[user]!" // Get user's message intIndexParseSign = message.IndexOf(" :"); message = message.Substring(intIndexParseSign + 2).Trim(); Console.WriteLine(message); // Print parsed irc message (debugging only) // Broadcaster commands if (userName.Equals(_broadcasterName)) { if (message.Equals("!exitbot")) { irc.SendPublicChatMessage("Bye! Have a beautiful time!"); Environment.Exit(0); // Stop the program } if (message.Contains("!umfrage ") || message.Contains("!Umfrage ")) { if (message.Contains("--s")) { irc.SendPublicChatMessage(survey.ReportResults()); } else { surveyEndOffset = 2; if (message.Contains("--t ")) { surveyEndOffset = Int32.Parse(message.Substring(message.LastIndexOf(' ') + 1)); } survey = new SurveyCommand() { Title = message.Substring(message.IndexOf(' ') + 1), AnsweredMaybe = 0, AnsweredNo = 0, AnsweredYes = 0, Start = DateTime.Now, End = DateTime.Now.AddMinutes(surveyEndOffset), IsActive = true, Participants = new List <string>() }; irc.SendPublicChatMessage(survey.GetSurveyStartedMessage()); } } } else { // General commands anyone can use if (survey.IsActive) { if (!survey.Participants.Contains(userName)) { if (message.ToLower().Equals("+")) { survey.AnsweredYes += 1; survey.Participants.Add(userName); } if (message.ToLower().Equals("-")) { survey.AnsweredNo += 1; survey.Participants.Add(userName); } if (message.ToLower().Equals("+-") || message.ToLower().Equals("+/-")) { survey.AnsweredMaybe += 1; survey.Participants.Add(userName); } } else { irc.SendPublicChatMessage($"/w {userName} Du kannst nur ein mal pro Umfrage abstimmen. Die aktuelle Umfrage läuft noch bis {survey.End.ToString("hh:mm:ss")}"); } } if (message.Equals("!hello")) { irc.SendPublicChatMessage("Hello World!"); } } } } }