/** * hold.C: Controls noexpire options for nicknames. * * Copyright © 2007 Pippijn van Steenhoven / The Ermyth Team * Rights to this code are as documented in COPYING. * * * Portions of this file were derived from sources bearing the following license: * Copyright © 2005 Atheme Development Group * Rights to this code are as documented in doc/pod/license.pod. * * $Id: hold.C,v 1.8 2007/09/22 14:27:27 pippijn Exp $ */ #include "atheme.h" #include #include static char const rcsid[] = "$Id: hold.C,v 1.8 2007/09/22 14:27:27 pippijn Exp $"; REGISTER_MODULE ("nickserv/hold", false, "The Ermyth Team "); static void ns_cmd_hold (sourceinfo_t *si, int parc, char *parv[]); command_t const ns_hold = { "HOLD", N_("Prevents an account from expiring."), PRIV_HOLD, 2, ns_cmd_hold }; E cmdvec ns_cmdtree; E helpvec ns_helptree; bool _modinit (module *m) { ns_cmdtree << ns_hold; help_addentry (ns_helptree, "HOLD", "help/nickserv/hold", NULL); return true; } void _moddeinit () { ns_cmdtree >> ns_hold; help_delentry (ns_helptree, "HOLD"); } static void ns_cmd_hold (sourceinfo_t *si, int parc, char *parv[]) { char *target = parv[0]; char *action = parv[1]; myuser_t *mu; if (!target || !action) { command_fail (si, fault::needmoreparams, STR_INSUFFICIENT_PARAMS, "HOLD"); command_fail (si, fault::needmoreparams, _("Usage: HOLD ")); return; } if (!(mu = myuser_t::find_ext (target))) { command_fail (si, fault::nosuch_target, _("\2%s\2 is not registered."), target); return; } if (!strcasecmp (action, "ON")) { if (mu->flags & MU_HOLD) { command_fail (si, fault::badparams, _("\2%s\2 is already held."), mu->name); return; } mu->flags |= MU_HOLD; wallops ("%s set the HOLD option for the account \2%s\2.", get_oper_name (si), mu->name); logcommand (si, CMDLOG_ADMIN, "HOLD %s ON", mu->name); command_success_nodata (si, _("\2%s\2 is now held."), mu->name); } else if (!strcasecmp (action, "OFF")) { if (!(mu->flags & MU_HOLD)) { command_fail (si, fault::badparams, _("\2%s\2 is not held."), mu->name); return; } mu->flags &= ~MU_HOLD; wallops ("%s removed the HOLD option on the account \2%s\2.", get_oper_name (si), mu->name); logcommand (si, CMDLOG_ADMIN, "HOLD %s OFF", mu->name); command_success_nodata (si, _("\2%s\2 is no longer held."), mu->name); } else { command_fail (si, fault::needmoreparams, STR_INVALID_PARAMS, "HOLD"); command_fail (si, fault::needmoreparams, _("Usage: HOLD ")); } } /* vim:cinoptions=>s,e0,n0,f0,{0,}0,^0,=s,ps,t0,c3,+s,(2s,us,)20,*30,gs,hs * vim:ts=8 * vim:sw=8 * vim:noexpandtab */