2 GrumpyVoice
darksoon edited this page 2026-05-07 22:13:47 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Voice — Join-to-Create

Pro User ein eigener Voice-Channel: Wer den Lobby-Channel betritt, bekommt automatisch einen frischen Channel im konfigurierten Category, mit Owner-Permissions zum Umbenennen, Sperren, Limit-Setzen, Kicken usw.


Aktivierung

In configs/config.yml:

addons:
  voice: true

channels:
  voice-lobby: "VOICE_CHANNEL_ID"   # Lobby — User joint hier, kriegt eigenen Channel

Dann den Bot neu starten (oder /voice reload).


voice.yml

configs/modules/voice.yml:

enabled: true
lobbyChannelId: "0"              # Override für channels.voice-lobby (0 = Fallback nutzen)
categoryId: "0"                  # In welchem Category neue Channels erstellt werden (0 = Parent der Lobby)
nameTemplate: "🎮 %user%"         # Placeholders: %user% (= %user_name%), %user_id%
defaultLimit: 0                  # User-Limit am neuen Channel (0 = unlimited, 1-99)
emptyDeleteSeconds: 30           # Auto-Delete-Timer wenn Channel leer (5-600s)
maxChannelsPerUser: 1            # Max parallele Channels pro User (1-5)
defaultBitrate: 64               # Bitrate in kbps (8-384)
Feld Default Bedeutung
lobbyChannelId "0" Wenn gesetzt, überschreibt channels.voice-lobby aus config.yml
categoryId "0" Category für neue Channels — Fallback: Parent der Lobby
nameTemplate "🎮 %user%" Channel-Name. Placeholders: %user% / %user_name% (Display-Name, identisch), %user_id%
defaultBitrate 64 Bitrate in kbps — wird automatisch auf guild.maximumBitrate gecappt, falls der Server-Boost-Tier weniger erlaubt
defaultLimit 0 Initiales User-Limit (kann der Owner mit /voice limit ändern)
emptyDeleteSeconds 30 Wie lange ein leerer Channel offen bleibt, bevor er gelöscht wird
maxChannelsPerUser 1 User mit Maximum kriegt keinen neuen Channel — wird in seinen bestehenden gemoved

So funktioniert's

1. User joint #voice-lobby
2. Bot prüft: hat der User schon einen eigenen Channel?
   - Ja, max erreicht → moved den User in den existierenden Channel
   - Nein → erstellt neuen Channel mit:
     • Name aus nameTemplate
     • Category aus categoryId (oder Parent der Lobby)
     • Permission-Overwrite: Owner kriegt ManageChannels + Move/Mute/Deafen/PrioritySpeaker
     • User-Limit: defaultLimit
     • Bitrate: defaultBitrate
3. Bot moved den User in den neuen Channel
4. Wenn der Channel später leer ist:
   - Timer startet (emptyDeleteSeconds)
   - Re-join → Timer abgebrochen
   - Timer abgelaufen → Channel + DB-Eintrag gelöscht

Bei Bot-Restart

Beim Start scant der Bot alle bekannten Voice-Channels in der DB:

  • Channel existiert nicht mehr in Discord → DB-Eintrag löschen
  • Channel ist leer → Channel + DB-Eintrag löschen
  • Channel hat User → in Ruhe lassen

⚠️ Cleanup verwendet channel.fetch() statt Cache — der Cache ist direkt nach Restart oft unvollständig.

⚠️ Root-Channel-Warnung: Wenn categoryId nicht gesetzt ist und die Lobby kein Parent-Category hat, landet der neue Voice-Channel auf Server-Root. Der Bot loggt in dem Fall eine Warnung — Admins sollten voice.yml > categoryId konfigurieren.

Move-Failure: Falls der Bot den User nicht in den neuen Channel moven kann (z.B. fehlende Move Members-Permission im Target), wird der User aus der Lobby disconnected statt dort hängen zu bleiben.


Commands für den Owner

Funktionieren nur innerhalb des eigenen Voice-Channels.

Command Funktion
/voice rename <name> Channel umbenennen (5 min Cooldown — schützt Discords Rate-Limit von 2 Renames pro 10 min)
/voice lock Connect-Deny für @everyone — nur Trusted kommen rein
/voice unlock Lock aufheben
/voice limit <count> User-Limit setzen (0 = unlimited, 199)
/voice kick <user> User aus dem Channel werfen
/voice trust <user> User darf rein, auch wenn der Channel gelockt ist
/voice untrust <user> Trust entfernen
/voice transfer <user> Owner-Rechte abgeben (Target muss im Channel sein)
/voice claim Verwaisten Channel übernehmen — geht nur wenn der Owner nicht mehr drin ist
/voice info Channel-Details anzeigen

Mehr Details auf der Voice Commands-Seite.


Admin-Commands

Command Berechtigung Funktion
/voice reload Server verwalten Lädt voice.yml neu — neue Settings sofort aktiv

FAQ

Was passiert wenn der Owner geht? Der Channel bleibt offen, läuft aber irgendwann in den Auto-Delete-Timer (sobald keiner mehr drin ist). Solange noch jemand drin ist, kann ein anderer User mit /voice claim übernehmen.

Kann ein User mehrere Channels haben? Ja, wenn maxChannelsPerUser > 1. Default ist 1 — der User wird in seinen bestehenden Channel gemoved statt einen neuen zu kriegen.

Was passiert beim Channel-Wechsel der Lobby? Einfach voice-lobby in config.yml ändern und den Bot neu starten — der Bot benutzt den neuen Channel ab dem nächsten Join.

Audit-Log: Voice-Channel-Erstellung und -Löschung durch das Voice-Modul werden vom Server-Audit-Logger ganz normal als CHANNEL_CREATE / CHANNEL_DELETE mitgeschrieben — sichtbar im mod-log-Channel.