};
/** FJOIN, almost identical to TS6 SJOIN, except for nicklist handling. */
-CmdResult CommandFJoin::Handle(User* srcuser, std::vector<std::string>& params)
+CmdResult CommandFJoin::Handle(User* srcuser, Params& params)
{
/* 1.1+ FJOIN works as follows:
*
* drop the link to avoid desync.
*
* InspIRCd 2.0 and older required a comma before the uuid even if the user
- * had no prefix modes on the channel, InspIRCd 2.2 and later does not require
+ * had no prefix modes on the channel, InspIRCd 3.0 and later does not require
* a comma in this case anymore.
*
* <membid> is a positive integer representing the id of the membership.
time_t ourTS = chan->age;
if (TS != ourTS)
{
- ServerInstance->SNO->WriteToSnoMask('d', "Merge FJOIN received for %s, ourTS: %lu, TS: %lu, difference: %ld",
+ ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Merge FJOIN received for %s, ourTS: %lu, TS: %lu, difference: %ld",
chan->name.c_str(), (unsigned long)ourTS, (unsigned long)TS, (long)(ourTS - TS));
/* If our TS is less than theirs, we dont accept their modes */
if (ourTS < TS)
FwdFJoinBuilder fwdfjoin(chan, sourceserver);
// Process every member in the message
- irc::tokenstream users(params.back());
+ irc::spacesepstream users(params.back());
std::string item;
Modes::ChangeList* modechangelistptr = (apply_other_sides_modes ? &modechangelist : NULL);
while (users.GetToken(item))
void CommandFJoin::LowerTS(Channel* chan, time_t TS, const std::string& newname)
{
if (Utils->AnnounceTSChange)
- chan->WriteNotice(InspIRCd::Format("TS for %s changed from %lu to %lu", newname.c_str(), (unsigned long) chan->age, (unsigned long) TS));
+ chan->WriteNotice(InspIRCd::Format("Creation time of %s changed from %s to %s", newname.c_str(),
+ InspIRCd::TimeString(chan->age).c_str(), InspIRCd::TimeString(TS).c_str()));
// While the name is equal in case-insensitive compare, it might differ in case; use the remote version
chan->name = newname;