summaryrefslogtreecommitdiff
path: root/include/mode.h
AgeCommit message (Collapse)Author
2014-02-23Throw an exception if ModeParser::AddMode() failsAttila Molnar
2014-02-22Add ModeParser::GetModes(), returns all user/chanmodesAttila Molnar
2014-02-21Assign an id to user modes, parameter chanmodes and simple chanmodesAttila Molnar
2014-02-20Add a ModeParser::FindMode() overload that takes a mode name and a mode typeAttila Molnar
2014-02-20Create a name -> ModeHandler* mapAttila Molnar
2014-02-18Replace ModeMasks with a two-dimensional arrayAttila Molnar
2014-02-18Change the parameter type of ModeHandler::GiveModeList() from ModeMasks to ↵Attila Molnar
ModeType
2014-02-15Add ParamModeBase and ParamMode, change all parameter modes to inherit from ↵Attila Molnar
ParamMode - Type of the extension used to store data is a template parameter - The extension is automatically unset when the mode is unset - Handlers inheriting from ParamMode have to provide OnSet() and SerializeParam(); may optionally provide OnUnset() - Transparently handle the case when OnSet() modifies the mode parameter - Remove Channel::custom_mode_params map; ask the mode handlers to serialize their parameters instead
2014-02-15Add ModeHandler::IsParameterMode() and MC_PARAMAttila Molnar
2014-01-31Remove some dead codeAttila Molnar
2013-11-09Fix PrefixMode not being exported which caused runtime link errors.Peter Powell
2013-09-12Keep lists of mode handlers by typeattilamolnar
2013-09-12Add ModeHandler::IsListModeBase() and MC_LISTattilamolnar
2013-09-11Move prefix mode specific fields and getters into PrefixModeattilamolnar
Add ModeHandler::IsPrefixMode()
2013-09-11Create a base class for prefix modesattilamolnar
Move Channel::SetPrefix() into Membership
2013-09-11Add a type id field to ModeHandlerattilamolnar
2013-06-13Introduce ModeProcessFlags, can be passed to ModeParser::Process() to ↵attilamolnar
indicate local only mode changes and mode merges Change ProtocolInterface::SendMode() to take source and destination parameters, and call it from the mode parser whenever the mode change is global This deprecates the ambiguous InspIRCd::SendMode() and InspIRCd::SendGlobalMode() interface (the latter sent mode changes originating from local users twice, etc.)
2013-06-06Store prefix rank in a ModeHandler field, change ↵attilamolnar
ModeHandler::GetPrefixRank() to be non-virtual
2013-06-02Move a few trivial functions into headersattilamolnar
2013-06-01Watch mode names with ModeWatchers instead of mode lettersattilamolnar
2013-06-01Remove useless ModeType parameter from ModeWatcher::BeforeMode() and AfterMode()attilamolnar
2013-05-27Simplify user mode removal via ModeHandler::RemoveMode()attilamolnar
The function does not need to be virtual because the core can remove any user mode using the default logic The optional modestack parameter was always NULL, so remove it
2013-05-27Deduplicate RemoveMode() implementationsattilamolnar
The default (core) implementation can now remove prefix modes The modestacker parameter is now mandatory
2013-05-24Cache mode list that is sent in the 004 numericattilamolnar
Deduplicate UserModeList(), ChannelModeList() and ParaModeList() code
2013-05-24Remove dead ModeParser codeattilamolnar
2013-04-12Tidy up source files:Peter Powell
- Use #pragma once instead of include guards. - Move header files in src/modules to include/modules. - Fixed various spacing issues.
2013-04-08Add builtin modes using AddService()attilamolnar
2012-07-05Fix Doxygen syntax errors.Peter Powell
2012-04-19Replace copyright headers with headers granting specific authors copyrightRobby-
2012-04-14Fixes for bug #12Justin Crawford
2010-01-11...because every now and again, i have to do a massive commit.brain
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12248 e03df62e-2008-0410-955e-edbf42e46eb7
2010-01-09Remove mode counter, not reliable and only used for umode +idanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12246 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-16Use ServiceProvider for inter-module dependenciesdanieldg
This will stop dependency chains from preventing module reloads when it is not actually needed; however, it removes some failsafes that will need to be reimplemented in order to avoid unmapped vtables. This deprecates Request as an inter-module signaling mechanism, although SQL still uses it. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12140 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-15Add Inspircd::AddServicesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12135 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-15Add ParamChannelModeHandlerdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12134 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-15Add ModeHandler* versions of channel mode accessdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12133 e03df62e-2008-0410-955e-edbf42e46eb7
2009-11-03Remove AllowHalfop item from server configdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11996 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-24Get rid of ModePairdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11963 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-20Get rid of more unneeded parent classesdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11930 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-19Maintain refcount of Module objects to complain about leaked pointersdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11925 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17Make classbase and refcountbase uncopyable; expand comments on their ↵danieldg
indended uses git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11888 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-17Add ModeHandler::cull() for auto-deletion, fixes call of virtual method on ↵danieldg
partially-destructed object git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11883 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-13Remove Command and ModeHandler objects in their destructors; fixes possible ↵danieldg
pointer leak if a module was not careful when triggering exceptions in its constructor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11872 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-08Add names for all modes (part 1 of named channel mode list)danieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11809 e03df62e-2008-0410-955e-edbf42e46eb7
2009-10-05Run DelMode and DelModeWatcher in RemoveModuledanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11799 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26Change IS_FAKE and CheckTimeStamp to IS_SERVER and ResolveModeConflict to ↵danieldg
clarify their use git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11765 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-26Remove InspIRCd* parameters and fieldsdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11763 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Fix access checks on chanprotect preventing use of SAMODEdanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11717 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Remove redundant ServerInstance* fieldsdanieldg
It has been impossible to have more than one InspIRCd* object in the same address space for some time now, and this feature was never used. This formalizes class InspIRCd as a singleton object. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11703 e03df62e-2008-0410-955e-edbf42e46eb7
2009-09-13Simplify ModeHandler constructordanieldg
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11701 e03df62e-2008-0410-955e-edbf42e46eb7