* ---------------------------------------------------
*/
+#include "inspircd.h"
#include "users.h"
#include "channels.h"
#include "modules.h"
#include "hashcomp.h"
-#include "inspircd.h"
/* $ModDesc: Provides support for the /WATCH command */
* of users using WATCH.
*/
+/*
+ * Before you start screaming, this definition is only used here, so moving it to a header is pointless.
+ * Yes, it's horrid. Blame cl for being different. -- w00t
+ */
#ifdef WINDOWS
-typedef nspace::hash_map<irc::string, std::deque<userrec*>, nspace::hash_compare<irc::string, less<irc::string> > > watchentries;
+typedef nspace::hash_map<irc::string, std::deque<userrec*>, nspace::hash_compare<irc::string, less<irc::string> > > watchentries;
#else
-typedef nspace::hash_map<irc::string, std::deque<userrec*>, nspace::hash<irc::string> > watchentries;
+typedef nspace::hash_map<irc::string, std::deque<userrec*>, nspace::hash<irc::string> > watchentries;
#endif
-typedef std::map<irc::string, std::string> watchlist;
+typedef std::map<irc::string, std::string> watchlist;
/* Who's watching each nickname.
* NOTE: We do NOT iterate this to display a user's WATCH list!
virtual void OnGarbageCollect()
{
watchentries* old_watch = whos_watching_me;
- whos_watching_me = new watchentries();
+ whos_watching_me = new watchentries();
for (watchentries::const_iterator n = old_watch->begin(); n != old_watch->end(); n++)
whos_watching_me->insert(*n);
- delete old_watch;
+ delete old_watch;
}
- virtual void OnCleanup(int target_type, void* item)
+ virtual void OnCleanup(int target_type, void* item)
{
if (target_type == TYPE_USER)
{
{
if (!user->Visibility || user->Visibility->VisibleTo(user))
(*n)->WriteServ("601 %s %s %s %s %lu :went offline", (*n)->nick, oldnick.c_str(), user->ident, user->dhost, user->age);
- (*wl)[user->nick] = "";
+ (*wl)[oldnick.c_str()] = "";
}
}
}
}
};
-
-class ModulewatchFactory : public ModuleFactory
-{
- public:
- ModulewatchFactory()
- {
- }
-
- ~ModulewatchFactory()
- {
- }
-
- virtual Module * CreateModule(InspIRCd* Me)
- {
- return new Modulewatch(Me);
- }
-
-};
-
-
-extern "C" DllExport void * init_module( void )
-{
- return new ModulewatchFactory;
-}
+MODULE_INIT(Modulewatch);