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(); } } }
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"))); } } }
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(); } } } }
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); }
private void LogCTCPMessage(object sender, CTCPMessage message) { LogToFile(SERVERLOGNAME, message.TimeStamp, string.Format("<{0}> CTCP {1} {2}", message.Sender.Nickname, message.Command, message.Arguments)); }
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)); }
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); }