X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Fu_listmode.h;h=5c5ddd9ffe42df670e1ba4f599979fb8dcfbaf46;hb=9f33bf7fc83cffccae96eb622bf39e8f4838b809;hp=6c6e2ca28fbc63374a5e9c096e824eb390983c48;hpb=57608fe351cff19679b1d78fb5cbfb7cad89dfc1;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/u_listmode.h b/include/u_listmode.h index 6c6e2ca28..5c5ddd9ff 100644 --- a/include/u_listmode.h +++ b/include/u_listmode.h @@ -87,10 +87,10 @@ class ListModeBase : public ModeHandler std::string infokey; /** Numeric to use when outputting the list */ - std::string listnumeric; + unsigned int listnumeric; /** Numeric to indicate end of list */ - std::string endoflistnumeric; + unsigned int endoflistnumeric; /** String to send for end of list */ std::string endofliststring; @@ -115,7 +115,7 @@ class ListModeBase : public ModeHandler * @param autotidy Automatically tidy list entries on add * @param ctag Configuration tag to get limits from */ - ListModeBase(InspIRCd* Instance, char modechar, const std::string &eolstr, const std::string &lnum, const std::string &eolnum, bool autotidy, const std::string &ctag = "banlist") + ListModeBase(InspIRCd* Instance, char modechar, const std::string &eolstr, unsigned int lnum, unsigned int eolnum, bool autotidy, const std::string &ctag = "banlist") : ModeHandler(Instance, modechar, 1, 1, true, MODETYPE_CHANNEL, false), listnumeric(lnum), endoflistnumeric(eolnum), endofliststring(eolstr), tidy(autotidy), configtag(ctag) { this->DoRehash(); @@ -153,15 +153,15 @@ class ListModeBase : public ModeHandler { for (modelist::reverse_iterator it = el->rbegin(); it != el->rend(); ++it) { - user->WriteServ("%s %s %s %s %s %s", listnumeric.c_str(), user->nick, channel->name, it->mask.c_str(), it->nick.c_str(), it->time.c_str()); + user->WriteNumeric(listnumeric, "%s %s %s %s %s", user->nick, channel->name, it->mask.c_str(), it->nick.c_str(), it->time.c_str()); } } - user->WriteServ("%s %s %s :%s", endoflistnumeric.c_str(), user->nick, channel->name, endofliststring.c_str()); + user->WriteNumeric(endoflistnumeric, "%s %s :%s", user->nick, channel->name, endofliststring.c_str()); } virtual void DisplayEmptyList(User* user, Channel* channel) { - user->WriteServ("%s %s %s :%s", endoflistnumeric.c_str(), user->nick, channel->name, endofliststring.c_str()); + user->WriteNumeric(endoflistnumeric, "%s %s :%s", user->nick, channel->name, endofliststring.c_str()); } /** Remove all instances of the mode from a channel. @@ -176,8 +176,8 @@ class ListModeBase : public ModeHandler { irc::modestacker modestack(false); std::deque stackresult; - const char* mode_junk[MAXMODES+2]; - mode_junk[0] = channel->name; + std::vector mode_junk; + mode_junk.push_back(channel->name); for (modelist::iterator it = el->begin(); it != el->end(); it++) { @@ -194,10 +194,10 @@ class ListModeBase : public ModeHandler { for (size_t j = 0; j < stackresult.size(); j++) { - mode_junk[j+1] = stackresult[j].c_str(); + mode_junk.push_back(stackresult[j]); } - ServerInstance->SendMode(mode_junk, stackresult.size() + 1, ServerInstance->FakeClient); + ServerInstance->SendMode(mode_junk, ServerInstance->FakeClient); } } }