public void UrlHandler(IIrcMsg e) { // Only process messages that aren't a trigger call or a query message. if (e.Trigger == null && e.Channel != null) { manager.EnqueueMessage(e.Channel, e.Nick, e.Message); } }
public static string[] GetArgs(this IIrcMsg msg, int count, out List <string> rest) { if (msg == null) { throw new ArgumentNullException(nameof(msg)); } return(GetArgs(SkipTrigger(msg), count, out rest)); }
public static bool StartsWithTriggerPrefix(this IIrcMsg msg) { if (msg == null) { throw new ArgumentNullException(nameof(msg)); } return(StartsWithTriggerPrefix(msg.Message)); }
public static IEnumerable <string> GetArg(this IIrcMsg msg, out string argument, bool toLower = false) { if (msg == null) { throw new ArgumentNullException(nameof(msg)); } return(GetArg(SkipTrigger(msg), out argument, toLower)); }
internal static IEnumerable <string> SkipTrigger(IIrcMsg msg) { if (string.IsNullOrEmpty(msg.Trigger)) { return(msg.MessageParts); } else { return(msg.MessageParts.Skip(1)); } }
public ArgEnumerator(IIrcMsg msg) { if (msg == null) { throw new ArgumentNullException(nameof(msg)); } argNumerator = ParseArgs.SkipTrigger(msg) .GetEnumerator(); }
// --- LINQy extension methods for getting arguments --- // Well, these two are not very LINQy, but sometimes you only care about the arg. public static string GetArg(this IIrcMsg msg) { GetArg(msg, out string arg); return(arg); }
// --- Conventional (not LINQ) extensions methods for getting arguments --- // These use ArgEnumerator as backend. public static string GetArg(this IIrcMsg msg, out List <string> rest) { var tmp = GetArgs(msg, 1, out rest); return(tmp[0]); }