Exemplo n.º 1
0
        private void HandlePingResponse(object sender, CTCPMessage e)
        {
            if (e.Command == "PING")
            {
                listLock.EnterReadLock();
                PingItem pingItem = pingList.Find(item => item.Nick == e.Sender.Nickname);
                listLock.ExitReadLock();
                if (pingItem != null)
                {
                    DateTime curTime    = DateTime.Now;
                    DateTime prevTime   = pingItem.Timestamp;
                    TimeSpan difTime    = curTime.Subtract(prevTime);
                    string   timeString = string.Empty;
                    if (difTime.Days > 0)
                    {
                        timeString += difTime.Days.ToString();
                        timeString += (difTime.Days == 1) ? " Day, " : " Days, ";
                    }
                    if (difTime.Hours > 0)
                    {
                        timeString += difTime.Hours.ToString();
                        timeString += (difTime.Hours == 1) ? " Hour, " : " Hours, ";
                    }
                    if (difTime.Minutes > 0)
                    {
                        timeString += difTime.Minutes.ToString();
                        timeString += (difTime.Minutes == 1) ? " Minute, " : " Minutes, ";
                    }
                    if (difTime.Seconds > 0)
                    {
                        timeString += difTime.Seconds.ToString();
                        timeString += (difTime.Seconds == 1) ? " Second, " : " Seconds, ";
                    }
                    if (difTime.Milliseconds > 0)
                    {
                        timeString += difTime.Milliseconds.ToString();
                        timeString += (difTime.Milliseconds == 1) ? " Millisecond" : " Milliseconds";
                    }
                    switch (pingItem.MessageType)
                    {
                    case MessageType.Channel:
                        Bot.IRC.Command.SendPrivateMessage(pingItem.Location, string.Format("{0}, your ping is {1}", pingItem.Nick, timeString));
                        break;

                    case MessageType.Notice:
                        Bot.IRC.Command.SendNotice(pingItem.Nick, string.Format("Your ping is {0}", timeString));
                        break;

                    case MessageType.Query:
                        Bot.IRC.Command.SendPrivateMessage(pingItem.Nick, string.Format("Your ping is {0}", timeString));
                        break;
                    }
                    listLock.EnterWriteLock();
                    pingList.RemoveAll(item => item.Nick == pingItem.Nick);
                    listLock.ExitWriteLock();
                }
            }
        }
Exemplo n.º 2
0
 public void HandleVersionQuery(object sender, CTCPMessage message)
 {
     if (Enabled &&
         !Bot.ServerConfig.NickBlacklist.Contains(message.Sender.Nickname) &&
         !NickBlacklist.Contains(message.Sender.Nickname))
     {
         if (message.Command.ToLower() == "version")
         {
             Assembly        assembly        = Assembly.GetExecutingAssembly();
             FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
             string          version         = fileVersionInfo.ProductVersion;
             Bot.IRC.Command.SendCTCPNotice(message.Sender.Nickname, "VERSION", string.Format("Combot v{0} on {1}", version, GetOptionValue("Machine Reply")));
         }
     }
 }
Exemplo n.º 3
0
 public void HandleVersionResponse(object sender, CTCPMessage message)
 {
     if (Enabled &&
         !Bot.ServerConfig.NickBlacklist.Contains(message.Sender.Nickname) &&
         !NickBlacklist.Contains(message.Sender.Nickname))
     {
         if (message.Command == "VERSION")
         {
             listLock.EnterReadLock();
             VersionItem versionItem = versionList.Find(item => item.Nick.ToLower() == message.Sender.Nickname.ToLower());
             listLock.ExitReadLock();
             if (versionItem != null)
             {
                 string verResponse = string.Format("[{0}] Using version: {1}", versionItem.Nick, message.Arguments);
                 SendResponse(versionItem.MessageType, versionItem.Location, message.Sender.Nickname, verResponse);
                 listLock.EnterWriteLock();
                 versionList.RemoveAll(item => item.Nick == versionItem.Nick);
                 listLock.ExitWriteLock();
             }
         }
     }
 }
Exemplo n.º 4
0
        private void CTCPRelayHandlerHandler(object sender, CTCPMessage e)
        {
            string message = string.Format("saying the following CTCP command in \u0002{0}\u0002: [{1}] {2}", e.Location, e.Command, e.Arguments);

            UpdateSeen(e.Location, e.Sender, message, e.TimeStamp);
        }
Exemplo n.º 5
0
 private void LogCTCPMessage(object sender, CTCPMessage message)
 {
     LogToFile(SERVERLOGNAME, message.TimeStamp, string.Format("<{0}> CTCP {1} {2}", message.Sender.Nickname, message.Command, message.Arguments));
 }
Exemplo n.º 6
0
        private void CTCPReceivedHandler(object sender, CTCPMessage e, string name)
        {
            string msg = string.Format("[CTCP] [{0}] {1}: {2}", e.Command, e.Sender.Nickname, e.Arguments);

            AddToBuffer(name, e.Location, string.Format("[{0}] {1}", e.TimeStamp.ToString("HH:mm:ss"), msg));
        }
Exemplo n.º 7
0
        private void CTCPRelayHandler(object sender, CTCPMessage e)
        {
            string msg = string.Format("[{0}] [CTCP] <{1}> {2}", e.Sender.Nickname, e.Command, e.Arguments);

            ProcessRelay(e.Location, RelayType.CTCP, msg);
        }