]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_uninvite.cpp
Improved strhashcomp with no allocations
[user/henk/code/inspircd.git] / src / modules / m_uninvite.cpp
index e7d952386e565802ee678c8507585a2cc31e048d..dbd3af52f7e27624160d230ab99c0b618c3e9c3f 100644 (file)
@@ -23,8 +23,9 @@ using namespace std;
 #include "channels.h"
 #include "modules.h"
 #include "helperfuncs.h"
+#include "message.h"
 
-Server *Srv;
+static Server *Srv;
         
 class cmd_uninvite : public command_t
 {
@@ -69,15 +70,16 @@ class cmd_uninvite : public command_t
                         WriteServ(user->fd,"491 %s %s %s :Is not invited to channel %s",user->nick,u->nick,c->name,c->name);
                         return;
                 }
-                if (has_channel(user,c))
+                if (!c->HasUser(user))
                 {
                         WriteServ(user->fd,"492 %s %s :You're not on that channel!",user->nick, c->name);
                         return;
                 }
 
                 u->RemoveInvite(xname);
-                WriteServ(user->fd,"NOTICE %s :*** Uninvited %s from %s",user->nick,u->nick,c->name);
-                WriteChannel(user,"NOTICE %s :*** %s uninvited %s.",c->name,user->nick,u->nick);
+                WriteServ(user->fd,"494 %s %s %s :Uninvited",user->nick,c->name,u->nick);
+               WriteServ(u->fd,"493 %s :You were uninvited from %s by %s",u->nick,c->name,user->nick);
+                WriteChannel(c,user,"NOTICE %s :*** %s uninvited %s.",c->name,user->nick,u->nick);
         }
 };
 
@@ -100,7 +102,8 @@ class ModuleUninvite : public Module
        
        virtual Version GetVersion()
        {
-               return Version(1, 0, 0, 0, VF_VENDOR);
+               /* Must be static, because we dont want to desync invite lists */
+               return Version(1, 0, 0, 0, VF_VENDOR|VF_STATIC);
        }
 };