1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd: (C) 2002-2008 InspIRCd Development Team
6 * See: http://www.inspircd.org/wiki/index.php/Credits
8 * This program is free but copyrighted software; see
9 * the file COPYING for details.
11 * ---------------------------------------------------
15 #include "commands/cmd_away.h"
17 extern "C" DllExport Command* init_command(InspIRCd* Instance)
19 return new CommandAway(Instance);
24 CmdResult CommandAway::Handle (const std::vector<std::string>& parameters, User *user)
28 if ((parameters.size()) && (!parameters[0].empty()))
30 FOREACH_RESULT(I_OnSetAway, OnSetAway(user, parameters[0]));
32 if (MOD_RESULT != 0 && !IS_LOCAL(user))
35 user->awaytime = ServerInstance->Time();
36 user->awaymsg.assign(parameters[0], 0, ServerInstance->Config->Limits.MaxAway);
38 user->WriteNumeric(RPL_NOWAWAY, "%s :You have been marked as being away",user->nick.c_str());
42 FOREACH_RESULT(I_OnSetAway, OnSetAway(user, ""));
44 if (MOD_RESULT != 0 && !IS_LOCAL(user))
47 user->awaymsg.clear();
48 user->WriteNumeric(RPL_UNAWAY, "%s :You are no longer marked as being away",user->nick.c_str());