3240 Commits

Author SHA1 Message Date
brain
3f389a4bd9 Convert new +isw modes to new mode format
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4176 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:53:03 +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
brain
d40e1e5b0b Added usermodes +swi.
Note the usermode system needs a bit of a refactor to combine
module and core modes into the same storage neatly (as we did 
with channels) this is next on my todo.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4174 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 17:04:18 +00:00
brain
7bb5bcf772 Remove comemnted-out GiveVoice and TakeVoice
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4173 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 16:47:05 +00:00
brain
56917208cd Add cmode +v - that's all the RFC channel modes done now
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4172 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 16:46:05 +00:00
brain
4ca8c0649a Remove the TakeHops and GiveHops from comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4171 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 16:21:13 +00:00
brain
2d4621658d Add support for cmode +h
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4170 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 16:10:34 +00:00
brain
31404e424f Tidyup, and add numeric 472 "unknown mode char"
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4169 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 15:25:04 +00:00
brain
2b2677dec5 Fix for permissions :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4168 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 15:17:42 +00:00
brain
d2cc26fb37 Put back security checks so non-ops cant set modes again :p
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4167 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 15:14:11 +00:00
brain
5c45abc3fb Integrate +o into handlers
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4166 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 15:08:28 +00:00
brain
2f32d64790 Add cmode +o (op/deop) and in the process change a lot of char* to const char* to avoid unneccessary casts
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4165 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 15:05:33 +00:00
brain
ed351d92cf Convert the output limit back to the parameter
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4164 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 14:24:12 +00:00
brain
4260fd6227 Add channelmode +l
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4163 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 14:20:25 +00:00
brain
abe417a809 Add chmode +k, cut down includes in use in mode.cpp
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4162 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 14:03:05 +00:00
brain
fd411d067c ModeHandler documented
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4161 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 01:22:46 +00:00
brain
f13902ea0e Comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4160 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-08 00:41:01 +00:00
brain
40320969da Add support for channelmode +i
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4159 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:55:47 +00:00
brain
65d52bb763 Add cmode_n and cmode_t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4158 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:50:03 +00:00
brain
6a225f749e Typoed a const
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4157 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:47:32 +00:00
brain
7f4ee2f9f2 Add channel modes +n and +t
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4156 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:46:35 +00:00
brain
98562fe7b8 Save ourselves 3 dereferences
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4155 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:35:02 +00:00
brain
16abfa95be Clean 'removed' bans too
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4154 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 22:02:24 +00:00
brain
2bd16cd84f Tidier than a trinary op
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4153 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:53:22 +00:00
brain
21480d6f65 Move BanItem into the class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4152 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:51:33 +00:00
brain
3f50c9807a Remove the transposition of @ and ! stuff, doesnt work right and not a good enough idea to be worth fixing
Fix mode parser so that if a handler nukes its parameter to an empty string, but its said it MUST have a parameter
(e.g. +b or +L) then thats equivalent to MODEACTION_DENY as we cant do anything without the param. The whole mode
and its parameter get 'eaten' and the next character is moved to instead.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4151 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:40:37 +00:00
brain
ecaf407154 Avoid throwing a std::out_of_range exception when given a ban without ! or @ in it (whooops)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4150 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:34:46 +00:00
brain
92a5b10cc9 toomanyexclamation and toomanyat are no longer required here
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4149 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:25:47 +00:00
brain
5afabf1b3c Fix to check for colon (accidentally typed pos_of_dot)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4148 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:25:11 +00:00
brain
24d7bd0a26 Mask cleaning.
nick -> nick!*@*
nick!ident -> nick!ident@*
host.name -> *!*@host.name
ident@host.name -> *!ident@host.name
transposed @ and !, swap @ and ! to form proper n!u@h ordering
Hostname determined by containing a dot or a colon


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4147 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:24:44 +00:00
brain
d9f48b7560 Make +b use CleanMask()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4146 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:06:25 +00:00
brain
2fd5ed7aa9 Started work on ModeParser::CleanMask()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4145 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 21:03:00 +00:00
brain
53e8c67c58 Comments
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4144 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 20:50:25 +00:00
brain
eedeab3ded A bit more debugging
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4143 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 20:06:46 +00:00
brain
e955dd9c2e 'Activate' +m by putting it in the constructor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4142 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 20:04:55 +00:00
brain
adb17635ee Added cmode_m (channel mode +m)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4141 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 20:03:17 +00:00
brain
9e014442c5 Fix syntax example
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4140 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 19:21:52 +00:00
brain
60ee65c503 GCC defines and <hash_map> -> "hash_map.h"
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4138 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 19:03:18 +00:00
brain
2e6b07ea37 Tidy up space indents so Om and w00t dont murder me
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4137 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 18:47:24 +00:00
brain
8c78ebb3e8 Fix listmodes and modes with params
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4136 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 18:06:01 +00:00
brain
27edb86adb Add mode +b to active list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4135 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 18:00:12 +00:00
brain
acbcb143c2 fix channel mode +b
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4134 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 17:58:24 +00:00
brain
8f9d0a68cd Mode +b stuff, probably wont work yet
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4133 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 17:37:20 +00:00
brain
e82854fb09 Tidied up checking in ModeParser::AddMode() and added a humorous comment about modes like '^' and '_'.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4132 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:40:11 +00:00
brain
2d27d1f9f4 Add cmode_p (private)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4131 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:35:36 +00:00
brain
7577c2376c Initialize mode handlers and watchers to 0 in the constructor, or mucho pain can ensue
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4130 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:33:48 +00:00
brain
7666e1ad84 Aaaand, correct all the obligitary typos
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4129 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:29:42 +00:00
brain
a1af610ac1 Added masking stuff.
Basically, so that we can hold user modes and channel modes in the same list, we use bitwise masking.
We have a list of handlers, 256 in size 0 through 255, and to work out where a mode handler is dependent
on WHAT it is, we use this simple hashing algorithm (no collisions can occur):
(modeletter - 65) | mask
Where mask is 128 (10000000b) if its a user mode, or 0 (00000000b, duh) if its a channel mode.
Smart, and much faster than using a map of pairs.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4128 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:27:05 +00:00
brain
6b9d3c568d Added hashing stuff to hold both user and channel modes in the watcher/handler list
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4127 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:24:46 +00:00
brain
ace3781303 Mode parser WORKS! (for simple non-parameterized channel modes)
Tested with channel mode +s.


git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4126 e03df62e-2008-0410-955e-edbf42e46eb7
2006-07-07 15:04:36 +00:00