break;
}
+ if ((cmd->level & QCMD_ACHIEVEMENTS) && !UIsDev(rup) &&
+ ((time(NULL) < ACHIEVEMENTS_START) ||
+ ((time(NULL) > ACHIEVEMENTS_END) && !UIsAchievements(rup)))) {
+ chanservstdmessage(sender, QM_UNKNOWNCMD, cargv[0]);
+ break;
+ }
+
+ if ((cmd->level & QCMD_TITLES) && !UIsDev(rup) &&
+ ((time(NULL) < ACHIEVEMENTS_START) ||
+ (time(NULL) > ACHIEVEMENTS_END))) {
+ chanservstdmessage(sender, QM_UNKNOWNCMD, cargv[0]);
+ break;
+ }
+
cmd->calls++;
if (cmd->maxparams < (cargc-1)) {
}
cmd->handler((void *)sender, cargc-1, &(cargv[1]));
+
+ triggerhook(HOOK_CHANSERV_CMD, sender);
}
break;
continue;
}
- if (CUKnown(rcup) && rcup->chan->index->channel->users->totalusers >= 3) {
+ if (CUHasOpPriv(rcup) && cs_ischannelactive(rcup->chan->index->channel, NULL)) {
/* This meets the channel use criteria, update. */
rcup->chan->lastactive=time(NULL);
}
}
-
localsetmodeinit(&changes, rcup->chan->index->channel, chanservnick);
if (*lp & CUMODE_OP) {
if (!IsService(np) && (CUIsDeny(rcup) || (CIsBitch(rcup->chan) && !CUHasOpPriv(rcup))))
} else {
/* Channel exists but user is not joined: invite if they are +j-b */
if (CUIsAutoInvite(rcup) && CUKnown(rcup) && !CUIsBanned(rcup)) {
- localinvite(chanservnick, rcup->chan->index->channel, np);
+ localinvite(chanservnick, rcup->chan->index, np);
}
}
- }
- }
+ } /* if (rcup->chan->index->channel) */ else {
+ /* Channel doesn't currently exist - send invite anyway for +j */
+ if (CUIsAutoInvite(rcup) && CUKnown(rcup) && !CUIsBanned(rcup)) {
+ localinvite(chanservnick, rcup->chan->index, np);
+ }
+ }
+ } /* for */
}
void cs_checknickbans(nick *np) {