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:
@@ -3,6 +3,7 @@ import { z } from 'zod';
|
||||
export * from './audit.js';
|
||||
export * from './command-locales.js';
|
||||
export * from './discord-localization.js';
|
||||
export * from './phase2.js';
|
||||
|
||||
export const LocaleSchema = z.enum(['de', 'en']);
|
||||
export type Locale = z.infer<typeof LocaleSchema>;
|
||||
@@ -66,7 +67,32 @@ const de: Dictionary = {
|
||||
'moderation.confirm.caseDelete': 'Fall #{caseNumber} wirklich löschen?',
|
||||
'moderation.confirm.expired': 'Bestätigung abgelaufen. Bitte den Befehl erneut ausführen.',
|
||||
'moderation.confirm.cancelled': 'Aktion abgebrochen.',
|
||||
'moderation.confirm.unauthorized': 'Nur der ausführende Moderator kann diese Bestätigung nutzen.'
|
||||
'moderation.confirm.unauthorized': 'Nur der ausführende Moderator kann diese Bestätigung nutzen.',
|
||||
'automod.status.header':
|
||||
'**AutoMod enabled:** {enabled}\n**Anti-raid:** {antiRaid}\n**Anti-nuke:** {antiNuke}\n**Lockdown:** {lockdown}',
|
||||
'automod.status.ruleLine': '- {type} → {action}',
|
||||
'automod.status.noRules': 'Keine aktiven Regeln.',
|
||||
'automod.status.yes': 'ja',
|
||||
'automod.status.no': 'nein',
|
||||
'welcome.notConfigured': 'Willkommensnachricht ist noch nicht konfiguriert.',
|
||||
'welcome.invalidChannel': 'Der konfigurierte Willkommenskanal ist ungültig.',
|
||||
'welcome.testSent': 'Test-Willkommensnachricht gesendet.',
|
||||
'verification.disabled': 'Verifizierung ist deaktiviert.',
|
||||
'verification.success': 'Du wurdest erfolgreich verifiziert.',
|
||||
'verification.setupDone': 'Verifizierung konfiguriert.',
|
||||
'verification.notConfigured': 'Verifizierung ist noch nicht eingerichtet. Nutze `/verify setup`.',
|
||||
'verification.invalidChannel': 'Der Verifizierungskanal ist ungültig.',
|
||||
'verification.panelPosted': 'Verifizierungs-Panel gepostet.',
|
||||
'verification.captchaLink': 'Öffne diesen Link zur Captcha-Verifizierung: {url}',
|
||||
'verification.error.not_configured': 'Verifizierung ist nicht konfiguriert.',
|
||||
'verification.error.member_not_found': 'Mitglied nicht gefunden.',
|
||||
'verification.error.account_too_young': 'Dein Account ist zu jung für die Verifizierung.',
|
||||
'verification.error.missing_permissions': 'Dem Bot fehlen Berechtigungen.',
|
||||
'verification.error.invalid_role': 'Die Verifizierungsrolle ist ungültig.',
|
||||
'verification.error.generic': 'Verifizierung fehlgeschlagen.',
|
||||
'verification.captcha.success': 'Captcha bestanden. Du wurdest verifiziert.',
|
||||
'verification.captcha.invalid': 'Captcha ungültig oder abgelaufen.',
|
||||
'verification.captcha.title': 'Nexumi Verifizierung'
|
||||
};
|
||||
const en: Dictionary = {
|
||||
'generic.noPermission': 'You do not have permission for this action.',
|
||||
@@ -97,7 +123,32 @@ const en: Dictionary = {
|
||||
'moderation.confirm.caseDelete': 'Really delete case #{caseNumber}?',
|
||||
'moderation.confirm.expired': 'Confirmation expired. Please run the command again.',
|
||||
'moderation.confirm.cancelled': 'Action cancelled.',
|
||||
'moderation.confirm.unauthorized': 'Only the moderator who started this action can confirm it.'
|
||||
'moderation.confirm.unauthorized': 'Only the moderator who started this action can confirm it.',
|
||||
'automod.status.header':
|
||||
'**AutoMod enabled:** {enabled}\n**Anti-raid:** {antiRaid}\n**Anti-nuke:** {antiNuke}\n**Lockdown:** {lockdown}',
|
||||
'automod.status.ruleLine': '- {type} → {action}',
|
||||
'automod.status.noRules': 'No active rules.',
|
||||
'automod.status.yes': 'yes',
|
||||
'automod.status.no': 'no',
|
||||
'welcome.notConfigured': 'Welcome message is not configured yet.',
|
||||
'welcome.invalidChannel': 'The configured welcome channel is invalid.',
|
||||
'welcome.testSent': 'Test welcome message sent.',
|
||||
'verification.disabled': 'Verification is disabled.',
|
||||
'verification.success': 'You have been verified successfully.',
|
||||
'verification.setupDone': 'Verification configured.',
|
||||
'verification.notConfigured': 'Verification is not set up yet. Use `/verify setup`.',
|
||||
'verification.invalidChannel': 'The verification channel is invalid.',
|
||||
'verification.panelPosted': 'Verification panel posted.',
|
||||
'verification.captchaLink': 'Open this link to complete captcha verification: {url}',
|
||||
'verification.error.not_configured': 'Verification is not configured.',
|
||||
'verification.error.member_not_found': 'Member not found.',
|
||||
'verification.error.account_too_young': 'Your account is too young to verify.',
|
||||
'verification.error.missing_permissions': 'Bot lacks permissions.',
|
||||
'verification.error.invalid_role': 'Verification role is invalid.',
|
||||
'verification.error.generic': 'Verification failed.',
|
||||
'verification.captcha.success': 'Captcha passed. You have been verified.',
|
||||
'verification.captcha.invalid': 'Captcha invalid or expired.',
|
||||
'verification.captcha.title': 'Nexumi Verification'
|
||||
};
|
||||
|
||||
const locales: Record<Locale, Dictionary> = { de, en };
|
||||
|
||||
Reference in New Issue
Block a user