- **Breaking:** /stats A output now follows the same format as other stats letters
- **Breaking:** helpops now uses +h instead of +H
- **Breaking:** sno\_whois and the spy\_ extensions have been removed
+- **Breaking:** Using /wallops now requires the oper:wallops privilege instead of oper:massnotice
- Opers now have their privset (identified by name) on remote servers
- Oper-only umodes are refreshed after rehash and /grant
- Extension modules can be reloaded
privset "global_op" {
extends = "local_op";
privs = oper:routing, oper:kline, oper:unkline, oper:xline,
- oper:resv, oper:cmodes, oper:mass_notice, oper:remoteban;
+ oper:resv, oper:cmodes, oper:mass_notice, oper:wallops,
+ oper:remoteban;
};
privset "admin" {
* channels etc. see /quote help operspy
* oper:hidden: hides the oper from /stats p
* oper:remoteban: allows remote kline etc
- * oper:mass_notice: allows sending wallops and mass notices
+ * oper:mass_notice: allows sending mass notices
+ * oper:wallops: allows sending wallops messages
* oper:grant: allows using the GRANT command
* usermode:servnotice: allows setting +s
*
privset "global_op" {
extends = "local_op";
privs = oper:routing, oper:kline, oper:unkline, oper:xline,
- oper:resv, oper:cmodes, oper:mass_notice, oper:remoteban;
+ oper:resv, oper:cmodes, oper:mass_notice, oper:wallops,
+ oper:remoteban;
};
privset "admin" {
Server sent WALLOPS go to all opers who are umode +w.
-- Requires Oper Priv: oper:mass_notice
+- Requires Oper Priv: oper:wallops
{
const char *prefix = "";
- if (MyClient(source_p) && !IsOperMassNotice(source_p))
+ if (MyClient(source_p) && !HasPrivilege(source_p, "oper:wallops"))
{
sendto_one(source_p, form_str(ERR_NOPRIVS),
- me.name, source_p->name, "mass_notice");
+ me.name, source_p->name, "wallops");
return;
}