private static async Task RunProcessInputAsyncMessageTest(string command, IrcEventHandler handler, Action handlerFunc, string prefix = null, string trailingParameter = null, string parameter = null) { var builder = new StringBuilder(); if (prefix != null) { builder.Append(string.Format(":{0} ", prefix)); } builder.Append(string.Format("{0}", command)); if (parameter != null) { builder.Append(string.Format(" {0}", parameter)); } if (trailingParameter != null) { builder.Append(string.Format(" :{0}", trailingParameter)); } var rawCommand = builder.ToString(); handlerFunc(); await handler.ProcessInputAsync(rawCommand); }
public IRCBot(IrcEventHandler onChannelMessage) { InitClient(); InitSettings(); InitHandlers(); Client.OnChannelMessage += onChannelMessage; }
public void Register <T>(IrcEventHandler <T> handler) where T : Event { if (handlers == null) { handlers = new ArrayList(); } handlers.Add(handler); }
private static async Task RunProcessInputAsyncCommandTest(string command, IrcEventHandler handler, Action handlerFunc, params string[] parameters) { var builder = new StringBuilder(); builder.Append(string.Format("/{0}", command)); foreach (var param in parameters) { builder.Append(string.Format(" {0}", param)); } var rawCommand = builder.ToString(); handlerFunc(); await handler.ProcessInputAsync(rawCommand); }
/// <summary> /// Connect to the server and begin the main loop /// </summary> public void Start() { Connect(); EventJoin += new IrcEventHandler(OnJoin); EventPart += new IrcEventHandler(OnPart); EventCTCPVersion += new IrcEventHandler(OnCTCPVersion); EventCTCPPing += new IrcEventHandler(OnCtcpPing); EventCTCPTime += new IrcEventHandler(OnCTCPTime); EventConnect += new IrcEventHandler(OnConnect); EventDisconnect += new IrcEventHandler(OnDisconnect); EventPublicMessage += new IrcEventHandler(OnPublicMessage); EventPublicNotice += new IrcEventHandler(OnPublicNotice); EventKick += new IrcEventHandler(OnKick); EventChannelMode += new IrcEventHandler(OnChannelMode); AddNumericHandler(IrcNumerics.Welcome, new IrcNumericHandler(OnWelcome)); AddNumericHandler(IrcNumerics.Topic, new IrcNumericHandler(OnTopic)); AddNumericHandler(IrcNumerics.NamesReply, new IrcNumericHandler(OnNamesReply)); AddNumericHandler(IrcNumerics.NamesEnd, new IrcNumericHandler(OnNamesEnd)); Run(); }
/// <summary> /// Initializes the <c>IrcEventHandler</c> providing <see cref="BuildHandler"/> method as callback /// </summary> public AbstractMessageHandler() { this._eventHandler = new IrcEventHandler(BuildHandler); }