]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules.cpp
Add mode +b to active list
[user/henk/code/inspircd.git] / src / modules.cpp
index 24b3e1945d580b58f657601f6be4c0ac9e8b92f6..92841cb2bd38bb9dc326b9107046fb076653b62e 100644 (file)
@@ -60,6 +60,7 @@ extern command_table cmdlist;
 class Server;
 
 ExtModeList EMode;
+featurelist Features;
 
 // returns true if an extended mode character is in use
 bool ModeDefined(char modechar, int type)
@@ -156,7 +157,7 @@ Version::Version(int major, int minor, int revision, int build, int flags) : Maj
 
 Admin::Admin(std::string name, std::string email, std::string nick) : Name(name), Email(email), Nick(nick) { };
 
-Request::Request(void* anydata, Module* src, Module* dst) : data(anydata), source(src), dest(dst) { };
+Request::Request(char* anydata, Module* src, Module* dst) : data(anydata), source(src), dest(dst) { };
 
 char* Request::GetData()
 {
@@ -185,7 +186,7 @@ char* Request::Send()
        }
 }
 
-Event::Event(void* anydata, Module* src, const std::string &eventid) : data(anydata), source(src), id(eventid) { };
+Event::Event(char* anydata, Module* src, const std::string &eventid) : data(anydata), source(src), id(eventid) { };
 
 char* Event::GetData()
 {
@@ -350,6 +351,37 @@ long Server::PriorityBefore(const std::string &modulename)
        return PRIORITY_DONTCARE;
 }
 
+bool Server::PublishFeature(const std::string &FeatureName, Module* Mod)
+{
+       if (Features.find(FeatureName) == Features.end())
+       {
+               Features[FeatureName] = Mod;
+               return true;
+       }
+       return false;
+}
+
+bool Server::UnpublishFeature(const std::string &FeatureName)
+{
+       featurelist::iterator iter = Features.find(FeatureName);
+       
+       if (iter == Features.end())
+               return false;
+
+       Features.erase(iter);
+       return true;
+}
+
+Module* Server::FindFeature(const std::string &FeatureName)
+{
+       featurelist::iterator iter = Features.find(FeatureName);
+
+       if (iter == Features.end())
+               return NULL;
+
+       return iter->second;
+}
+
 void Server::RehashServer()
 {
        WriteOpers("*** Rehashing config file");
@@ -493,7 +525,7 @@ void Server::AddCommand(command_t *f)
 
 void Server::SendMode(char **parameters, int pcnt, userrec *user)
 {
-       ServerInstance->ModeGrok->ServerMode(parameters,pcnt,user);
+       //ServerInstance->ModeGrok->ServerMode(parameters,pcnt,user);
 }
 
 void Server::Send(int Socket, const std::string &s)