public TabPage CreateTabPage(Room room) { TabPage page = new TabPage (); page.Text = "Group: " + room.ID; ChatControl cht = new ChatControl (); cht.Dock = DockStyle.Fill; cht.Room = room; page.Controls.Add (cht); return page; }
public TabPage CreateTabPage(Room room) { if (pages.ContainsKey (room.ID)) { return pages [room.ID]; } pages.Add (room.ID, new TabPage ()); TabPage page = pages[room.ID]; page.Text = "Group: " + room.ID; ChatControl cht = new ChatControl (); cht.Dock = DockStyle.Fill; cht.Room = room; page.Controls.Add (cht); return page; }
static void Room_UserStateChanged(Room room, User user, LiveCodingChat.Xmpp.UserState state) { if (state == LiveCodingChat.Xmpp.UserState.Available) { userCount++; } else { userCount--; } if (!isStarted) return; if (user.ID == chatRoom.Client.Nick) return; if (state == LiveCodingChat.Xmpp.UserState.Available) { System.Timers.Timer tmr = new System.Timers.Timer(); tmr.Interval = 20000; tmr.Elapsed +=delegate { if (welcomeUser.Count != 0) for (int i = 0; i < welcomeUser.Count; i++) if (Convert.ToInt32(welcomeUser[i].Remove(0, welcomeUser[i].Length - 3)) <= stopWatch.Elapsed.Minutes - timeToSayHelloAgainInMinutes) welcomeUser.Remove(welcomeUser[i]); if (!welcomeUser.Exists(t => t.Substring(0, t.Length - 3) == user.ID.ToLower())) { room.SendMessage("Willkommen @" + user.ID + ".Ich bin Adam der Bot dieses Streams. Sprich mich an, wenn du Infos zum Stream brauchst"); welcomeUser.Add(user.ID.ToLower() + stopWatch.Elapsed.Minutes.ToString("000")); } if (userCount % 10 == 0) { room.SendMessage("@" + user.ID + " ist der " + userCount + " besucher dieses Streams :hi:"); } tmr.Stop(); }; tmr.Start(); } }
static void Room_UserStateChanged(Room room, User user, LiveCodingChat.Xmpp.UserState state) { if (user.ID == session.Username) return; if (state == LiveCodingChat.Xmpp.UserState.Available) { System.Timers.Timer tmr = new System.Timers.Timer(); tmr.Interval = 20000; tmr.Elapsed +=delegate { room.SendMessage("Willkommen @" + user.ID + ".Ich bin Adam der Bot dieses Streams. Sprich mich an, wenn du Infos zum Stream brauchst"); userCount++; if (userCount % 3 == 0) { room.SendMessage("@" + user.ID + " ist der " + userCount + " besucher dieses Streams :hi:"); } tmr.Stop(); }; tmr.Start(); } else { userCount--; } }
static void Room_Client_MessageReceived(LiveCodingChat.Xmpp.Room room, LiveCodingChat.Xmpp.MessageReceivedEventArgs e) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine(e.Nick + ": " + e.Message); Console.ForegroundColor = ConsoleColor.White; if (!isStarted) { return; } if (e.User == null) { return; } string fnd = e.Message.ToLower(); System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex("NE[E]*I[I]*N TO[O]*M NE[E]*I[I]*N"); if (fnd.Contains("@tom") || fnd.Contains("@bobstriker") || r.IsMatch(fnd.ToUpper())) { if (player == null) { System.Media.SystemSounds.Exclamation.Play(); } else { player.Play(); } } if (e.User.ID == chatRoom.Client.Nick || e.User.ID == "octobot")//TODO email->nick/username { return; } if (fnd.Contains(chatRoom.Client.Nick) || fnd.Contains("adam")) { room.SendMessage("@" + e.Nick + ": Hier wird OctoAwesome entwickelt. Mehr Infos unter http://www.octoawesome.net"); } if (e.Nick == "jvbsl" || e.User.Staff || e.User.Role == "moderator") { if (fnd.StartsWith("/strawpoll ")) { string[] args = e.Message.Substring("/strawpoll ".Length).Split(','); Strawpoll poll = new Strawpoll(args); string pollRes = poll.CreatePoll(); if (pollRes != null) { room.SendMessage("Neuer Poll - " + args[0] + ": " + pollRes); } } } if (fnd.Contains("kopfoderzahl?")) { byte b = Convert.ToByte(rnd.Next(0, 2)); switch (b) { case 0: room.SendMessage("@" + e.Nick + " Kopf"); break; case 1: room.SendMessage("@" + e.Nick + " Zahl"); break; } } }