* ---------------------------------------------------
*/
+using namespace std;
+
#include <stdio.h>
#include <string>
#include <vector>
#include "users.h"
#include "channels.h"
#include "modules.h"
+#include "helperfuncs.h"
+#include "hashcomp.h"
/* $ModDesc: Provides support for the /SILENCE command */
for (silencelist::iterator i = sl->begin(); i != sl->end(); i++)
{
// search through for the item
- if (!strcasecmp(i->c_str(),nick))
+ irc::string listitem = i->c_str();
+ irc::string target = nick;
+ if (listitem == target)
{
sl->erase(i);
WriteServ(user->fd,"950 %s %s :Removed %s!*@* from silence list",user->nick, user->nick,nick);
user->Extend(std::string("silence_list"),(char*)sl);
}
// add the nick to it -- silence only takes nicks for some reason even though its list shows masks
+ for (silencelist::iterator n = sl->begin(); n != sl->end(); n++)
+ {
+ irc::string listitem = n->c_str();
+ irc::string target = nick;
+ if (listitem == target)
+ {
+ WriteServ(user->fd,"952 %s %s :%s is already on your silence list",user->nick, user->nick,nick);
+ return;
+ }
+ }
sl->push_back(std::string(nick));
WriteServ(user->fd,"951 %s %s :Added %s!*@* to silence list",user->nick, user->nick,nick);
return;
ModuleSilence()
{
Srv = new Server;
- Srv->AddCommand("SILENCE",handle_silence,0,0);
+ Srv->AddCommand("SILENCE",handle_silence,0,0,"m_silence.so");
}
virtual void OnUserQuit(userrec* user)
user->Shrink("silence_list");
}
}
+
+ virtual void On005Numeric(std::string &output)
+ {
+ // we don't really have a limit...
+ output = output + " SILENCE=999";
+ }
virtual int OnUserPreNotice(userrec* user,void* dest,int target_type, std::string &text)
{
{
for (silencelist::const_iterator c = sl->begin(); c != sl->end(); c++)
{
- if (!strcasecmp(c->c_str(),user->nick))
+ irc::string listitem = c->c_str();
+ irc::string target = user->nick;
+ if (listitem == target)
{
return 1;
}
{
for (silencelist::const_iterator c = sl->begin(); c != sl->end(); c++)
{
- if (!strcasecmp(c->c_str(),user->nick))
+ irc::string listitem = c->c_str();
+ irc::string target = user->nick;
+ if (listitem == target)
{
return 1;
}
virtual Version GetVersion()
{
- return Version(1,0,0,0);
+ return Version(1,0,0,1,VF_VENDOR);
}
};