mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-12 03:59:03 -04:00
Add a factory to produce shuns, don't autoapply to userlist, etc.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9410 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
ef30d86d11
commit
e9b343457d
@ -56,6 +56,27 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
/** An XLineFactory specialized to generate shun pointers
|
||||
*/
|
||||
class ShunFactory : public XLineFactory
|
||||
{
|
||||
public:
|
||||
ShunFactory(InspIRCd* Instance) : XLineFactory(Instance, "SHUN") { }
|
||||
|
||||
/** Generate a shun
|
||||
*/
|
||||
XLine* Generate(time_t set_time, long duration, const char* source, const char* reason, const char* xline_specific_mask)
|
||||
{
|
||||
return new Shun(ServerInstance, set_time, duration, source, reason, xline_specific_mask);
|
||||
}
|
||||
|
||||
virtual bool AutoApplyToUserList(XLine*)
|
||||
{
|
||||
// No, we don't want to be applied to users automagically.
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
//typedef std::vector<Shun> shunlist;
|
||||
|
||||
class cmd_shun : public Command
|
||||
@ -135,14 +156,23 @@ class cmd_shun : public Command
|
||||
class ModuleShun : public Module
|
||||
{
|
||||
cmd_shun* mycommand;
|
||||
ShunFactory *f;
|
||||
|
||||
public:
|
||||
ModuleShun(InspIRCd* Me) : Module(Me)
|
||||
{
|
||||
f = new ShunFactory(ServerInstance);
|
||||
ServerInstance->XLines->RegisterFactory(f);
|
||||
|
||||
mycommand = new cmd_shun(ServerInstance);
|
||||
ServerInstance->AddCommand(mycommand);
|
||||
}
|
||||
|
||||
virtual ~ModuleShun()
|
||||
{
|
||||
ServerInstance->XLines->UnregisterFactory(f);
|
||||
}
|
||||
|
||||
void Implements(char* List)
|
||||
{
|
||||
List[I_OnPreCommand] = List[I_OnStats] = 1;
|
||||
@ -176,10 +206,6 @@ class ModuleShun : public Module
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual ~ModuleShun()
|
||||
{
|
||||
}
|
||||
|
||||
virtual Version GetVersion()
|
||||
{
|
||||
return Version(1,0,0,0,0,API_VERSION);
|
||||
|
Loading…
x
Reference in New Issue
Block a user