diff options
-rw-r--r-- | src/message.cpp | 8 | ||||
-rw-r--r-- | src/mode.cpp | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/message.cpp b/src/message.cpp index 787071d8a..073c54d02 100644 --- a/src/message.cpp +++ b/src/message.cpp @@ -41,6 +41,7 @@ using namespace std; #include "modules.h" #include "dynamic.h" #include "wildcard.h" +#include "commands.h" #include "message.h" #include "inspstring.h" #include "dns.h" @@ -307,6 +308,10 @@ char* cmode(userrec *user, chanrec *chan) log(DEFAULT,"*** BUG *** cmode was given an invalid parameter"); return ""; } + + if (is_uline(user->server)) + return "@"; + for (int i = 0; i != MAXCHANS; i++) { if (user->chans[i].channel) @@ -344,6 +349,9 @@ int cstatus(userrec *user, chanrec *chan) return 0; } + if (is_uline(user->server)) + return STATUS_OP; + for (int i = 0; i != MAXCHANS; i++) { if (user->chans[i].channel) diff --git a/src/mode.cpp b/src/mode.cpp index d1c63702f..e9b6861c0 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -1517,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; |