private void ClientIsOnReply(object sender, IrcMessageEventArgs<IsOnReplyMessage> e) { foreach (string onlineNick in e.Message.Nicks) { if (this._waitingOnNicks.Contains(onlineNick)) { this._waitingOnNicks.Remove(onlineNick); } User knownUser; if (this.Contacts.Users.TryGetValue(onlineNick, out knownUser)) { knownUser.Online = true; } else if (this._trackedNicks.Contains(onlineNick)) { this._trackedNicks.Remove(onlineNick); } } foreach (var offlineUser in this._waitingOnNicks.Select(nick => this.Contacts.Users[nick])) { offlineUser.Online = false; } this._waitingOnNicks.Clear(); }
/// <summary> /// Raises the NickCollision event. /// </summary> protected internal void OnNickCollision(IrcMessageEventArgs<NickCollisionMessage> e) { if (this.NickCollision != null) { this.NickCollision(this, e); } }
void client_IsOnReply( object sender, IrcMessageEventArgs<IsOnReplyMessage> e ) { foreach ( String onlineNick in e.Message.Nicks ) { if ( waitingOnNicks.Contains( onlineNick ) ) { waitingOnNicks.Remove( onlineNick ); } User knownUser = Contacts.Users.Find( onlineNick ); if ( knownUser != null && knownUser.OnlineStatus == UserOnlineStatus.Offline ) { knownUser.OnlineStatus = UserOnlineStatus.Online; } if ( knownUser == null && trackedNicks.Contains( onlineNick ) ) { trackedNicks.Remove( onlineNick ); } } foreach ( String nick in waitingOnNicks ) { User offlineUser = Contacts.Users.Find( nick ); offlineUser.OnlineStatus = UserOnlineStatus.Offline; waitingOnNicks.Remove( nick ); } }
/// <summary> /// Raises the NickCollision event. /// </summary> protected internal void OnNickInUse(IrcMessageEventArgs<NickInUseMessage> e) { if (this.NickInUse != null) { this.NickInUse(this, e); } }
/// <summary> /// Raises the ErroneusNick event. /// </summary> protected internal void OnErroneusNick(IrcMessageEventArgs<ErroneusNickMessage> e) { if (this.ErroneusNick != null) { this.ErroneusNick(this, e); } }
/// <summary> /// Raises the GenericErrorMessage event. /// </summary> protected internal void OnGenericErrorMessage(IrcMessageEventArgs<GenericErrorMessage> e) { if (this.GenericErrorMessage != null) { this.GenericErrorMessage(this, e); } }
void client_WatchedUserOnline( object sender, IrcMessageEventArgs<WatchedUserOnlineMessage> e ) { User knownUser = Contacts.Users.Find( e.Message.WatchedUser.Nick ); if ( knownUser != null && knownUser.OnlineStatus == UserOnlineStatus.Offline ) { knownUser.OnlineStatus = UserOnlineStatus.Online; } }
private void ClientMonitoredUserOffline(object sender, IrcMessageEventArgs<MonitoredUserOfflineMessage> e) { foreach (var offlineNick in e.Message.Nicks) { User knownUser; if (this.Contacts.Users.TryGetValue(offlineNick, out knownUser)) { knownUser.Online = false; } } }
void client_MonitoredUserOffline( object sender, IrcMessageEventArgs<MonitoredUserOfflineMessage> e ) { foreach ( String offlineNick in e.Message.Nicks ) { User knownUser = this.Contacts.Users.Find( offlineNick ); if ( knownUser != null ) { knownUser.OnlineStatus = UserOnlineStatus.Offline; } } }
private void ClientMonitoredUserOnline(object sender, IrcMessageEventArgs<MonitoredUserOnlineMessage> e) { foreach (var onlineUser in e.Message.Users.Values) { User knownUser; if (this.Contacts.Users.TryGetValue(onlineUser.Nickname, out knownUser)) { knownUser.CopyFrom(onlineUser); knownUser.Online = true; } } }
void client_MonitoredUserOnline( object sender, IrcMessageEventArgs<MonitoredUserOnlineMessage> e ) { foreach ( User onlineUser in e.Message.Users ) { User knownUser = this.Contacts.Users.Find( onlineUser.Nick ); if ( knownUser != null ) { knownUser.MergeWith( onlineUser ); if ( knownUser.OnlineStatus == UserOnlineStatus.Offline ) { knownUser.OnlineStatus = UserOnlineStatus.Online; } } } }
public void ProcessMessage(IrcMessageEventArgs args, string @from, string message) { if (!File.Exists("todo.txt")) { Channel.Message("Nothing to do.", true); return; } var lines = File.ReadAllLines("todo.txt"); if (lines.Length == 0) { Channel.Message("Nothing to do.", true); return; } Channel.Message("==============TODO==============", true); var i = 0; foreach (var l in lines) { Channel.Message("[" + i + "] " + l, true); i++; } }
public override void Handle(MessageType type, IrcMessageEventArgs args, Action <bool> callback) { if (Property.PropertyType == typeof(string)) { string val = Property.GetValue(Plugin, null) as string; var b = GetBool(val); if (b.HasValue) { callback(b.Value); } else { throw new Exception(string.Format("string property value not supported: {0}", val)); } } else if (Property.PropertyType == typeof(bool)) { callback((bool)Property.GetValue(Plugin, null)); } else { throw new Exception("Property type not supported"); } }
private void IrcClient_LocalUser_NoticeReceived(object sender, IrcMessageEventArgs e) { var localUser = (IrcLocalUser)sender; OnLocalUserNoticeReceived(localUser, e); }
public static IrcMessageEventArgs CreateReply(this IrcMessageEventArgs message, string text) { return(new IrcMessageEventArgs(message.Source, message.Targets, text, message.Encoding)); }
private static void IrcClient_Channel_NoticeReceived(object sender, IrcMessageEventArgs e) { var channel = (IrcChannel)sender; Console.WriteLine("[{0}] Notice: {1}.", channel.Name, e.Text); }
protected abstract void OnLocalUserMessageReceived(IrcLocalUser localUser, IrcMessageEventArgs e);
private void IrcClient_LocalUser_MessageReceived(object sender, IrcMessageEventArgs e) { var localUser = (IrcLocalUser)sender; if (e.Source is IrcUser) { // Read message and process if it is chat command. if (ReadChatCommand(localUser.Client, e)) return; } OnLocalUserMessageReceived(localUser, e); }
private bool ReadChatCommand(IrcClient client, IrcMessageEventArgs eventArgs) { // Check if given message represents chat command. var line = eventArgs.Text; if (line.Length > 1 && line.StartsWith(".")) { // Process command. var parts = commandPartsSplitRegex.Split(line.Substring(1)).Select(p => p.TrimStart('/')).ToArray(); var command = parts.First(); var parameters = parts.Skip(1).ToArray(); ReadChatCommand(client, eventArgs.Source, eventArgs.Targets, command, parameters); return true; } return false; }
protected abstract void OnChannelNoticeReceived(IrcChannel channel, IrcMessageEventArgs e);
private void ircClientLocalUser_MessageSent(object sender, IrcMessageEventArgs e) { Console.WriteLine("local user message sent" + e.Text); }
/// <summary> /// Called when a channel-wide notice is received. /// </summary> /// <param name="channel">The channel.</param> /// <param name="e"> /// The <see cref="IrcMessageEventArgs"/> instance containing the event data. /// </param> protected override void OnChannelNoticeReceived(IrcChannel channel, IrcMessageEventArgs e) { Log.Write(string.Format("[{0}] Notice: {1}", channel.Name, e.Text), _logClassType, _logPrefix); }
private static void ircClient2_LocalUser_NoticeReceived(object sender, IrcMessageEventArgs e) { if (client2LocalUserNoticeReceivedEvent != null) client2LocalUserNoticeReceivedEvent.Set(); }
protected virtual void OnChannelMessageReceived(IrcChannel channel, IrcMessageEventArgs e) { }
private void welcomed(Object sender, IrcMessageEventArgs <WelcomeMessage> e, Client client) { client.SendJoin(m_channel); }
private void Session_PrivateMessaged(object sender, IrcMessageEventArgs e) { if (App.IsIgnoreMatch(e.From, e.To.IsChannel ? IgnoreActions.Channel : IgnoreActions.Private)) { return; } if (!this.IsServer) { if ((this.Target.IsChannel && this.Target.Equals(e.To)) || (!this.Target.IsChannel && this.Target.Equals(new IrcTarget(e.From)) && !e.To.IsChannel)) { bool attn = false; if (App.IsAttentionMatch(this.Session.Nickname, e.Text)) { attn = true; if (_window != null) { App.Alert(_window, string.Format("You received an alert from {0}", this.Target.Name)); } if (this.VisualParent == null) { this.NotifyState = NotifyState.Alert; App.DoEvent("inactiveAlert"); } else if (_window != null && !_window.IsActive) { App.DoEvent("inactiveAlert"); } else { App.DoEvent("activeAlert"); } } if (e.From.Prefix.Equals("*[email protected]")) { int space = e.Text.IndexOf(' '); String subject = e.Text.Substring(0, space); String text = e.Text.Substring(space + 1); IrcPeer peer = new IrcPeer(subject); String styleKey = "Default"; // TODO: Rewrite text if it doesn't match how Floe writes it. if (text.StartsWith("set mode")) // sNickMask + " set mode: " + sModes + " " + sArgs { styleKey = "Mode"; } else if (text.StartsWith("kicked")) // OpNick.GetNickMask() + " kicked " + sKickedNick + " Reason: [" + sMessage + "]" { styleKey = "Kick"; } else if (text.StartsWith("quit")) // Nick.GetNickMask() + " quit with message: [" + sMessage + "]" { styleKey = "Quit"; } else if (text.StartsWith("joined")) // Nick.GetNickMask() + " joined" { styleKey = "Join"; } else if (text.StartsWith("parted")) // Nick.GetNickMask() + " parted with message: [" + sMessage + "]" { styleKey = "Part"; } else if (text.StartsWith("is now known as")) // OldNick.GetNickMask() + " is now known as " + sNewNick { styleKey = "Nick"; } else if (text.StartsWith("changed the topic")) // Nick.GetNickMask() + " changed the topic to: " + sTopic { styleKey = "Topic"; } this.Write(styleKey, e.Message.Time, string.Format("{0} {1}", peer.Nickname, text)); } else { this.Write("Default", e.Message.Time, e.From, e.Text, attn); if (!this.Target.IsChannel) { if (e.From.Prefix != _prefix) { _prefix = e.From.Prefix; this.SetTitle(); } Interop.WindowHelper.FlashWindow(_window); if (this.VisualParent == null) { App.DoEvent("privateMessage"); } } } } } }
/// <summary> /// Invoked when a private message was received. /// Private messages = admin console /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void OnLocalUserMessageReceived(object sender, IrcMessageEventArgs e) { // try get channeluser by name IrcChannelUser usr = GetChannelUser(e.Source.Name); if (usr == null) { return; } // only allow ADMINS from config if (!Config.Admins.Contains(e.Source.Name)) { // respond user he can't use this feature IrcClient.LocalUser.SendMessage( e.Source.Name, e.Source.Name + " you can't use the admin console - Only admins allowed."); return; } // Must be registered. if (!IsUserRegistered(e.Source.Name)) { // respond user he can't use this feature IrcClient.LocalUser.SendMessage( e.Source.Name, e.Source.Name + " you can't use the admin console - nickname must be registered."); return; } // invalid if (e.Text == null || e.Text == String.Empty) { return; } Log("ADM", e.Source.Name + " used the command " + e.Text); // Bot admin command? if (e.Text.StartsWith("@")) { // Returns false if nothing handled the admin command. if (!IRCAdminBotCommand.ParseAdminCommand(e.Source.Name, e.Text, this)) { IrcClient.LocalUser.SendMessage(e.Source.Name, "Couldn't find a handler for admin command " + e.Text); } return; } // get first space in text int firstspace = e.Text.IndexOf(' '); // either use first part up to first space or full text if no space string comtype = (firstspace > 0) ? e.Text.Substring(0, firstspace) : comtype = e.Text; // check if commandtype is allowed if (Config.AdminCommands.Contains(comtype)) { // Record this admin as recent. if (!RecentAdmins.Contains(e.Source.Name)) { RecentAdmins.Add(e.Source.Name); } // enqueue it for execution AdminCommandQueue.Enqueue(e.Text); } else { // respond admin he can't use this admincommand IrcClient.LocalUser.SendMessage( e.Source.Name, e.Source.Name + " you can't use the admin command '" + comtype + "'"); } }
private void IrcClient_Channel_MessageReceived(object sender, IrcMessageEventArgs e) { var channel = (IrcChannel)sender; if (e.Source is IrcUser) { // Read message and process if it is chat command. if (ReadChatCommand(channel.Client, e)) return; } OnChannelMessageReceived(channel, e); }
protected abstract void OnMatch(IrcMessageEventArgs ircMessage, string sender, string nick, string host, string filter, string message, string target);
private void channelNoticeReceived(object sender, IrcMessageEventArgs e) { this.Messages.Add(new Message(e.Text, DateTime.Now.ToString(this.Settings.TimestampFormat), "=!=", MessageLevels.Notice)); }
private void welcomed( Object sender, IrcMessageEventArgs<WelcomeMessage> e ) { General.client.SendJoin("#devatan"); textBox1.Text += "Connecting to channel..." + Environment.NewLine; General.client.DefaultQuitMessage = "DevAtan IRC - DevAtan Official Chat Application"; }
public abstract bool Handle(MessageType type, IrcMessageEventArgs args);
protected virtual void OnLocalUserMessageReceived(IrcLocalUser localUser, IrcMessageEventArgs e) { }
public abstract void Handle(MessageType type, IrcMessageEventArgs args, Action <bool> callback);
/// <summary> /// Called when our irc client receives a message. /// </summary> /// <param name="localUser">The local user.</param> /// <param name="e"> /// The <see cref="IrcMessageEventArgs"/> instance containing the event data. /// </param> protected override void OnLocalUserMessageReceived(IrcLocalUser localUser, IrcMessageEventArgs e) { Log.Write(string.Format("We received message from {0}: {1}", e.Source.Name, e.Text), _logClassType, _logPrefix); }
private void routeQuits( Object sender, IrcMessageEventArgs<QuitMessage> e ) { Client source = sender as Client; if ( source == null ) { return; } String nick = e.Message.Sender.Nick; if ( IsMe( nick, source ) ) { foreach ( Channel c in this.Channels[source] ) { c.Open = false; } } else { foreach ( Channel channel in this.Channels[source] ) { channel.Users.RemoveFirst( nick ); } } }
private static void ircClient2_LocalUser_MessageSent(object sender, IrcMessageEventArgs e) { if (client2LocalUserMessageSentEvent != null) client2LocalUserMessageSentEvent.Set(); }
private void routeTopics( Object sender, IrcMessageEventArgs<TopicReplyMessage> e ) { Client source = sender as Client; if ( source == null ) { return; } Channel channel = this.Channels[source].FindChannel( e.Message.Channel ); if ( channel != null ) { channel.Topic = e.Message.Topic; } }
private static void ircClient2_Channel_NoticeReceived(object sender, IrcMessageEventArgs e) { if (client2ChannelNoticeReceivedEvent != null) client2ChannelNoticeReceivedEvent.Set(); }
private void routeTopicSets( Object sender, IrcMessageEventArgs<TopicSetReplyMessage> e ) { Client source = sender as Client; if ( source == null ) { return; } Channel channel = this.Channels[source].FindChannel( e.Message.Channel ); if ( channel != null ) { User topicSetter = this.Users[source].EnsureUser( e.Message.User ); channel.TopicSetter = topicSetter; channel.TopicSetTime = e.Message.TimeSet; } }
protected abstract void OnLocalUserNoticeReceived(IrcLocalUser localUser, IrcMessageEventArgs e);
private void routeWhoReplies( Object sender, IrcMessageEventArgs<WhoReplyMessage> e ) { Client source = sender as Client; if ( source == null ) { return; } User whoUser = this.Users[source].EnsureUser( e.Message.User ); String channelName = e.Message.Channel; Channel channel = this.Channels[source].FindChannel( channelName ); if ( channel != null ) { if ( !channel.Users.Contains( whoUser ) ) { channel.Users.Add( whoUser ); } channel.SetStatusForUser( whoUser, e.Message.Status ); } }
private void IrcClient_Channel_NoticeReceived(object sender, IrcMessageEventArgs e) { var channel = (IrcChannel)sender; OnChannelNoticeReceived(channel, e); }
private void Irc_ChannelMessageReceived(object sender, IrcMessageEventArgs e) { MessageReceived?.Invoke(sender, e); }
/// <summary> /// Invoked when a channel message was received /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void OnMessageReceived(object sender, IrcMessageEventArgs e) { // ignore messages without @prefix start or which are only @prefix + @ + space length if (e.Text == null || e.Text.IndexOf("@" + Config.ChatPrefix) != 0 || e.Text.Length <= Config.ChatPrefix.Length + 1 + 1) { return; } // try get channeluser by name IrcChannelUser usr = GetChannelUser(e.Source.Name); if (usr == null) { return; } // only allow operators if (!usr.Modes.Contains('o')) { // respond user he can't use this feature IrcClient.LocalUser.SendMessage( IrcChannel, e.Source.Name + " you can't use this feature. Only operators allowed."); return; } // now remove the @103 start string s = e.Text.Substring(Config.ChatPrefix.Length + 1 + 1); // used delimiter const char delimiter = ' '; // split up into words string[] words = s.Split(delimiter); if (words.Length > 0) { switch (words[0]) { case ChatCommandBroadcast.KEY1: case ChatCommandBroadcast.KEY2: // keep first word s = String.Join(delimiter.ToString(), words, 0, 1); // insert banner + name s += delimiter + Config.Banner; s += e.Source.Name + ": ~n"; // add rest s += String.Join(delimiter.ToString(), words, 1, words.Length - 1); break; case ChatCommandTell.KEY1: case ChatCommandTell.KEY2: // keep first two word s = String.Join(delimiter.ToString(), words, 0, 2); // insert banner + name s += delimiter + Config.Banner; s += e.Source.Name + ": ~n"; // add rest s += String.Join(delimiter.ToString(), words, 2, words.Length - 2); break; } } // enqueue it for execution ChatCommandQueue.Enqueue(s); }
private static void IrcClient_LocalUser_NoticeReceived(object sender, IrcMessageEventArgs e) { var localUser = (IrcLocalUser)sender; Console.WriteLine("Notice: {0}.", e.Text); }
/// <summary> /// </summary> /// <param name="channel"> /// </param> /// <param name="e"> /// </param> protected override void OnChannelMessageReceived(IrcChannel channel, IrcMessageEventArgs e) { this.RelayedChannel.ChannelMessage(this.nickname + "-" + e.Source.Name, e.Text); }
protected abstract bool OnExecute(IrcMessageEventArgs ircMessage);
/// <summary> /// </summary> /// <param name="channel"> /// </param> /// <param name="e"> /// </param> protected override void OnChannelNoticeReceived(IrcChannel channel, IrcMessageEventArgs e) { }
protected abstract void OnChannelMessageReceived(IrcChannel channel, IrcMessageEventArgs e);
/// <summary> /// </summary> /// <param name="localUser"> /// </param> /// <param name="e"> /// </param> protected override void OnLocalUserNoticeReceived(IrcLocalUser localUser, IrcMessageEventArgs e) { }
protected virtual void OnChannelNoticeReceived(IrcChannel channel, IrcMessageEventArgs e) { }
/// <summary> /// We receive messages asynchronously. Here, we process the message to see if we should grab it. /// If so, we add the message to the queue and process it during the dispatcher timer tick. /// </summary> void m_client_MessageReceived(TwitchClient sender, IrcMessageEventArgs msg) { // Check if the user is on the ignore list. string user = msg.Source.Name; foreach (string ignore in m_options.UserIgnoreList) { if (user.Equals(ignore, StringComparison.InvariantCultureIgnoreCase)) { return; } } // check if the text is on the ignore list var text = msg.Text; var lowerText = text.ToLower(); // check if the text contains a highlight word foreach (string highlight in m_options.HighlightList) { if (lowerText.Contains(highlight.ToLower())) { if (ShouldIgnore(lowerText)) { return; } if (m_messageMap != null && CheckDuplicate(user, lowerText)) { return; } ListItem item = ListItem.CreateFromHighlight(m_twitch.ChannelData, user, text); if (m_messageMap != null) { m_messageMap[lowerText] = item; } m_eventQueue.Enqueue(new NewListItemEvent(item)); return; } } // check if the text contains a grab word foreach (string grab in m_options.GrabList) { if (lowerText.Contains(grab.ToLower())) { if (ShouldIgnore(lowerText)) { return; } if (m_messageMap != null && CheckDuplicate(user, lowerText)) { return; } ListItem item = ListItem.CreateFromQuestion(m_twitch.ChannelData, user, text); if (m_messageMap != null) { m_messageMap[lowerText] = item; } m_eventQueue.Enqueue(new NewListItemEvent(item)); return; } } }
protected virtual void OnLocalUserNoticeReceived(IrcLocalUser localUser, IrcMessageEventArgs e) { }
private void Channel_MessageReceived(object sender, IrcMessageEventArgs e) { //TODO: Map this message for a format file RaiseMessageEvent(e.Source.Name, e.Text); }
private void chatting( Object sender, IrcMessageEventArgs<TextMessage> e ) { if (e.Message.Text.StartsWith(this.textBox2.Text + ":")) { Console.Beep(1000,500); } }
private void LocalUser_MessageReceived(object sender, IrcMessageEventArgs e) { //ChannelTabCtb.LogChatLine(e.Source + "> " + e.Text); }
private void timeRequested( Object sender, IrcMessageEventArgs<TimeRequestMessage> e ) { MetaBuilders.Irc.Messages.TimeReplyMessage reply = new MetaBuilders.Irc.Messages.TimeReplyMessage(); reply.CurrentTime = DateTime.Now.ToLongTimeString(); reply.Target = e.Message.Sender.Nick; General.client.Send( reply ); }