feat: implement modular discord bot with twitch monitoring, sqlite database, and owner tools
All checks were successful
Auto Build and Push Docker Image / build (push) Successful in 9s

Features:
- Modular command and event loading system
- Persistent SQLite database (better-sqlite3)
- Twitch Helix API monitoring with live notifications
- Auto-responder system with message context menu support
- Owner-only administrative tools (stats, servers, leave, deploy)
- Role-based help system
- Docker and Docker Compose integration
This commit is contained in:
2026-03-21 00:29:59 +01:00
parent ceaeabf57a
commit 9b015f5d25
3 changed files with 8 additions and 14 deletions

View File

@@ -26,7 +26,8 @@ const command: Command = {
const ownerCmds: string[] = []; const ownerCmds: string[] = [];
client.commands.forEach((cmd) => { client.commands.forEach((cmd) => {
const entry = `• **/${cmd.data.name}**: ${cmd.data.description}`; const desc = 'description' in cmd.data ? cmd.data.description : 'Kontextmenü-Befehl';
const entry = `• **/${cmd.data.name}**: ${desc}`;
if (cmd.category === 'Public') { if (cmd.category === 'Public') {
publicCmds.push(entry); publicCmds.push(entry);

View File

@@ -1,4 +1,4 @@
import { Events, Interaction } from 'discord.js'; import { Events, Interaction, ChatInputCommandInteraction, MessageContextMenuCommandInteraction } from 'discord.js';
import { ExtendedClient } from '../structures/ExtendedClient.js'; import { ExtendedClient } from '../structures/ExtendedClient.js';
import { DB } from '../structures/Database.js'; import { DB } from '../structures/Database.js';

View File

@@ -1,18 +1,11 @@
import { import {
ChatInputCommandInteraction, ExtendedClient
SlashCommandBuilder, } from './ExtendedClient.js';
SlashCommandOptionsOnlyBuilder,
SlashCommandSubcommandsOnlyBuilder,
ContextMenuCommandBuilder,
MessageContextMenuCommandInteraction,
ModalSubmitInteraction
} from 'discord.js';
import { ExtendedClient } from './ExtendedClient.js';
export interface Command { export interface Command {
data: SlashCommandBuilder | SlashCommandOptionsOnlyBuilder | SlashCommandSubcommandsOnlyBuilder | ContextMenuCommandBuilder; data: any;
category: 'Owner' | 'Admin' | 'Public'; category: 'Owner' | 'Admin' | 'Public';
execute: (interaction: ChatInputCommandInteraction | MessageContextMenuCommandInteraction, client: ExtendedClient) => Promise<void>; execute: (interaction: any, client: ExtendedClient) => Promise<void>;
handleModal?: (interaction: ModalSubmitInteraction, client: ExtendedClient) => Promise<void>; handleModal?: (interaction: any, client: ExtendedClient) => Promise<void>;
cooldown?: number; cooldown?: number;
} }