summaryrefslogtreecommitdiff
path: root/include/mode.h
Commit message (Collapse)AuthorAgeFilesLines
* Update all wiki links to point to the new wiki. This was done automatically ↵Gravatar psychon2009-03-151-1/+1
| | | | | | | | | with the following command, only .Makefile.inc got some indent fixups by hand. for file in $(find -type f -and -not -path '*/.svn/*' -and -not -name '*.so') ; do sed -e 's#http://www.inspircd.org/wiki#http://wiki.inspircd.org#' -e 's#http://wiki.inspircd.org/index.php/#http://wiki.inspircd.org/#' -i $file ; done git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11223 e03df62e-2008-0410-955e-edbf42e46eb7
* Include explicit parameter list in ProtocolInterface::SendModeGravatar danieldg2009-03-071-0/+4
| | | | | | | Also leave the strings split into deque, there's no need to pack it into a string just to unpack it during the translate. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11181 e03df62e-2008-0410-955e-edbf42e46eb7
* Construct explicit parameter type list for MODE parametersGravatar danieldg2009-03-061-2/+12
| | | | | | | | | | | | Previously, we used TR_SPACENICKLIST on the parameters. This worked only because usually, if anything in the list parsed as a nick, then it was a nick. However, some modes like +k and +g allow free-form text, which could also resolve as a nick. Add extra parameters to allow modes to specify their TranslateType, defaulting to TR_TEXT. This fixes bug #757, found by Taros git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11180 e03df62e-2008-0410-955e-edbf42e46eb7
* Nuke trailing spacesGravatar peavey2009-02-141-5/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11105 e03df62e-2008-0410-955e-edbf42e46eb7
* Update copyrights for 2009.Gravatar w00t2009-01-021-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10932 e03df62e-2008-0410-955e-edbf42e46eb7
* Add user/channel mode synchronisation detection to CAPAB - link will now ↵Gravatar w00t2008-10-271-2/+7
| | | | | | | | | | drop if modes differ in some way (one side requires param, other doesn't, etc). Same for user modes. This will not affect services. Side effect: Modes::ChanModes() -> Modes::GiveModeList(ModeMasks), mode list is formatted identically for both MASK_CHANNEL and MASK_USER. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10733 e03df62e-2008-0410-955e-edbf42e46eb7
* Whoops, left off a virtual. Please ensure youre using this version if you ↵Gravatar brain2008-08-311-1/+1
| | | | | | actually want mode params to be propogated git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10366 e03df62e-2008-0410-955e-edbf42e46eb7
* Move all the parameters around AGAIN. See docs shortlyGravatar brain2008-08-311-0/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10364 e03df62e-2008-0410-955e-edbf42e46eb7
* Add OnParameterMissing to modehandler, called when the mode handler should ↵Gravatar brain2008-08-171-0/+8
| | | | | | have a parameter, but the parser found none git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10149 e03df62e-2008-0410-955e-edbf42e46eb7
* Update comments for new apiGravatar brain2008-05-041-1/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9610 e03df62e-2008-0410-955e-edbf42e46eb7
* Conversion of command handler params from "const char* const* parameters, ↵Gravatar brain2008-05-041-1/+1
| | | | | | | | | | int pcnt" to "const std::vector<std::string>& parameters". All of core is converted, but cant test it till the modules are converted. IMPORTANT: The mode parser public calls have had to be tweaked a bit to also use the string vector. Note that this makes a LOT of our core a bit messy and paves the way to convert a lot of stuff from the mess of .c_str() calls to using std::string params directly. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9608 e03df62e-2008-0410-955e-edbf42e46eb7
* Optimize MODE #chan b etc, avoid a 256 byte memset for duplicate mode checksGravatar brain2008-05-021-0/+4
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9601 e03df62e-2008-0410-955e-edbf42e46eb7
* Simple user/channel mode patchGravatar brain2008-05-011-0/+26
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9596 e03df62e-2008-0410-955e-edbf42e46eb7
* Fixes for bug #493, tidyups to clearing of channel modes on losing FJOIN. ↵Gravatar brain2008-04-021-2/+2
| | | | | | Module unloads may also be tidied at a future date but it means reordering some loops in mode.cpp. See around the comment added. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9283 e03df62e-2008-0410-955e-edbf42e46eb7
* Add an optional bool to ModeParser::ModeString() to not give the nickname n ↵Gravatar brain2008-04-011-1/+3
| | | | | | times on the end of the string. This can be used for w00ts funky stuff. :-) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9242 e03df62e-2008-0410-955e-edbf42e46eb7
* Add ability to control what opertypes can set what operonly user/chan modes. ↵Gravatar aquanight2008-03-231-0/+5
| | | | | | This works the same way as commands, in that modes allowed by classes are added together, and * allows all. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9176 e03df62e-2008-0410-955e-edbf42e46eb7
* Wheee, mass commit! this adds const stafety, throwing a compile error if ↵Gravatar brain2008-02-201-1/+1
| | | | | | | | | anyone does: "parameters[n] = blahvar;" in a command handler etc. where they REALLY SHOULD NOT fuck with the value and should copy the pointer. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8971 e03df62e-2008-0410-955e-edbf42e46eb7
* Someone please help me fix the warnings in modules caused by this change. ↵Gravatar brain2008-02-181-3/+3
| | | | | | All mode handler OnMode events, ModeWatcher::BeforeMode/AfterMode, plus OnRawMode now have a bool servermode parameter git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8964 e03df62e-2008-0410-955e-edbf42e46eb7
* New mode stuff. Note, the framework is now here so that every mode handler ↵Gravatar brain2008-02-141-1/+10
| | | | | | | | | | can state what prefix is required to execute it. For example: You can say that mode +j needs '%' to execute it, so that then only a halfop or above can use mode +j. If you put '@' in this member value, only ops and above can use it. The OnRawMode can return ACR_ALLOW on a case by case basis to totally override this check against the prefix char. If you return ACR_DEFAULT the check goes ahead. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8935 e03df62e-2008-0410-955e-edbf42e46eb7
* Clear up header insanityGravatar w00t2008-02-031-7/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8808 e03df62e-2008-0410-955e-edbf42e46eb7
* Header update: 2007 -> 2008Gravatar w00t2008-01-101-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove some unnecessary headers from places, commit working BanCacheManager ↵Gravatar w00t2007-11-041-3/+0
| | | | | | skeleton. Work in progress, ignore it for now. Doesn't do anything, either. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8487 e03df62e-2008-0410-955e-edbf42e46eb7
* pedantic safeGravatar brain2007-10-231-4/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8316 e03df62e-2008-0410-955e-edbf42e46eb7
* In the grand tradition of huge fucking commits:Gravatar w00t2007-10-151-18/+18
| | | | | | | | - chanrec -> Channel - userrec -> User Enjoy. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
* Proper fix for end-of-list numerics on restricted lists in bug #386, rather ↵Gravatar brain2007-08-261-1/+9
| | | | | | than a hackish nonmodular one. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7838 e03df62e-2008-0410-955e-edbf42e46eb7
* OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.Gravatar peavey2007-07-161-1/+519
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
* 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are ↵Gravatar peavey2007-07-161-519/+1
| | | | | | auto skipped by svn. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
* More commentsGravatar brain2007-06-171-0/+15
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7381 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix std::sort stuff for w00tGravatar brain2007-05-191-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7050 e03df62e-2008-0410-955e-edbf42e46eb7
* Windows support. Tested and working to compile on freebsd and linux. Next ↵Gravatar w00t2007-05-191-3/+3
| | | | | | step is to make sure it actually works in windows too. ;p. Add Burlex to contributors. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7043 e03df62e-2008-0410-955e-edbf42e46eb7
* Fix lusers breakage introduced by latest set of optimizationsGravatar brain2007-01-031-0/+3
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6219 e03df62e-2008-0410-955e-edbf42e46eb7
* This doesnt need to be staticGravatar brain2006-12-291-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6164 e03df62e-2008-0410-955e-edbf42e46eb7
* Add counter system for umodes to get rid of some O(n)Gravatar brain2006-12-291-0/+7
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6163 e03df62e-2008-0410-955e-edbf42e46eb7
* And now, just to force you to recompile the *whole* ircd.. updated headers ↵Gravatar w00t2006-12-151-6/+3
| | | | | | on the headers. :p git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5998 e03df62e-2008-0410-955e-edbf42e46eb7
* Make SAMODE oper output tidierGravatar brain2006-09-091-0/+11
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5184 e03df62e-2008-0410-955e-edbf42e46eb7
* Add /RELOAD and move cmd_mode into its own command.Gravatar brain2006-09-031-14/+0
| | | | | | | /RELOAD is the only thing you cant reload (ahem) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5119 e03df62e-2008-0410-955e-edbf42e46eb7
* Allow unloading of modules which implement modes!Gravatar brain2006-09-021-0/+29
| | | | | | | The default implementation of the new system will remove simplemodes so any mode handler which is just a simple mode (no params and not a list mode) does not need to add much more than one line of code and remove its VF_STATIC flag. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5100 e03df62e-2008-0410-955e-edbf42e46eb7
* *thwap* om for not fixing the bugs he finds :pGravatar brain2006-08-311-1/+1
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5087 e03df62e-2008-0410-955e-edbf42e46eb7
* Remove a ton of <typeinfo>, <iostream>, <sstream> etc that we usually never useGravatar brain2006-08-301-3/+0
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5081 e03df62e-2008-0410-955e-edbf42e46eb7
* Add <options:cyclehosts> which allows a user to appear to have quit when ↵Gravatar brain2006-08-251-0/+10
| | | | | | | | | 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
* ModeParser::InsertMode is no longer required -- this is auto-generated by ↵Gravatar brain2006-08-231-4/+5
| | | | | | the ModeParser based on what modes are registered and wether or not they have certain attributes git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5007 e03df62e-2008-0410-955e-edbf42e46eb7
* Document ModeParser::FindPrefix() and chanrec::GetAllPrefixes()Gravatar brain2006-08-231-40/+25
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5006 e03df62e-2008-0410-955e-edbf42e46eb7
* Multi-prefix FJOIN, and allowing module-defined prefixes across the networkGravatar brain2006-08-231-0/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5002 e03df62e-2008-0410-955e-edbf42e46eb7
* More prefixchar stuff.Gravatar brain2006-08-231-0/+7
| | | | | | | WARNING: 005 numeric is broken in this commit. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5000 e03df62e-2008-0410-955e-edbf42e46eb7
* Document mode prefixesGravatar brain2006-08-231-2/+33
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4999 e03df62e-2008-0410-955e-edbf42e46eb7
* Mode handlers handling listmodes where a listmode item is a nickname can now ↵Gravatar brain2006-08-231-5/+28
| | | | | | | | | specify prefixes!!!!!! This isnt documented yet. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4997 e03df62e-2008-0410-955e-edbf42e46eb7
* Explain what ModeParser doesGravatar brain2006-08-121-0/+5
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4907 e03df62e-2008-0410-955e-edbf42e46eb7
* (Bigger than it looks, i did this with perl inplace edit) -- commands now ↵Gravatar brain2006-08-111-1/+1
| | | | | | take an InspIRCd* param to their constructor, so that you can do stuff within them without an extern git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4862 e03df62e-2008-0410-955e-edbf42e46eb7
* So much stuff changed in this one, i forgot most of it.Gravatar brain2006-08-101-6/+11
| | | | | | | Oh yeah, main thing is ModeHandler and ModeWatcher classes now take an InspIRCd* to their constructor git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4858 e03df62e-2008-0410-955e-edbf42e46eb7
* Move InsertMode into ModeParserGravatar brain2006-08-101-0/+2
| | | | git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4849 e03df62e-2008-0410-955e-edbf42e46eb7