]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
Flesh this out some more
[user/henk/code/inspircd.git] / src / channels.cpp
index 5f0f545aec3da1f8923a0337e674207666191891..b0de06267ed7c1e81fbdbc5a1b5c16012acfeb04 100644 (file)
@@ -278,7 +278,7 @@ Channel* Channel::JoinUser(InspIRCd* Instance, User *user, const char* cn, bool
                if (IS_LOCAL(user) && override == false)
                {
                        MOD_RESULT = 0;
-                       FOREACH_RESULT_I(Instance,I_OnUserPreJoin,OnUserPreJoin(user,NULL,cname,privs));
+                       FOREACH_RESULT_I(Instance,I_OnUserPreJoin, OnUserPreJoin(user, NULL, cname, privs, key ? key : ""));
                        if (MOD_RESULT == 1)
                                return NULL;
                }
@@ -298,7 +298,7 @@ Channel* Channel::JoinUser(InspIRCd* Instance, User *user, const char* cn, bool
                if (IS_LOCAL(user) && override == false)
                {
                        MOD_RESULT = 0;
-                       FOREACH_RESULT_I(Instance,I_OnUserPreJoin,OnUserPreJoin(user,Ptr,cname,privs));
+                       FOREACH_RESULT_I(Instance,I_OnUserPreJoin, OnUserPreJoin(user, Ptr, cname, privs, key ? key : ""));
                        if (MOD_RESULT == 1)
                        {
                                return NULL;
@@ -433,7 +433,10 @@ bool Channel::IsBanned(User* user)
        char mask[MAXBUF];
        int MOD_RESULT = 0;
        FOREACH_RESULT(I_OnCheckBan,OnCheckBan(user, this));
-       if (!MOD_RESULT)
+
+       if (MOD_RESULT == -1)
+               return true;
+       else if (MOD_RESULT == 0)
        {
                snprintf(mask, MAXBUF, "%s!%s@%s", user->nick, user->ident, user->GetIPString());
                for (BanList::iterator i = this->bans.begin(); i != this->bans.end(); i++)