+ private:
+ SimpleUserModeHandler mode;
+
+ ModResult HandleMessage(User* user, const MessageTarget& target)
+ {
+ if (target.type != MessageTarget::TYPE_USER)
+ return MOD_RES_PASSTHRU;
+
+ User* targuser = target.Get<User>();
+ if (!targuser->IsModeSet(mode) || user->SharesChannelWith(targuser))
+ return MOD_RES_PASSTHRU;
+
+ if (user->HasPrivPermission("users/ignore-commonchans") || user->server->IsULine())
+ return MOD_RES_PASSTHRU;
+
+ user->WriteNumeric(ERR_CANTSENDTOUSER, targuser->nick, "You are not permitted to send private messages to this user (+c is set)");
+ return MOD_RES_DENY;
+ }
+