Discord.py Bot für Winkler Crimelife
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-01 12:00:20 +00:00
winkler_bot Dateien nach „winkler_bot/cogs“ hochladen 2026-09-01 12:00:20 +00:00
BEFEHLE.md Dateien nach „/“ hochladen 2026-09-01 11:57:47 +00:00
INSTALLATION_FUER_ANFAENGER.md Dateien nach „/“ hochladen 2026-09-01 11:57:47 +00:00
main.py Dateien nach „/“ hochladen 2026-09-01 11:57:47 +00:00
PATCHNOTES_1.0.1.md Dateien nach „/“ hochladen 2026-09-01 11:57:47 +00:00
README.md Dateien nach „/“ hochladen 2026-09-01 11:57:47 +00:00
START_HIER.md Dateien nach „/“ hochladen 2026-09-01 11:57:47 +00:00

Winkler Crimelife Bot einfache Ausgabe

Diese Ausgabe ist fuer einen moeglichst unkomplizierten Betrieb gedacht. Fuer den ersten Start wird nur der Discord-Bot-Token benoetigt. Server-, Kanal- und Rollen-IDs sowie Links sind optional.

Aktuelle Version: 1.0.1. Die Patchnotes stehen in PATCHNOTES_1.0.1.md.

Schnellstart

  1. Python 3.11 oder neuer installieren.
  2. Den Discord-Bot erstellen und auf den gewuenschten Server einladen.
  3. STARTEN.bat doppelt anklicken.
  4. Beim ersten Start den Discord-Bot-Token einfuegen. Die Eingabe bleibt unsichtbar.
  5. Warten, bis im Fenster Angemeldet als ... erscheint.
  6. Auf dem vorgesehenen Winkler-Server als Administrator /config server-setup ausfuehren.
  7. Die Vorschau kontrollieren und Fehlende Werte uebernehmen anklicken.
  8. /config pruefen ausfuehren und benoetigte Panels mit den angegebenen Commands veroeffentlichen. /config oeffnen bleibt fuer spaetere Aenderungen erhalten.

Das Startskript erstellt selbststaendig eine portable virtuelle Umgebung unter .venv-einfach, installiert fehlende Pakete und startet danach main.py.

Eine bebilderungsfreie Schritt-fuer-Schritt-Fassung steht in START_HIER.md. Die vollstaendige Bedienung des Discord-Setups erklaert KONFIGURATION_IN_DISCORD.md.

Was nicht mehr eingetragen werden muss

Fuer den normalen Start sind diese Angaben nicht erforderlich:

  • guild_id beziehungsweise Server-ID;
  • Kanal-IDs;
  • Rollen-IDs;
  • Shop-, Regelwerk-, API- oder andere Links;
  • Datenbankpfad;
  • Game-API- oder Webhook-Daten.

Ohne Server-ID ordnet der Bot seine Slash-Commands nach dem Login direkt den verbundenen Servern zu. Ein gespeicherter Fingerprint verhindert erneute Discord-Synchronisierungen, solange sich die Command-Struktur nicht geaendert hat. Bei genau einem Server verwendet er diesen automatisch als Hauptserver. Vorhandene Kanaele, Kategorien und Rollen mit gaengigen deutschen oder englischen Namen werden im Arbeitsspeicher erkannt. Explizite Einstellungen aus Discord haben Vorrang vor TOML und der automatischen Erkennung.

Der Bot erstellt ohne ausdruecklichen Befehl keine Kanaele oder Rollen. Nicht erkannte optionale Ziele werden sauber uebersprungen. Grundfunktionen wie /ping, Reputation, Vouches, Moderationseintraege und Giveaways im aktuellen Kanal bleiben trotzdem nutzbar.

Token-Speicherung

Beim ersten interaktiven Start speichert der Bot den Token standardmaessig hier:

%LOCALAPPDATA%\WinklerCrimelifeBot\discord_token

Der Token liegt damit nicht in main.py, bot.toml, .env oder der SQLite-Datenbank. Er wird in Ausgaben und Objekt-Darstellungen maskiert. Ein lokaler Administrator kann Laufzeit-Secrets grundsaetzlich trotzdem auslesen.

Soll ein eigener Secret-Pfad verwendet werden, kann optional in .env stehen:

DISCORD_TOKEN_FILE=C:\ProgramData\WinklerBot\discord_token

Fuer nicht-interaktive Container oder Dienste wird alternativ DISCORD_TOKEN unterstuetzt.

Empfohlen: direkt in Discord einrichten

Nach dem ersten Start:

/config server-setup

Dieser private Command erkennt ausschließlich Server 1541104006309347451 und Bot 1541240756969414807. Er zeigt zuerst eine Vorschau und uebernimmt nach einem Klick die bereits festgelegten Kanal-, Kategorie-, Rollen-, Teamrang- und Ticketzuordnungen. Vorhandene individuelle Werte bleiben mit Fehlende Werte uebernehmen erhalten. Vorhandene ueberschreiben besitzt eine zusaetzliche Sicherheitsabfrage.

Das Setup erstellt oder loescht keine Discord-Ressourcen und sendet noch keine Panels. Danach /config pruefen, /ticket panel, /rollenpanel, /infopanels, /vorschlagspanel und /setup ausfuehren. Links waren nicht Bestandteil des Serverexports und bleiben ueber /config oeffnen frei anpassbar. Die komplette ID-Liste steht in SERVERPRESET_WINKLER.md.

Die Einstellungen liegen fuer jeden Discord-Server getrennt in SQLite und bleiben nach einem Neustart erhalten. Jede Aenderung wird im Konfigurations-Auditlog gespeichert. Nur Nutzer mit der echten Berechtigung Administrator oder Server verwalten sowie explizite Bot-Owner duerfen sie aendern. Eine Rolle, die nur Developer oder Admin heisst, reicht nicht.

Optionale Experteneinstellungen

Die kurze Datei config/bot.toml enthaelt nur Branding, Links und sichere Feature-Schalter. Leere Links werden einfach weggelassen oder durch neutralen Text ersetzt.

Die vollstaendige Liste aller moeglichen IDs, Intervalle und Features steht in config/bot.example.toml. Diese Beispieldatei wird niemals automatisch geladen. Nur wirklich benoetigte Werte muessen nach config/bot.toml uebernommen werden.

Mitgliederfunktionen aktivieren

Der einfache Modus startet ohne privilegierten Server Members Intent. Dadurch ist kein zusaetzlicher Portal-Schalter fuer den reinen Start erforderlich. Fuer Welcome-Nachrichten, Booster-Sync, vollstaendige Teamlisten und /syncroles:

  1. Im Discord Developer Portal unter Bot → Privileged Gateway Intents den Server Members Intent aktivieren.
  2. In Discord /config feature feature:members aktiviert:Ja ausfuehren.
  3. Bot neu starten.

Der Presence Intent bleibt separat und ist nur fuer exakte Onlinezahlen erforderlich.

Empfohlen ist /config oeffnenLinks. Alternativ direkt:

/config link typ:website url:https://example.com
/config link typ:rules url:https://example.com/regeln

Alle Links sind optional. Die TOML-Variante bleibt als Experten-Fallback:

[links]
website = "https://example.com"
rules = "https://example.com/regeln"
fivem = "https://cfx.re/join/abcdef"
shop = "https://shop.example.com"
unban = "https://example.com/entbannung"
api = "https://example.com/api"
fakecrime_preview = "https://example.com/fakecrime"
fakecrime_register = "https://example.com/registrieren"
application = "https://example.com/bewerbung"

Ein Ziel bewusst fest vorgeben

Empfohlen ist /config kanal, /config kategorie oder /config rolle; Discord zeigt dabei echte Auswahlfelder. Nur als Experten-Fallback kann weiterhin TOML genutzt werden:

[channels]
ticket_panel = 123456789012345678

[roles]
ticket_staff = 234567890123456789

Alle anderen Werte bleiben weiterhin automatisch beziehungsweise nicht konfiguriert.

Manueller Start

Statt STARTEN.bat:

py -3 -m venv .venv-einfach
.\.venv-einfach\Scripts\python.exe -m pip install -r requirements.txt
.\.venv-einfach\Scripts\python.exe main.py

Konfiguration und neue, getrennte Datenbank pruefen:

.\.venv-einfach\Scripts\python.exe main.py --check

Wichtige Dateien

Entwicklung pruefen

.\.venv-einfach\Scripts\python.exe -m pytest -q -p no:cacheprovider
.\.venv-einfach\Scripts\python.exe -m ruff check --no-cache .

Die originale Ausgabe im Nachbarordner bot wird von dieser vereinfachten Ausgabe nicht veraendert.