|
|
@@ -43,8 +43,8 @@ sanity_check(flag_t atr, int bot)
|
|
|
if (bot && (atr & (USER_PARTY | USER_MASTER | USER_OWNER | USER_ADMIN | USER_HUBA | USER_CHUBA)))
|
|
|
atr &= ~(USER_PARTY | USER_MASTER | USER_OWNER | USER_ADMIN | USER_HUBA | USER_CHUBA);
|
|
|
/* only bots should be there: */
|
|
|
- if (!bot && (atr & (BOT_DOLIMIT | BOT_DOVOICE | BOT_UPDATEHUB | BOT_CHANHUB)))
|
|
|
- atr &= ~(BOT_DOLIMIT | BOT_DOVOICE | BOT_UPDATEHUB | BOT_CHANHUB);
|
|
|
+ if (!bot && (atr & (BOT_DOLIMIT | BOT_DOVOICE | BOT_UPDATEHUB | BOT_CHANHUB | BOT_FLOODBOT )))
|
|
|
+ atr &= ~(BOT_DOLIMIT | BOT_DOVOICE | BOT_UPDATEHUB | BOT_CHANHUB | BOT_FLOODBOT );
|
|
|
if (atr & USER_AUTOOP)
|
|
|
atr |= USER_OP;
|
|
|
if ((atr & USER_OP) && (atr & USER_DEOP))
|
|
|
@@ -81,8 +81,8 @@ chan_sanity_check(flag_t chatr, int bot)
|
|
|
if (chatr & (USER_PARTY | USER_ADMIN | USER_HUBA | USER_CHUBA | BOT_UPDATEHUB))
|
|
|
chatr &= ~(USER_PARTY | USER_ADMIN | USER_HUBA | USER_CHUBA | BOT_UPDATEHUB);
|
|
|
/* these should only be set on bots */
|
|
|
- if (!bot && (chatr & (BOT_DOLIMIT | BOT_DOVOICE | BOT_CHANHUB)))
|
|
|
- chatr &= ~(BOT_DOLIMIT | BOT_DOVOICE | BOT_CHANHUB);
|
|
|
+ if (!bot && (chatr & (BOT_DOLIMIT | BOT_DOVOICE | BOT_CHANHUB | BOT_FLOODBOT )))
|
|
|
+ chatr &= ~(BOT_DOLIMIT | BOT_DOVOICE | BOT_CHANHUB | BOT_FLOODBOT );
|
|
|
|
|
|
if ((chatr & USER_OP) && (chatr & USER_DEOP))
|
|
|
chatr &= ~(USER_OP | USER_DEOP);
|
|
|
@@ -547,6 +547,20 @@ dovoice(struct chanset_t *chan)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+int
|
|
|
+doflood(struct chanset_t *chan)
|
|
|
+{
|
|
|
+ if (!chan)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ struct flag_record fr = { FR_GLOBAL | FR_CHAN | FR_BOT, 0, 0, 0 };
|
|
|
+
|
|
|
+ get_user_flagrec(conf.bot->u, &fr, chan->dname);
|
|
|
+ if (glob_doflood(fr) || chan_doflood(fr))
|
|
|
+ return 1;
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
int
|
|
|
dolimit(struct chanset_t *chan)
|
|
|
{
|