From: danieldg Date: Sun, 13 Sep 2009 20:31:45 +0000 (+0000) Subject: Use FindMode instead of FindPrefix for OnUserPreJoin privs; makes it possible to... X-Git-Tag: v2.0.23~1547 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=8f9dafbfa3b62b1c88a8b1ad7988d5786f914528;p=user%2Fhenk%2Fcode%2Finspircd.git Use FindMode instead of FindPrefix for OnUserPreJoin privs; makes it possible to give +q or +Y on join even without prefix git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11702 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/include/modules.h b/include/modules.h index 9c8fa395a..81381ab8b 100644 --- a/include/modules.h +++ b/include/modules.h @@ -568,7 +568,7 @@ class CoreExport Module : public Extensible * @param user The user joining the channel * @param chan If the channel is a new channel, this will be NULL, otherwise it will be a pointer to the channel being joined * @param cname The channel name being joined. For new channels this is valid where chan is not. - * @param privs A string containing the users privilages when joining the channel. For new channels this will contain "@". + * @param privs A string containing the users privilages when joining the channel. For new channels this will contain "o". * You may alter this string to alter the user's modes on the channel. * @param keygiven The key given to join the channel, or an empty string if none was provided * @return 1 To prevent the join, 0 to allow it. diff --git a/src/channels.cpp b/src/channels.cpp index 9489e57ba..3685f6604 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -240,7 +240,7 @@ Channel* Channel::JoinUser(InspIRCd* Instance, User *user, const char* cn, bool } else { - privs = "@"; + privs = "o"; created_by_local = true; } @@ -347,7 +347,7 @@ Channel* Channel::ForceChan(InspIRCd* Instance, Channel* Ptr, User* user, const for (std::string::const_iterator x = privs.begin(); x != privs.end(); x++) { const char status = *x; - ModeHandler* mh = Instance->Modes->FindPrefix(status); + ModeHandler* mh = Instance->Modes->FindMode(status, MODETYPE_CHANNEL); if (mh) { /* Set, and make sure that the mode handler knows this mode was now set */ diff --git a/src/modules/m_chanprotect.cpp b/src/modules/m_chanprotect.cpp index fd121edcf..56d107c71 100644 --- a/src/modules/m_chanprotect.cpp +++ b/src/modules/m_chanprotect.cpp @@ -343,7 +343,7 @@ class ModuleChanProtect : public Module // the config option for it is set if (FirstInGetsFounder && !chan) - privs += std::string(1, QPrefix); + privs += 'q'; return MOD_RES_PASSTHRU; } diff --git a/src/modules/m_ojoin.cpp b/src/modules/m_ojoin.cpp index 63be08a0f..a5b4b6ffb 100644 --- a/src/modules/m_ojoin.cpp +++ b/src/modules/m_ojoin.cpp @@ -67,16 +67,6 @@ class CommandOjoin : public Command { ServerInstance->SNO->WriteGlobalSno('a', std::string(user->nick)+" used OJOIN to join "+channel->name); - if (!NPrefix) - { - std::vector modes; - modes.push_back(parameters[0]); - modes.push_back("+Y"); - modes.push_back(user->nick); - ServerInstance->SendMode(modes, ServerInstance->FakeClient); - ServerInstance->PI->SendMode(channel->name, ServerInstance->Modes->GetLastParseParams(), ServerInstance->Modes->GetLastParseTranslate()); - } - if (notice) { channel = ServerInstance->FindChan(parameters[0]);