summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-13 20:31:45 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-09-13 20:31:45 +0000
commit8f9dafbfa3b62b1c88a8b1ad7988d5786f914528 (patch)
tree49d0d3f6c2e754de71b4acc91ad30b607266aa29
parent1524caf2f799cff54c2de330c9670a0b761ba3d8 (diff)
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
-rw-r--r--include/modules.h2
-rw-r--r--src/channels.cpp4
-rw-r--r--src/modules/m_chanprotect.cpp2
-rw-r--r--src/modules/m_ojoin.cpp10
4 files changed, 4 insertions, 14 deletions
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<std::string> 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]);