X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_check.cpp;h=25835297904c74973e60c59a3aca71387e2f2cdc;hb=67de413cad88194972d55a8ff88464370890c5a9;hp=662e512f967f48cde258737acee16ef0d6f125d1;hpb=ebe5b201aab71cf2ead1e068889be736314fbb73;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index 662e512f9..258352979 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -20,8 +20,6 @@ */ -/* $ModDesc: Provides the /CHECK command to retrieve information on a user, channel, hostname or IP address */ - #include "inspircd.h" #include "listmode.h" @@ -29,11 +27,25 @@ */ class CommandCheck : public Command { - ModeReference ban; + ChanModeReference ban; + UserModeReference snomaskmode; + + std::string GetSnomasks(User* user) + { + std::string ret; + if (snomaskmode) + ret = snomaskmode->GetUserParameter(user); + + if (ret.empty()) + ret = "+"; + return ret; + } + public: CommandCheck(Module* parent) : Command(parent,"CHECK", 1) , ban(parent, "ban") + , snomaskmode(parent, "snomask") { flags_needed = 'o'; syntax = "||| "; } @@ -94,7 +106,7 @@ class CommandCheck : public Command user->SendText(checkstr + " realnuh " + targuser->GetFullRealHost()); user->SendText(checkstr + " realname " + targuser->fullname); user->SendText(checkstr + " modes +" + targuser->FormatModes()); - user->SendText(checkstr + " snomasks +" + targuser->FormatNoticeMasks()); + user->SendText(checkstr + " snomasks " + GetSnomasks(targuser)); user->SendText(checkstr + " server " + targuser->server); user->SendText(checkstr + " uid " + targuser->uuid); user->SendText(checkstr + " signon " + timestring(targuser->signon)); @@ -102,18 +114,18 @@ class CommandCheck : public Command if (loctarg) user->SendText(checkstr + " lastmsg " + timestring(loctarg->idle_lastmsg)); - if (IS_AWAY(targuser)) + if (targuser->IsAway()) { /* user is away */ user->SendText(checkstr + " awaytime " + timestring(targuser->awaytime)); user->SendText(checkstr + " awaymsg " + targuser->awaymsg); } - if (IS_OPER(targuser)) + if (targuser->IsOper()) { OperInfo* oper = targuser->oper; /* user is an oper of type ____ */ - user->SendText(checkstr + " opertype " + oper->NameStr()); + user->SendText(checkstr + " opertype " + oper->name); if (loctarg) { std::string umodes; @@ -194,12 +206,13 @@ class CommandCheck : public Command /* note that unlike /names, we do NOT check +i vs in the channel */ for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++) { - char tmpbuf[MAXBUF]; /* - * Unlike Asuka, I define a clone as coming from the same host. --w00t - */ - snprintf(tmpbuf, MAXBUF, "%-3lu %s%s (%s@%s) %s ", ServerInstance->Users->GlobalCloneCount(i->first), targchan->GetAllPrefixChars(i->first), i->first->nick.c_str(), i->first->ident.c_str(), i->first->dhost.c_str(), i->first->fullname.c_str()); - user->SendText(checkstr + " member " + tmpbuf); + * Unlike Asuka, I define a clone as coming from the same host. --w00t + */ + user->SendText("%s member %-3lu %s%s (%s@%s) %s ", + checkstr.c_str(), ServerInstance->Users->GlobalCloneCount(i->first), + targchan->GetAllPrefixChars(i->first), i->first->nick.c_str(), + i->first->ident.c_str(), i->first->dhost.c_str(), i->first->fullname.c_str()); } // We know that the mode handler for bans is in the core and is derived from ListModeBase @@ -207,7 +220,7 @@ class CommandCheck : public Command banlm->DoSyncChannel(targchan, creator, user); // Show other listmodes as well - FOREACH_MOD(I_OnSyncChannel,OnSyncChannel(targchan,creator,user)); + FOREACH_MOD(OnSyncChannel, (targchan,creator,user)); dumpExt(user, checkstr, targchan); } else @@ -255,7 +268,7 @@ class ModuleCheck : public Module { } - void init() + void init() CXX11_OVERRIDE { ServerInstance->Modules->AddService(mycommand); } @@ -276,7 +289,7 @@ class ModuleCheck : public Module user->SendText(checkstr); } - Version GetVersion() + Version GetVersion() CXX11_OVERRIDE { return Version("CHECK command, view user, channel, IP address or hostname information", VF_VENDOR|VF_OPTCOMMON); }