summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-12-05 20:45:30 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-12-05 20:45:30 +0000
commit6deedb5c08c6a7bcecd227cb12982ddbeb6d354b (patch)
tree188df5623c9a63afea1cd486edb966dc75b15447 /src
parent7e0943ed0f790e55c83062402b196af9ecd7d22f (diff)
Added new OnKick stuff
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2201 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/inspircd.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index e3425c053..8f3bfbfc3 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -859,12 +859,12 @@ void kick_channel(userrec *src,userrec *user, chanrec *Ptr, char* reason)
int MOD_RESULT = 0;
FOREACH_RESULT(OnAccessCheck(src,user,Ptr,AC_KICK));
- if (MOD_RESULT == ACR_DENY)
+ if ((MOD_RESULT == ACR_DENY) && (!is_uline(src->server)))
return;
- if (MOD_RESULT == ACR_DEFAULT)
+ if ((MOD_RESULT == ACR_DEFAULT) || (!is_uline(src->server)))
{
- if (((cstatus(src,Ptr) < STATUS_HOP) || (cstatus(src,Ptr) < cstatus(user,Ptr))) && (!is_uline(src->server)))
+ if ((cstatus(src,Ptr) < STATUS_HOP) || (cstatus(src,Ptr) < cstatus(user,Ptr)))
{
if (cstatus(src,Ptr) == STATUS_HOP)
{
@@ -879,10 +879,13 @@ void kick_channel(userrec *src,userrec *user, chanrec *Ptr, char* reason)
}
}
- MOD_RESULT = 0;
- FOREACH_RESULT(OnUserPreKick(src,user,Ptr,reason));
- if (MOD_RESULT)
- return;
+ if (!is_uline(src->server))
+ {
+ MOD_RESULT = 0;
+ FOREACH_RESULT(OnUserPreKick(src,user,Ptr,reason));
+ if (MOD_RESULT)
+ return;
+ }
FOREACH_MOD OnUserKick(src,user,Ptr,reason);