feat: initial Papo bot scaffold
This commit is contained in:
36
readme.md
Normal file
36
readme.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Papo Discord Bot (TypeScript)
|
||||
|
||||
Discord v14 Bot mit Slash Commands, Ticket-System, Musikplayer, Automod und Web-Dashboard (Express + OAuth2 Scaffold).
|
||||
|
||||
## Setup
|
||||
1. `npm install`
|
||||
2. `.env` aus `.env.example` kopieren und Werte setzen (einzelne Guild via `DISCORD_GUILD_ID`, mehrere via `DISCORD_GUILD_IDS` als Kommaliste oder global ohne Angabe)
|
||||
3. Prisma Schema anpassen und generieren (optional DB): `npx prisma generate`
|
||||
4. Entwicklung: `npm run dev`
|
||||
5. Build: `npm run build` und `npm start`
|
||||
|
||||
## Struktur
|
||||
- `src/index.ts` – Bootstrap für Bot + Webserver
|
||||
- `src/commands` – Slash Commands (Admin, Music, Tickets, Utility)
|
||||
- `src/events` – Event-Handler (ready, interaction, message, member join/leave, bans)
|
||||
- `src/services` – Automod, Logging, Music-Queue, Tickets, Forum-Stubs, Leveling
|
||||
- `src/web` – Express-Server mit OAuth2-Routen und Dashboard-Stubs
|
||||
- `src/database` – Prisma Schema + Client
|
||||
|
||||
## Features (Stand Scaffold)
|
||||
- Admin: /ban /tempban /kick /mute /unmute /timeout /clear (+ Logging)
|
||||
- Automod: Anti-Link & Spam Timeout
|
||||
- Logging: Join/Leave, Edit/Delete, Moderations
|
||||
- Welcome-System: via `/configure welcome_channel`
|
||||
- Leveling: optional via `/configure leveling true`, Anzeige mit `/rank`
|
||||
- Musik: /play /pause /resume /skip /stop /queue /loop (YouTube via play-dl)
|
||||
- Tickets: /ticket /claim /close, Ticket-Panel mit Buttons via `/ticketpanel`, Claim/Close/Transcript Buttons im Kanal, Prioritäten via `/ticketpriority`, Status via `/ticketstatus`, Transcript-Export via `/transcript`, Channel pro User, Transcript-Export (TXT), Prisma Modell
|
||||
- Forum-Integration: Service mit Interfaces/Stubs
|
||||
- Web-Dashboard: Express mit OAuth2-Stubs, Live-Übersicht & Settings API (/api/overview, /api/tickets, /api/settings) + UI
|
||||
- Multi-Guild: Commands registrieren automatisch für alle IDs in `DISCORD_GUILD_IDS` oder global, Auto-Register bei Guild-Join
|
||||
|
||||
## Hinweise
|
||||
- Commands werden beim Start automatisch per REST im angegebenen Guild registriert.
|
||||
- Musik benötigt Voice-Berechtigungen und Zugang zum Voice-Channel des Nutzers.
|
||||
- Transcript-Dateien landen unter `./transcripts`.
|
||||
- Das Dashboard ist bewusst minimal als Ausgangspunkt für weitere UI/Frontend-Integration.
|
||||
Reference in New Issue
Block a user