Enhance bot functionality with AutoMod, Logging, Welcome, and Verification features
- Implemented AutoMod capabilities including spam filtering, anti-raid, and anti-nuke actions. - Added Logging module to track moderation actions and events across the bot. - Introduced Welcome module for customizable welcome messages and autoroles. - Developed Verification system with captcha and role assignment features. - Updated Prisma schema to include new models for AutoMod, Logging, Welcome, and Verification. - Enhanced command localization for new features in both German and English. - Improved health server to handle captcha verification requests. - Added new environment variable for public base URL to support captcha links.
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "AutoModConfig" (
|
||||
"id" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"antiRaidEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"antiRaidJoinThreshold" INTEGER NOT NULL DEFAULT 10,
|
||||
"antiRaidWindowSeconds" INTEGER NOT NULL DEFAULT 10,
|
||||
"antiRaidAction" TEXT NOT NULL DEFAULT 'LOCKDOWN',
|
||||
"antiNukeEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"antiNukeBanThreshold" INTEGER NOT NULL DEFAULT 5,
|
||||
"antiNukeChannelThreshold" INTEGER NOT NULL DEFAULT 3,
|
||||
"antiNukeWindowSeconds" INTEGER NOT NULL DEFAULT 60,
|
||||
"lockdownActive" BOOLEAN NOT NULL DEFAULT false,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "AutoModConfig_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "AutoModRule" (
|
||||
"id" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"ruleType" TEXT NOT NULL,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"action" TEXT NOT NULL DEFAULT 'DELETE',
|
||||
"threshold" JSONB,
|
||||
"exceptions" JSONB,
|
||||
"wordList" JSONB,
|
||||
"durationMs" INTEGER,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "AutoModRule_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "LoggingConfig" (
|
||||
"id" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||
"ignoreBots" BOOLEAN NOT NULL DEFAULT true,
|
||||
"ignoredChannelIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
"ignoredRoleIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "LoggingConfig_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "LogChannel" (
|
||||
"id" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"eventType" TEXT NOT NULL,
|
||||
"channelId" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "LogChannel_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "WelcomeConfig" (
|
||||
"id" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"welcomeEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"leaveEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"welcomeChannelId" TEXT,
|
||||
"leaveChannelId" TEXT,
|
||||
"welcomeType" TEXT NOT NULL DEFAULT 'TEXT',
|
||||
"welcomeContent" TEXT,
|
||||
"welcomeEmbed" JSONB,
|
||||
"leaveContent" TEXT,
|
||||
"leaveEmbed" JSONB,
|
||||
"welcomeDmEnabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"welcomeDmContent" TEXT,
|
||||
"userAutoroleIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
"botAutoroleIds" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||||
"imageTitle" TEXT,
|
||||
"imageSubtitle" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "WelcomeConfig_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "VerificationConfig" (
|
||||
"id" TEXT NOT NULL,
|
||||
"guildId" TEXT NOT NULL,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"channelId" TEXT,
|
||||
"verifiedRoleId" TEXT,
|
||||
"unverifiedRoleId" TEXT,
|
||||
"mode" TEXT NOT NULL DEFAULT 'BUTTON',
|
||||
"minAccountAgeDays" INTEGER NOT NULL DEFAULT 0,
|
||||
"failAction" TEXT NOT NULL DEFAULT 'KICK',
|
||||
"panelChannelId" TEXT,
|
||||
"panelMessageId" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "VerificationConfig_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "AutoModConfig_guildId_key" ON "AutoModConfig"("guildId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "AutoModRule_guildId_enabled_idx" ON "AutoModRule"("guildId", "enabled");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "AutoModRule_guildId_ruleType_key" ON "AutoModRule"("guildId", "ruleType");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LoggingConfig_guildId_key" ON "LoggingConfig"("guildId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "LogChannel_guildId_idx" ON "LogChannel"("guildId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "LogChannel_guildId_eventType_key" ON "LogChannel"("guildId", "eventType");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "WelcomeConfig_guildId_key" ON "WelcomeConfig"("guildId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "VerificationConfig_guildId_key" ON "VerificationConfig"("guildId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "AutoModConfig" ADD CONSTRAINT "AutoModConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "AutoModRule" ADD CONSTRAINT "AutoModRule_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "LoggingConfig" ADD CONSTRAINT "LoggingConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "LogChannel" ADD CONSTRAINT "LogChannel_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "WelcomeConfig" ADD CONSTRAINT "WelcomeConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "VerificationConfig" ADD CONSTRAINT "VerificationConfig_guildId_fkey" FOREIGN KEY ("guildId") REFERENCES "Guild"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user