From: danieldg Date: Tue, 9 Feb 2010 02:22:44 +0000 (+0000) Subject: half-voice is a better name than status prefix X-Git-Tag: v2.0.23~1100 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=c4705deb9fb737708dc26e86508aa49255cf6b82;p=user%2Fhenk%2Fcode%2Finspircd.git half-voice is a better name than status prefix git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12406 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/docs/modules.conf.example b/docs/modules.conf.example index 4db33190d..7de56622d 100644 --- a/docs/modules.conf.example +++ b/docs/modules.conf.example @@ -821,6 +821,10 @@ # Halfop module: Provides the +h (halfops) channel status mode. # +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Status prefix: Adds the channel status mode +V +# + #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # HELPOP module: Provides the /HELPOP command # @@ -1642,10 +1646,6 @@ # server to server traffic, you MUST load it before m_spanningtree in # # your configuration file! # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Status prefix: Adds the channel mode +V -# - #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Strip colour module: Adds the channel mode +S # diff --git a/src/modules/m_halfvoice.cpp b/src/modules/m_halfvoice.cpp new file mode 100644 index 000000000..93aa3c182 --- /dev/null +++ b/src/modules/m_halfvoice.cpp @@ -0,0 +1,102 @@ +/* +------------------------------------+ + * | 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" + +/* $ModDesc: Provides channel mode +V, adding the - prefix + * which does nothing but serves as a status symbol. */ + +#define HALFVOICE_VALUE 1 + +class HalfVoiceMode : public ModeHandler +{ + public: + HalfVoiceMode(Module* parent) : ModeHandler(parent, "halfvoice", 'V', PARAM_ALWAYS, MODETYPE_CHANNEL) + { + list = true; + prefix = 0; + levelrequired = HALFOP_VALUE; + m_paramtype = TR_NICK; + } + + void SetPrefix(char pfx) { prefix = pfx; } + + unsigned int GetPrefixRank() + { + return STATUS_VALUE; + } + + void RemoveMode(Channel* channel, irc::modestacker* stack) + { + const UserMembList* cl = channel->GetUsers(); + std::vector mode_junk; + mode_junk.push_back(channel->name); + irc::modestacker modestack(false); + std::deque stackresult; + + for (UserMembCIter i = cl->begin(); i != cl->end(); i++) + { + if (i->second->hasMode('V')) + { + if (stack) + stack->Push(this->GetModeChar(), i->first->nick); + else + modestack.Push(this->GetModeChar(), i->first->nick); + } + } + + if (stack) + return; + + while (modestack.GetStackedLine(stackresult)) + { + mode_junk.insert(mode_junk.end(), stackresult.begin(), stackresult.end()); + ServerInstance->SendMode(mode_junk, ServerInstance->FakeClient); + mode_junk.erase(mode_junk.begin() + 1, mode_junk.end()); + } + } + + void RemoveMode(User* user, irc::modestacker* stack) + { + } + + ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) + { + return MODEACTION_ALLOW; + } +}; + +class ModuleHalfVoice : public Module +{ + HalfVoiceMode mh; + + public: + ModuleHalfVoice() : mh(this) + { + } + + void init() + { + ConfigTag* tag = ServerInstance->Config->ConfValue("halfvoice"); + std::string pfxchar = tag->getString("prefix", "-"); + mh.SetPrefix(pfxchar[0]); + ServerInstance->Modules->AddService(mh); + } + + Version GetVersion() + { + return Version("Provides a channel mode that does nothing but serve as a status symbol", VF_VENDOR); + } +}; + +MODULE_INIT(ModuleHalfVoice) diff --git a/src/modules/m_statusprefix.cpp b/src/modules/m_statusprefix.cpp deleted file mode 100644 index 5f0587ee0..000000000 --- a/src/modules/m_statusprefix.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* +------------------------------------+ - * | 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" - -/* $ModDesc: Provides channel mode +V, adding the - prefix - * which does nothing but serves as a status symbol. */ - -#define STATUS_VALUE 1 - -/** Abstraction of StatusPrefixBase for channel mode +a - */ -class StatusPrefix : public ModeHandler -{ - public: - StatusPrefix(Module* parent) : ModeHandler(parent, "status", 'V', PARAM_ALWAYS, MODETYPE_CHANNEL) - { - list = true; - prefix = 0; - levelrequired = HALFOP_VALUE; - m_paramtype = TR_NICK; - } - - void SetPrefix(char pfx) { prefix = pfx; } - - unsigned int GetPrefixRank() - { - return STATUS_VALUE; - } - - void RemoveMode(Channel* channel, irc::modestacker* stack) - { - const UserMembList* cl = channel->GetUsers(); - std::vector mode_junk; - mode_junk.push_back(channel->name); - irc::modestacker modestack(false); - std::deque stackresult; - - for (UserMembCIter i = cl->begin(); i != cl->end(); i++) - { - if (i->second->hasMode('V')) - { - if (stack) - stack->Push(this->GetModeChar(), i->first->nick); - else - modestack.Push(this->GetModeChar(), i->first->nick); - } - } - - if (stack) - return; - - while (modestack.GetStackedLine(stackresult)) - { - mode_junk.insert(mode_junk.end(), stackresult.begin(), stackresult.end()); - ServerInstance->SendMode(mode_junk, ServerInstance->FakeClient); - mode_junk.erase(mode_junk.begin() + 1, mode_junk.end()); - } - } - - void RemoveMode(User* user, irc::modestacker* stack) - { - } - - ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) - { - return MODEACTION_ALLOW; - } -}; - -class ModuleStatusPrefix : public Module -{ - StatusPrefix mh; - - public: - ModuleStatusPrefix() : mh(this) - { - } - - void init() - { - ConfigTag* tag = ServerInstance->Config->ConfValue("statusprefix"); - std::string pfxchar = tag->getString("prefix", "-"); - mh.SetPrefix(pfxchar[0]); - ServerInstance->Modules->AddService(mh); - } - - ~ModuleStatusPrefix() - { - } - - Version GetVersion() - { - return Version("Provides a channel mode that does nothing but serve as a status symbol", VF_VENDOR); - } -}; - -MODULE_INIT(ModuleStatusPrefix)