Security: tune the Join Gate, raid mode, anti-nuke and heat with commands
- /security settings, joingate check|account-age, words add|remove|list, raid, antinuke set|limit, heat, alert-dms - Same rule as the rest of the configuration: owner or trusted, validated in the engine - schema.sql was missing security_settings.alert_dm, so the bot couldn't read security settings on a database built from it. Fixed, with an ALTER for existing installs - A test checks every command against Discord's limits Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
1 parent
5657d0789a
commit
d95ebf473e
10 files changed
+1020
-4
No files matched your search
@@ -288,6 +288,8 @@ CREATE TABLE IF NOT EXISTS security_settings (
|
||||
-- Where alerts go, and who gets pinged for raids and nukes.
|
||||
alert_channel_id BIGINT,
|
||||
alert_role_id BIGINT,
|
||||
-- Also DM critical alerts to the owner and trusted users.
|
||||
alert_dm BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
|
||||
-- Join Gate: checks run on every join, each with its own action.
|
||||
joingate_enabled BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
@@ -348,6 +350,9 @@ CREATE TABLE IF NOT EXISTS security_settings (
|
||||
-- Join lockdown (/lockdown joins): every new member is kicked or banned.
|
||||
join_lock TEXT NOT NULL DEFAULT 'off' CHECK (join_lock IN ('off', 'kick', 'ban'))
|
||||
);
|
||||
-- Servers set up before alert_dm existed get it here (CREATE TABLE IF NOT EXISTS
|
||||
-- doesn't change an existing table).
|
||||
ALTER TABLE security_settings ADD COLUMN IF NOT EXISTS alert_dm BOOLEAN NOT NULL DEFAULT TRUE;
|
||||
|
||||
-- Users and roles exempt from anti-nuke, who may also manage its settings.
|
||||
-- The server owner is always trusted and never listed here.
|
||||
|
||||
Reference in new issue
Block a user