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