]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Fixed bug #85
[user/henk/code/inspircd.git] / src / mode.cpp
index 6461ee3114974309479bd4d8b90516dbc97250cf..e9b6861c0dcf250786eb975d3eca9a6d78311649 100644 (file)
@@ -1157,6 +1157,7 @@ void process_modes(char **parameters,userrec* user,chanrec *chan,int status, int
                                if (!silent)
                                {
                                        WriteChannel(chan,user,"MODE %s %s",chan->name,outstr);
+                                       FOREACH_MOD OnMode(user, chan, TYPE_CHANNEL, outstr);
                                }
                        }
                }
@@ -1293,7 +1294,7 @@ void handle_mode(char **parameters, int pcnt, userrec *user)
                can_change = 0;
                if (user != dest)
                {
-                       if (strchr(user->modes,'o'))
+                       if ((strchr(user->modes,'o')) || (is_uline(user->server)))
                        {
                                can_change = 1;
                        }
@@ -1516,7 +1517,7 @@ void handle_mode(char **parameters, int pcnt, userrec *user)
                        }
                }
 
-                if ((Ptr) && (!has_channel(user,Ptr)))
+                if (((Ptr) && (!has_channel(user,Ptr))) && (!is_uline(user->server)))
                 {
                         WriteServ(user->fd,"442 %s %s :You're not on that channel!",user->nick, Ptr->name);
                         return;