#include "users.h"
#include "channels.h"
#include "modules.h"
-#include "commands.h"
#include "inspircd.h"
-
#include "wildcard.h"
/* $ModDesc: Provides the /check command to retrieve information on a user, channel, or IP address */
-
-
+/** Handle /CHECK
+ */
class cmd_check : public command_t
{
public:
syntax = "<nickname>|<ip>|<hostmask>|<channel>";
}
- void Handle (const char** parameters, int pcnt, userrec *user)
+ CmdResult Handle (const char** parameters, int pcnt, userrec *user)
{
userrec *targuser;
chanrec *targchan;
/* note that unlike /names, we do NOT check +i vs in the channel */
for (CUList::iterator i = ulist->begin(); i != ulist->end(); i++)
{
- char list[MAXBUF];
char tmpbuf[MAXBUF];
- char* ptr = list;
- int flags = targchan->GetStatusFlags(i->second);
/*
- * find how many connections from this user's IP -- unlike Asuka,
- * I define a clone as coming from the same host. --w00t
+ * Unlike Asuka, I define a clone as coming from the same host. --w00t
*/
- sprintf(ptr, "%lu ", i->second->GlobalCloneCount());
-
- if (flags & UCMODE_OP)
- {
- strcat(ptr, "@");
- }
-
- if (flags & UCMODE_HOP)
- {
- strcat(ptr, "%");
- }
-
- if (flags & UCMODE_VOICE)
- {
- strcat(ptr, "+");
- }
-
- sprintf(tmpbuf, "%s (%s@%s) %s ", i->second->nick, i->second->ident, i->second->dhost, i->second->fullname);
- strcat(ptr, tmpbuf);
-
- user->WriteServ(checkstr + " member " + ptr);
+ snprintf(tmpbuf, MAXBUF, "%lu %s%s (%s@%s) %s ", i->second->GlobalCloneCount(), targchan->GetAllPrefixChars(i->second), i->second->nick, i->second->ident, i->second->dhost, i->second->fullname);
+ user->WriteServ(checkstr + " member " + tmpbuf);
}
}
else
}
user->WriteServ(checkstr + " END " + std::string(parameters[0]));
+
+ return CMD_SUCCESS;
}
};
virtual Version GetVersion()
{
- return Version(1, 0, 0, 0, VF_VENDOR);
+ return Version(1, 1, 0, 0, VF_VENDOR, API_VERSION);
}
void Implements(char* List)