From a93e436b039fa86345759b9a29243fe09fb54bcf Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 25 Aug 2006 13:42:19 +0000 Subject: Add which allows a user to appear to have quit when their host changes, so that clients/bots can stay synched properly. It is recommended this option always be on. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5017 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/mode.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/mode.cpp') diff --git a/src/mode.cpp b/src/mode.cpp index 8351ab2e0..5ae457b68 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -666,6 +666,31 @@ ModeHandler* ModeParser::FindPrefix(unsigned const char pfxletter) return NULL; } +std::string ModeParser::ModeString(userrec* user, chanrec* channel) +{ + std::string types; + std::string pars; + + for (unsigned char mode = 'A'; mode <= 'z'; mode++) + { + unsigned char pos = (mode-65) | MASK_CHANNEL; + ModeHandler* mh = modehandlers[pos]; + if ((mh) && (mh->GetNumParams(true)) && (mh->GetNumParams(false))) + { + ModePair ret; + ret = mh->ModeSet(NULL, user, channel, user->nick); + if (ret.first) + { + pars.append(" "); + pars.append(user->nick); + types.push_back(mh->GetModeChar()); + } + } + } + + return types+pars; +} + std::string ModeParser::ChanModes() { std::string type1; /* Listmodes EXCEPT those with a prefix */ -- cgit v1.3.1-10-gc9f91