80 Commits

Author SHA1 Message Date
brain
5b4e92cc2c Add an optional bool to ModeParser::ModeString() to not give the nickname n 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
2008-04-01 16:25:02 +00:00
aquanight
743c10e4ca Add ability to control what opertypes can set what operonly user/chan modes. 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
2008-03-23 20:43:35 +00:00
brain
dd36852a52 Wheee, mass commit! this adds const stafety, throwing a compile error if 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
2008-02-20 19:07:07 +00:00
brain
32a26fa539 Someone please help me fix the warnings in modules caused by this change. 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
2008-02-18 16:55:27 +00:00
brain
91a8894d5d New mode stuff. Note, the framework is now here so that every mode handler 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
2008-02-14 18:24:28 +00:00
w00t
f127161467 Clear up header insanity
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8808 e03df62e-2008-0410-955e-edbf42e46eb7
2008-02-03 23:20:20 +00:00
w00t
e4acbc95b8 Header update: 2007 -> 2008
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8694 e03df62e-2008-0410-955e-edbf42e46eb7
2008-01-10 13:27:07 +00:00
w00t
ae888e9cf9 Remove some unnecessary headers from places, commit working BanCacheManager 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
2007-11-04 00:44:28 +00:00
brain
08e3151057 pedantic safe
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8316 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-23 19:55:47 +00:00
w00t
b57c7f4e46 In the grand tradition of huge fucking commits:
- chanrec -> Channel
 - userrec -> User
Enjoy.

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8204 e03df62e-2008-0410-955e-edbf42e46eb7
2007-10-15 20:59:05 +00:00
brain
644c5992ca Proper fix for end-of-list numerics on restricted lists in bug #386, rather than a hackish nonmodular one.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7838 e03df62e-2008-0410-955e-edbf42e46eb7
2007-08-26 21:01:04 +00:00
peavey
f2acdbc382 OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7456 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16 17:30:04 +00:00
peavey
bab14f0dd2 'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipped by svn.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
2007-07-16 17:14:45 +00:00
brain
ad2829e7c4 More comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7381 e03df62e-2008-0410-955e-edbf42e46eb7
2007-06-17 19:18:17 +00:00
brain
4874c63f73 Fix std::sort stuff for w00t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7050 e03df62e-2008-0410-955e-edbf42e46eb7
2007-05-19 18:32:23 +00:00
w00t
9cf56d917d Windows support. Tested and working to compile on freebsd and linux. Next 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
2007-05-19 15:56:42 +00:00
brain
2802a62272 Fix lusers breakage introduced by latest set of optimizations
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6219 e03df62e-2008-0410-955e-edbf42e46eb7
2007-01-03 20:58:21 +00:00
brain
500a6b24b2 This doesnt need to be static
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6164 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-29 23:35:35 +00:00
brain
5e9a6b9186 Add counter system for umodes to get rid of some O(n)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@6163 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-29 23:34:47 +00:00
w00t
696ee9ff66 And now, just to force you to recompile the *whole* ircd.. updated headers on the headers. :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5998 e03df62e-2008-0410-955e-edbf42e46eb7
2006-12-15 22:18:59 +00:00
brain
be60fccc6c Make SAMODE oper output tidier
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5184 e03df62e-2008-0410-955e-edbf42e46eb7
2006-09-09 15:29:42 +00:00
brain
540f3bd9da Add /RELOAD and move cmd_mode into its own command.
/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
2006-09-03 00:44:11 +00:00
brain
7f9c5d0bb0 Allow unloading of modules which implement modes!
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
2006-09-02 15:50:29 +00:00
brain
7ce952d2b8 *thwap* om for not fixing the bugs he finds :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5087 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-31 11:00:35 +00:00
brain
5b8d2c4cab Remove a ton of <typeinfo>, <iostream>, <sstream> etc that we usually never use
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5081 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-30 09:51:50 +00:00
brain
a93e436b03 Add <options:cyclehosts> 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
2006-08-25 13:42:19 +00:00
brain
3382adb9e9 ModeParser::InsertMode is no longer required -- this is auto-generated by 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
2006-08-23 22:34:58 +00:00
brain
932f1a6bc5 Document ModeParser::FindPrefix() and chanrec::GetAllPrefixes()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5006 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23 22:03:05 +00:00
brain
ea3ba4bfd1 Multi-prefix FJOIN, and allowing module-defined prefixes across the network
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5002 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23 21:34:04 +00:00
brain
594d430ee4 More prefixchar stuff.
WARNING: 005 numeric is broken in this commit.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5000 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23 21:09:49 +00:00
brain
1b87725fef Document mode prefixes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4999 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23 20:50:20 +00:00
brain
8b864c8a82 Mode handlers handling listmodes where a listmode item is a nickname can now specify prefixes!!!!!!
This isnt documented yet.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4997 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-23 20:20:41 +00:00
brain
0771566143 Explain what ModeParser does
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4907 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-12 01:19:25 +00:00
brain
66098d307c (Bigger than it looks, i did this with perl inplace edit) -- commands now 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
2006-08-11 00:15:07 +00:00
brain
f9636a2eff So much stuff changed in this one, i forgot most of it.
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
2006-08-10 22:40:57 +00:00
brain
e51a4b5c29 Move InsertMode into ModeParser
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4849 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-10 18:43:15 +00:00
brain
c6934754b0 Dynamically generate 004 numeric from the modehandler list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4665 e03df62e-2008-0410-955e-edbf42e46eb7
2006-08-03 11:17:03 +00:00
brain
dc8f5d02f7 Add support for syntax of commands in place of the text 'Not enough parameters' in numeric 461, where supported.
To support this each derived class of command_t must set the value of command_t::syntax to a non-empty string.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4561 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-28 00:13:41 +00:00
brain
a1f073f66f Change std::pair<bool,std::string> to neater typedef "ModePair"
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4557 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-27 19:40:47 +00:00
brain
98a92e20f1 Mode merging during FJOIN with ourts==theirts. Only +k and +l have CheckTimestamp methods atm, needs to be finished by me and TIDIED.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4556 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-27 17:59:20 +00:00
brain
feb7185050 commit remainder of new mode bouncing stuff for TS based modes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4550 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-27 02:33:00 +00:00
brain
f4d202cdbb Add extra method to mode handler, ModeHandler::ModeSet().
Returns a std::pair<bool,string>.
if the bool is true, the mode is set, and the second item in the pair is the parameter set on it, if any
If the bool is false, the mode is not set, and the parameter given is returned as the second item of the pair

To be used in mode bouncing, to build a safe set of bounced modes (dont ask yet)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4549 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-26 21:54:36 +00:00
brain
0757a4a495 mass tidyup, change A LOT of stuff to const char** which was char** (such as parameters to commands in handlers)
which makes the new lineparser work neater with no casts. This also removes tons of casts from other locations
(all in all, ive added 2 casts and removed almost a hundred)


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4403 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-16 12:18:29 +00:00
brain
62b550f653 Inherit tons of stuff from classbase that should always have been
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4298 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:54:25 +00:00
brain
3dacf1edd2 Made a load more stuff Extensible which might be of use to someone
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4293 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 18:22:16 +00:00
brain
db75baa96d Added ModeParser::AddModeWatcher() and ModeParser::DelModeWatcher()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4266 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-10 12:46:03 +00:00
brain
b4cbd36f1c Finally finished documenting new mode parser. Lots of comments.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4242 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-09 19:22:04 +00:00
brain
793d2364d9 Convert u_listmode and m_banexception to new api
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4189 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 20:57:24 +00:00
brain
5bbea4813d Added DisplayCurrentModes which will display the modes of a channel or nick
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4181 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 18:22:34 +00:00
brain
33ed72a1df Refactored user modes to work like the channel modes - core and module data now the same storage format without ::modebits
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4175 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:44:16 +00:00