+};
+
+class ModuleSafeList : public Module
+{
+ private:
+
+ ListTimer* MyTimer;
+ public:
+ ModuleSafeList(InspIRCd* Me) : Module::Module(Me)
+ {
+ MyTimer = new ListTimer(ServerInstance,1);
+ ServerInstance->Timers->AddTimer(MyTimer);
+ }
+
+ virtual ~ModuleSafeList()
+ {
+ }
+
+ virtual Version GetVersion()
+ {
+ return Version(1,0,0,0,VF_VENDOR);
+ }
+
+ void Implements(char* List)
+ {
+ List[I_OnPreCommand] = List[I_OnCleanup] = List[I_OnUserQuit] = List[I_On005Numeric] = 1;
+ }
+
+ /*
+ * OnPreCommand()
+ * Intercept the LIST command.
+ */
+ virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated)
+ {
+ /* If the command doesnt appear to be valid, we dont want to mess with it. */
+ if (!validated)
+ return 0;