]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/channels.cpp
Merge patch from dKingston for missing TOPIC numeric, also replace the literal 331...
[user/henk/code/inspircd.git] / src / channels.cpp
index 0532a70e24099bb2388e814a1766b7bb11d0cc6e..6c70259bcea4a78bbfc5379d27c81629edd87ae9 100644 (file)
@@ -261,15 +261,7 @@ Channel* Channel::JoinUser(InspIRCd* Instance, User *user, const char* cn, bool
        if (IS_LOCAL(user) && !override)
        {
                // Checking MyClass exists because we *may* get here with NULL, not 100% sure.
-               if (user->MyClass && user->MyClass->GetMaxChans())
-               {
-                       if (user->chans.size() >= user->MyClass->GetMaxChans())
-                       {
-                               user->WriteNumeric(ERR_TOOMANYCHANNELS, "%s %s :You are on too many channels",user->nick.c_str(), cn);
-                               return NULL;
-                       }
-               }
-               else
+               if (user->MyClass && user->MyClass->maxchans)
                {
                        if (user->HasPrivPermission("channels/high-join-limit"))
                        {
@@ -281,7 +273,7 @@ Channel* Channel::JoinUser(InspIRCd* Instance, User *user, const char* cn, bool
                        }
                        else
                        {
-                               if (user->chans.size() >= Instance->Config->MaxChans)
+                               if (user->chans.size() >= user->MyClass->maxchans)
                                {
                                        user->WriteNumeric(ERR_TOOMANYCHANNELS, "%s %s :You are on too many channels",user->nick.c_str(), cn);
                                        return NULL;
@@ -474,6 +466,10 @@ Channel* Channel::ForceChan(InspIRCd* Instance, Channel* Ptr, User* user, const
                        user->WriteNumeric(RPL_TOPIC, "%s %s :%s", user->nick.c_str(), Ptr->name.c_str(), Ptr->topic.c_str());
                        user->WriteNumeric(RPL_TOPICTIME, "%s %s %s %lu", user->nick.c_str(), Ptr->name.c_str(), Ptr->setby.c_str(), (unsigned long)Ptr->topicset);
                }
+               else
+               {
+                       user->WriteNumeric(RPL_NOTOPICSET, "%s %s :No topic is set", user->nick.c_str(), Ptr->name.c_str());
+               }
                Ptr->UserList(user);
        }
        FOREACH_MOD_I(Instance,I_OnPostJoin,OnPostJoin(user, Ptr));