/** Cached mode list for use in 004 numeric
*/
- std::string Cached004ModeList;
+ TR1NS::array<std::string, 3> Cached004ModeList;
public:
typedef std::vector<ListModeBase*> ListModeList;
*/
PrefixMode* FindPrefix(unsigned const char pfxletter);
- /** Returns a list of modes, space seperated by type:
+ /** Returns an array of modes:
* 1. User modes
* 2. Channel modes
* 3. Channel modes that require a parameter when set
* This is sent to users as the last part of the 004 numeric
*/
- const std::string& GetModeListFor004Numeric();
+ const TR1NS::array<std::string, 3>& GetModeListFor004Numeric();
/** Generates a list of modes, comma seperated by type:
* 1; Listmodes EXCEPT those with a prefix
void ShowListModeList(User* user, Channel* chan, ModeHandler* mh);
};
-inline const std::string& ModeParser::GetModeListFor004Numeric()
+inline const TR1NS::array<std::string, 3>& ModeParser::GetModeListFor004Numeric()
{
return Cached004ModeList;
}
void ModeParser::RecreateModeListFor004Numeric()
{
- Cached004ModeList = CreateModeList(MODETYPE_USER) + " " + CreateModeList(MODETYPE_CHANNEL) + " " + CreateModeList(MODETYPE_CHANNEL, true);
+ Cached004ModeList[0] = CreateModeList(MODETYPE_USER);
+ Cached004ModeList[1] = CreateModeList(MODETYPE_CHANNEL);
+ Cached004ModeList[2] = CreateModeList(MODETYPE_CHANNEL, true);
}
PrefixMode* ModeParser::FindPrefix(unsigned const char pfxletter)
this->WriteNumeric(RPL_YOURHOSTIS, InspIRCd::Format("Your host is %s, running version %s", ServerInstance->Config->ServerName.c_str(), INSPIRCD_BRANCH));
this->WriteNumeric(RPL_SERVERCREATED, InspIRCd::TimeString(ServerInstance->startup_time, "This server was created %H:%M:%S %b %d %Y"));
- const std::string& modelist = ServerInstance->Modes->GetModeListFor004Numeric();
- this->WriteNumeric(RPL_SERVERVERSION, ServerInstance->Config->ServerName, INSPIRCD_BRANCH, modelist);
+ const TR1NS::array<std::string, 3>& modelist = ServerInstance->Modes->GetModeListFor004Numeric();
+ this->WriteNumeric(RPL_SERVERVERSION, ServerInstance->Config->ServerName, INSPIRCD_BRANCH, modelist[0], modelist[1], modelist[2]);
ServerInstance->ISupport.SendTo(this);