virtual void OnModCommand(const CString& sLine) { CString sCommand = sLine.Token(0); if (sCommand.Equals("help")) { CTable Table; Table.AddColumn("Command"); Table.AddColumn("Description"); Table.AddRow(); Table.SetCell("Command", "Reason [<text>]"); Table.SetCell("Description", "Prints and optionally sets the away reason."); Table.AddRow(); Table.SetCell("Command", "Timer"); Table.SetCell("Description", "Prints the current time to wait before setting you away."); Table.AddRow(); Table.SetCell("Command", "SetTimer <time>"); Table.SetCell("Description", "Sets the time to wait before setting you away (in seconds)."); Table.AddRow(); Table.SetCell("Command", "DisableTimer"); Table.SetCell("Description", "Disables the wait time before setting you away."); PutModule(Table); PutModule("In the away reason, %s will be replaced with the time you were set away."); } else if (sCommand.Equals("reason")) { CString sReason = sLine.Token(1, true); if (!sReason.empty()) { SetReason(sReason); PutModule("Away reason set"); } else { PutModule("Away reason: " + m_sReason); PutModule("Current away reason would be: " + ExpandReason()); } } else if (sCommand.Equals("timer")) { PutModule("Current timer setting: " + CString(m_iAwayWait) + " seconds"); } else if (sCommand.Equals("settimer")) { SetAwayWait(sLine.Token(1).ToUInt()); if (m_iAwayWait == 0) PutModule("Timer disabled"); else PutModule("Timer set to " + CString(m_iAwayWait) + " seconds"); } else if (sCommand.Equals("disabletimer")) { SetAwayWait(0); PutModule("Timer disabled"); } else { PutModule("Unknown command. Try 'help'."); } }
void OnReasonCommand(const CString& sLine) { CString sReason = sLine.Token(1, true); if (!sReason.empty()) { SetReason(sReason); PutModule("Away reason set"); } else { PutModule("Away reason: " + m_sReason); PutModule("Current away reason would be: " + ExpandReason()); } }
void SetAway(bool bTimer = true) { if (bTimer) { RemTimer("simple_away"); AddTimer(new CSimpleAwayJob(this, m_iAwayWait, 1, "simple_away", "Sets you away after detach")); } else { if (!m_bClientSetAway) { PutIRC("AWAY :" + ExpandReason()); m_bWeSetAway = true; } } }