I was wondering about the logic used for handling HACK2 kicks.
The hack2 kick is only sent to SNO_HACK2 in case the user can be rejoined, but should it not always report it? That is, check if the victim can be rejoined further down where the join is sent.
The source user is only deopped in case the victim is voiced or opped (even if the source user is not on the channel), should it not always deop the source user to correct the desynch? (provided that the source user is actually on the channel).
Also, no hack type is included for kicks in the snomask message, like is done for modes. Is this on purpose since a server as source is hack4, and a user as source is hack2? Perhaps it would be more consitent to include the hack type there too.