summaryrefslogtreecommitdiff
path: root/src/mode.cpp
AgeCommit message (Collapse)Author
2019-03-14Check perms for removal of oper-only channel modes.Matt Schatz
Oper-only channel modes are currently unsettable by any channel op, oper or not. Correct this by checking both directions of an oper-only channel mode and continue only checking the setting of an oper-only user mode. As anyone should be able to unset their own user modes and UnOper() removes all oper-only user modes automatically.
2019-02-18Various text improvements: consistency, syntax, help and doc updates/fixes.Robby
2019-01-24Remove trailing whitespace from various source files.Peter Powell
2019-01-24Move the <disabled> tag out of the core to a new module.Peter Powell
2019-01-10Improve the error messages given when creating a mode.Peter Powell
2018-08-22Send the 001-004 numerics and MOTD/LUSERS from core_info.Peter Powell
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-08-13Implement IRCv3 message tag support.Peter Powell
Co-authored-by: Attila Molnar <attilamolnar@hush.com>
2018-01-29Add ERR_INVALIDMODEPARAM for responding to invalid mode params.Peter Powell
Currently on invalid modes we do a combination of different things: 1. Send a custom mode-specific numeric (which often collides with other modes). 2. Send a server notice. 3. Do absolutely nothing. This new numeric is a generic way of handling invalid parameters when setting a mode that avoids all of the mistakes of the previous behaviour.
2017-12-11Ensure that ModeParser doesn't try to process a non-existent mode.B00mX0r
This fixes #1431 and closes #1432.
2017-12-10Extract RFC modes from the core to core_channel and core_user.Peter Powell
2017-11-06Enable using m_customprefix to alter core prefix modes.Peter Powell
This replaces the devoice module which has now been removed. If you want users to be able to devoice themselves then you can load the customprefix module add the following config tag: <customprefix name="voice" depriv="yes"> If you wish to keep identical behaviour rather than allowing users to use "MODE #YourChannel -v TheirNick" then you can load the alias module and add the following config tag: <alias text="DEVOICE" format="#*" replace="MODE $2 -v $nick">
2017-11-06Move depriv from m_customprefix into PrefixMode.Peter Powell
2017-11-06Add support for setting the unset rank in ModeHandler.Peter Powell
2017-10-04Fix RPL_SERVERVERSION treating the modes as a single parameter.Peter Powell
2017-09-18Convert Disabled[CU]Modes to use a bitset instead of a char array.Peter Powell
2017-09-18Add ModeParser::IsModeChar to standardise mode validation.Peter Powell
2016-12-30Make ModeHandler::GetUserParameter() const, accept const UserAttila Molnar
2016-08-30Change Membership:hasMode() to accept a PrefixModeAttila Molnar
2016-08-30Replace loop over alphabet with loop over mode list in several placesAttila Molnar
2016-08-30Pass the ModeHandler to User::HasModePermission()Attila Molnar
Mark the method as const
2016-08-29Mark ModeHandler::GetModeChar() and ModeWatcher::GetModeType() as constAttila Molnar
2016-08-29Convert ModeHandler::GetNumParams() to NeedsParam() that returns a boolAttila Molnar
2016-08-17Merge insp20Attila Molnar
2016-05-30Fix 005 not showing some modes with the same rank as others.Peter Powell
2016-02-25Convert WriteNumeric() calls to pass the parameters of the numeric as method ↵Attila Molnar
parameters
2015-11-23Implement ModeHandler::RegisterService()Attila Molnar
2015-01-10Reduce std::string::substr() usageAttila Molnar
substr() returns a new string while erase() and assign() modify the existing one
2014-12-15Change type of some associative containers to their flat versions, including ↵Attila Molnar
Extensible storage
2014-12-15Add typedef ModeParser::ModeWatcherMap, remove ModeWatchIterAttila Molnar
2014-11-30Reject empty mode parameters in ModeParser::Process() instead of relying on ↵Attila Molnar
ModeHandlers to do it
2014-09-10Remove listmode hiding support from the coreAttila Molnar
This is now handled by m_hidelist
2014-09-04Migrate code from ModeParser into cmd_mode (core_user)Attila Molnar
- Process() that takes a std::vector<std::string> - DisplayCurrentModes() - DisplayListModes()
2014-09-04Split ModeParser::DisplayListMode() into two partsAttila Molnar
ShowListModeList() sends the list of one listmode to a user, DisplayListMode() calls it for each mode letter
2014-09-04Remove unused parameter passed to ModeParser::DisplayCurrentModes()Attila Molnar
2014-09-04Pass Modes::ChangeList references to the OnPreMode hook, make it modifiableAttila Molnar
This gets rid of the duplicated mode parsing logic in m_namedmodes
2014-09-04Let callers customize the begin/end positions for ↵Attila Molnar
ModeParser::ModeParamsToChangeList() This helps spanningtree when it deals with a vector of parameters where the modes begin at different positions
2014-09-03Use Modes::ChangeList in ModeHandler::RemoveMode()Attila Molnar
2014-09-03Add a ModeParser::Process() overload that can process an entire ↵Attila Molnar
Modes::ChangeList This is a wrapper that calls ProcessSingle() repeatedly until the entire changelist is processed
2014-09-03Make it possible to resume processing a partially processed Modes::ChangeListAttila Molnar
Return number of processed mode changes from ModeParser::ProcessSingle() and add a begin index parameter
2014-09-03Split out ModeParser::ModeParamsToChangeList()Attila Molnar
2014-09-03Handle mode merges in ModeParser::ProcessSingle()Attila Molnar
2014-09-03Validate mode parameters from ModeParser::ProcessSingle()Attila Molnar
2014-09-03Split out ModeParser::ProcessSingle() from Process()Attila Molnar
This applies up to one MODE line's worth of mode changes from a Modes::ChangeList
2014-09-03Add mode process flag MODE_CHECKACCESSAttila Molnar
2014-09-03Remove ModeHandler::m_paramtype and GetTranslateType()Attila Molnar
2014-09-03Remove ModeParser::LastParseTranslate and GetLastParseTranslate()Attila Molnar
2014-09-03Remove ModeParser::LastParseParams and GetLastParseParams()Attila Molnar
2014-09-03Compare Limits.MaxModes to the size of LastChangeList in ModeParser::Process()Attila Molnar
2014-09-03Remove ProtocolInterface::SendMode()Attila Molnar
2014-09-03Pass the modes to the OnMode hook as a Modes::ChangeList, pass ↵Attila Molnar
ModeProcessFlags too