- Channel* c = (Channel*)dest;
- active = c->IsModeSet(cc);
- ModResult res = CheckExemption::Call(exemptionprov, user, c, "censor");
+ case MessageTarget::TYPE_USER:
+ {
+ User* targuser = target.Get<User>();
+ if (!targuser->IsModeSet(cu))
+ return MOD_RES_PASSTHRU;
+
+ numeric = ERR_CANTSENDTOUSER;
+ targetname = targuser->nick.c_str();
+ break;
+ }
+
+ case MessageTarget::TYPE_CHANNEL:
+ {
+ Channel* targchan = target.Get<Channel>();
+ if (!targchan->IsModeSet(cc))
+ return MOD_RES_PASSTHRU;
+
+ ModResult result = CheckExemption::Call(exemptionprov, user, targchan, "censor");
+ if (result == MOD_RES_ALLOW)
+ return MOD_RES_PASSTHRU;