The easy to use and full featured Irc Bot everyone is talking about!
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

Console_Interface.cs 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.ObjectModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using Combot;
  9. using Combot.IRCServices.Messaging;
  10. using Combot.Configurations;
  11. using Combot.IRCServices;
  12. using Combot.IRCServices.Commanding;
  13. namespace Console_Interface
  14. {
  15. public class Console_Interface
  16. {
  17. public static List<Bot> CombotSessions = new List<Bot>();
  18. public static Config Config = new Config();
  19. public static void Main(string[] args)
  20. {
  21. Config.LoadServers();
  22. foreach (ServerConfig server in Config.Servers)
  23. {
  24. Bot Combot = new Bot(server);
  25. Combot.ErrorEvent += e => BotErrorHandler(e, Combot.ServerConfig.Name);
  26. // Incoming Messages
  27. Combot.IRC.Message.RawMessageEvent += (sender, e) => RawMessageHandler(sender, e, Combot.ServerConfig.Name);
  28. // Outgoing Messages
  29. Combot.IRC.Command.PrivateMessageCommandEvent += (sender, e) => PrivateMessageCommandHandler(sender, e, Combot.ServerConfig.Name);
  30. Combot.IRC.Command.PrivateNoticeCommandEvent += (sender, e) => PrivateNoticeCommandHandler(sender, e, Combot.ServerConfig.Name);
  31. Combot.IRC.ConnectEvent += () => ConnectHandler(Combot.ServerConfig.Name);
  32. Combot.IRC.DisconnectEvent += () => DisconnectHandler(Combot.ServerConfig.Name);
  33. Combot.IRC.TCPErrorEvent += e => TCPErrorHandler(e, Combot.ServerConfig.Name);
  34. CombotSessions.Add(Combot);
  35. if (server.AutoConnect)
  36. {
  37. Combot.Connect();
  38. }
  39. }
  40. bool run = true;
  41. while (run)
  42. {
  43. ConsoleKeyInfo info = Console.ReadKey();
  44. if (info.Key == ConsoleKey.Escape)
  45. {
  46. Console.WriteLine("Exiting...");
  47. run = false;
  48. }
  49. }
  50. }
  51. private static void RawMessageHandler(object sender, string message, string server)
  52. {
  53. string msg = string.Format("[{0}] [{1}] {2}", DateTime.Now.ToString("HH:mm:ss"), server, message);
  54. Console.WriteLine(msg);
  55. }
  56. private static void BotErrorHandler(BotError error, string server)
  57. {
  58. string message = string.Format("[{0}] [{1}] \u0002{2} Error\u0002: {3}", DateTime.Now.ToString("HH:mm:ss"), server, error.Type, error.Message);
  59. Console.WriteLine(message);
  60. }
  61. private static void TCPErrorHandler(Combot.IRCServices.TCP.TCPError error, string server)
  62. {
  63. string message = string.Format("[{0}] [{1}] \u0002TCP Error {2}\u0002: {3}", DateTime.Now.ToString("HH:mm:ss"), server, error.Code, error.Message);
  64. Console.WriteLine(message);
  65. }
  66. private static void PrivateMessageCommandHandler(object sender, PrivateMessageCommand message, string server)
  67. {
  68. string msg = string.Format("[{0}] [{1}] \u0002{2}\u0002: {3}", message.TimeStamp.ToString("HH:mm:ss"), server, " --Combot-- ", message.Message);
  69. Console.WriteLine(msg);
  70. }
  71. private static void PrivateNoticeCommandHandler(object sender, PrivateNoticeCommand message, string server)
  72. {
  73. string msg = string.Format("[{0}] [{1}] \u0002{2}\u0002 -NOTICE-: {3}", message.TimeStamp.ToString("HH:mm:ss"), server, " --Combot-- ", message.Message);
  74. Console.WriteLine(msg);
  75. }
  76. private static void ConnectHandler(string server)
  77. {
  78. Console.WriteLine("-- {0} Connected --", server);
  79. }
  80. private static void DisconnectHandler(string server)
  81. {
  82. Console.WriteLine("-- {0} Disconnected --", server);
  83. }
  84. }
  85. }