* ---------------------------------------------------
*/
-using namespace std;
-
/* $ModDesc: Provides an extended version of /WHO for opers */
-#include "inspircd_config.h"
-#include "inspircd.h"
-#include "inspircd_io.h"
-#include <time.h>
#include <string>
-#ifdef GCC3
-#include <ext/hash_map>
-#else
-#include <hash_map>
-#endif
-#include <map>
-#include <sstream>
#include <vector>
-#include <deque>
+#include "inspircd_config.h"
#include "users.h"
-#include "globals.h"
#include "modules.h"
#include "helperfuncs.h"
#include "message.h"
-#include "hashcomp.h"
-#include "typedefs.h"
-extern ServerConfig* Config;
-extern InspIRCd* ServerInstance;
extern user_hash clientlist;
-extern chan_hash chanlist;
extern std::vector<userrec*> all_opers;
-extern std::vector<userrec*> local_users;
class ModuleOperWho : public Module
{
List[I_OnPreCommand] = 1;
}
- virtual int OnPreCommand(const std::string &command, char **parameters, int pcnt, userrec *user, bool validated)
+ virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated)
{
if ((!*user->oper) || (command != "WHO"))
}
if (*u->oper) { strlcat(tmp, "*" ,9); }
WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, u->chans.size() && ((ucrec*)*(u->chans.begin()))->channel ? ((ucrec*)*(u->chans.begin()))->channel->name
- : "*", u->ident, u->dhost, u->server, u->nick, tmp, u->fullname);
+ : "*", u->ident, u->dhost, u->server, u->nick, tmp, u->fullname);
}
WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
return 1;
}
if (pcnt == 2)
{
- if ((!strcmp(parameters[0],"0")) || (!strcmp(parameters[0],"*")) && (!strcmp(parameters[1],"o")))
- {
+ if ((!strcmp(parameters[0],"0")) || (!strcmp(parameters[0],"*")) && (!strcmp(parameters[1],"o")))
+ {
for (std::vector<userrec*>::iterator i = all_opers.begin(); i != all_opers.end(); i++)
- {
+ {
// If i were a rich man.. I wouldn't need to me making these bugfixes..
// But i'm a poor bastard with nothing better to do.
userrec* oper = *i;
} else {
strlcat(tmp, "H" ,9);
}
- WriteServ(user->fd,"352 %s %s %s %s %s %s %s* :0 %s", user->nick, oper->chans.size() && ((ucrec*)*(oper->chans.begin()))->channel ?
+ WriteServ(user->fd,"352 %s %s %s %s %s %s %s* :0 %s", user->nick, oper->chans.size() && ((ucrec*)*(oper->chans.begin()))->channel ?
((ucrec*)*(oper->chans.begin()))->channel->name : "*", oper->ident, oper->host, oper->server, oper->nick, tmp, oper->fullname);
- }
- WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
- return 1;
- }
+ }
+ WriteServ(user->fd,"315 %s %s :End of /WHO list.",user->nick, parameters[0]);
+ return 1;
+ }
}
return 0;
}