+ 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(Numerics::CannotSendTo(targuser, "messages", &mode));
+ return MOD_RES_DENY;
+ }
+