+using namespace std;
+
#include "users.h"
#include "channels.h"
#include "modules.h"
#include <string>
+#include "helperfuncs.h"
/* $ModDesc: Gives each oper type a 'level', cannot kill opers 'above' your level. */
-Server *Srv;
-
class ModuleOperLevels : public Module
{
private:
+ Server* Srv;
ConfigReader* conf;
public:
- ModuleOperLevels()
+ ModuleOperLevels(Server* Me)
+ : Module::Module(Me)
{
- Srv = new Server;
+ Srv = Me;
conf = new ConfigReader;
}
virtual ~ModuleOperLevels()
{
- delete Srv;
delete conf;
}
- virtual void OnRehash()
+ void Implements(char* List)
+ {
+ List[I_OnRehash] = List[I_OnKill] = 1;
+ }
+
+ virtual void OnRehash(std::string parameter)
{
delete conf;
conf = new ConfigReader;
virtual Version GetVersion()
{
- return Version(1,0,0,0,0);
+ return Version(1,0,0,1,VF_VENDOR);
}
virtual int OnKill(userrec* source, userrec* dest, std::string reason)
{
long dest_level = 0,source_level = 0;
// oper killing an oper?
- if (strchr(dest->modes,'o'))
+ if (*dest->oper)
{
for (int j =0; j < conf->Enumerate("type"); j++)
{
WriteServ(source->fd,"481 %s :Permission Denied- Oper %s is a higher level than you",source->nick,dest->nick);
return 1;
}
- return 0;
}
+ return 0;
}
};
{
}
- virtual Module * CreateModule()
+ virtual Module * CreateModule(Server* Me)
{
- return new ModuleOperLevels;
+ return new ModuleOperLevels(Me);
}
};