From f2cdf27dd9c45f91f4184b81ea3b9be7c5d88173 Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Thu, 11 Apr 2013 23:47:45 +0200 Subject: Replace hardcoded mode letters passed to IsModeSet() and GetModeParameter() with ModeHandlers, part 1 --- include/channels.h | 3 +-- include/users.h | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/channels.h b/include/channels.h index b4977eef1..4fb3e48dc 100644 --- a/include/channels.h +++ b/include/channels.h @@ -110,7 +110,6 @@ class CoreExport Channel : public Extensible, public InviteBase * @param value True if you want to set the mode or false if you want to remove it */ void SetMode(ModeHandler* mode, bool value); - void SetMode(char mode,bool mode_on); /** Sets or unsets a custom mode in the channels info * @param mode The mode character to set or unset @@ -126,7 +125,7 @@ class CoreExport Channel : public Extensible, public InviteBase */ inline bool IsModeSet(char mode) { return modes[mode-'A']; } inline bool IsModeSet(ModeHandler* mode) { return modes[mode->GetModeChar()-'A']; } - + bool IsModeSet(ModeHandler& mode) { return IsModeSet(&mode); } /** Returns the parameter for a custom mode on a channel. * @param mode The mode character you wish to query diff --git a/include/users.h b/include/users.h index 218ec4ae0..73ecba0ab 100644 --- a/include/users.h +++ b/include/users.h @@ -447,12 +447,16 @@ class CoreExport User : public Extensible * @return True if the mode is set */ bool IsModeSet(unsigned char m); + bool IsModeSet(ModeHandler* mh); + bool IsModeSet(ModeHandler& mh) { return IsModeSet(&mh); } /** Set a specific usermode to on or off * @param m The user mode * @param value On or off setting of the mode */ void SetMode(unsigned char m, bool value); + void SetMode(ModeHandler* mh, bool value); + void SetMode(ModeHandler& mh, bool value) { SetMode(&mh, value); } /** Returns true or false for if a user can execute a privilaged oper command. * This is done by looking up their oper type from User::oper, then referencing @@ -901,3 +905,14 @@ inline FakeUser* IS_SERVER(User* u) return u->usertype == USERTYPE_SERVER ? static_cast(u) : NULL; } +inline bool User::IsModeSet(ModeHandler* mh) +{ + char m = mh->GetModeChar(); + return (modes[m-65]); +} + +inline void User::SetMode(ModeHandler* mh, bool value) +{ + char m = mh->GetModeChar(); + modes[m-65] = value; +} -- cgit v1.2.3