+/* +------------------------------------+
+ * | Inspire Internet Relay Chat Daemon |
+ * +------------------------------------+
+ *
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
+ *
+ * This program is free but copyrighted software; see
+ * the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
#include "inspircd.h"
#include "mode.h"
#include "channels.h"
#include "users.h"
#include "modes/umode_i.h"
-ModeUserInvisible::ModeUserInvisible() : ModeHandler('i', 0, 0, false, MODETYPE_USER, false)
+ModeUserInvisible::ModeUserInvisible(InspIRCd* Instance) : SimpleUserModeHandler(Instance, NULL, 'i')
{
}
-ModeAction ModeUserInvisible::OnModeChange(userrec* source, userrec* dest, chanrec* channel, std::string ¶meter, bool adding)
+unsigned int ModeUserInvisible::GetCount()
{
- /* Only opers can change other users modes */
- if ((source != dest) && (!*source->oper))
- return MODEACTION_DENY;
-
- /* Set the bitfields */
- if (dest->modes[UM_INVISIBLE] != adding)
- {
- dest->modes[UM_INVISIBLE] = adding;
- return MODEACTION_ALLOW;
- }
-
- /* Allow the change */
- return MODEACTION_DENY;
+ return count;
}