Command: !delquote (Mod-Only)¶
Löscht eine Quote per ID. Mod-Only weil destruktiv.
Voraussetzung: Mod-Permissions Patterns: If/Else (ID-Check) + Delete Quote + Send Message Sub-Actions: 4-5
Action: [Cmd] !delquote¶
Sub-Action 1: If/Else — ID fehlt¶
| Feld | Wert |
|---|---|
| Input | %input0% |
| Operation | Is Null or Empty |
Then-Branch:
Sub-Action 2 (im Then von 1): Hilfe + Break¶
Sub-Action 3: If/Else — ID ist keine Zahl¶
| Feld | Wert |
|---|---|
| Input | %input0% |
| Operation | Regex Match |
| Value | ^[0-9]+$ |
Wenn NICHT Zahl → Then-Branch via separates If/Else (Streamer.bot hat kein "Not Regex"; pragmatisch zweifachen Check oder Set Argument-Flag wie bei !rps).
Vereinfachte Variante: nur die nachgeschaltete Delete Quote macht den Check selbst — wenn ID nicht numerisch, %success% = false. Wir können den Pre-Check weglassen und uns auf Delete Quote's Fehler-Output verlassen.
Sub-Action 4: Delete Quote¶
Pfad: Core → Quotes → Delete Quote
| Feld | Wert |
|---|---|
| Quote ID | %input0% |
Setzt:
| Variable | Inhalt |
|---|---|
%success% |
bool |
%quoteId% |
ID der gelöschten Quote (bei Erfolg) |
%error% |
Fehlermeldung bei Fail (z.B. "Unable to delete quote 4219, it does not exist") |
Sub-Action 5: If/Else — Erfolg¶
5. If/Else: %success% Equals false
├── Send Message: "@%user% Löschen fehlgeschlagen: %error%"
└── Break
Sub-Action 6: Send Message — Erfolg¶
| Feld | Wert |
|---|---|
| Message | 🗑️ Quote #%quoteId% gelöscht. |
Action-Tree¶
[Cmd] !delquote
├── 1. If/Else: %input0% Is Null or Empty
│ ├── Send Message: "@%user% nutze !delquote <ID>"
│ └── Break
├── 2. Delete Quote (Quote ID = %input0%)
├── 3. If/Else: %success% Equals false
│ ├── Send Message: "@%user% Löschen fehlgeschlagen: %error%"
│ └── Break
└── 4. Send Message: "🗑️ Quote #%quoteId% gelöscht."
Command-Einstellungen¶
| Feld | Wert |
|---|---|
| Name | !delquote |
| Group | AzaCraft Quotes |
| Commands | !delquote!dq!removequote |
| Sources | Twitch Message |
| Global Cooldown | 0 |
| User Cooldown | 5 |
| Grant Type | Allow |
| Groups | Moderators |
Verwendungsbeispiele¶
| Chat | Wer | Resultat |
|---|---|---|
!delquote 42 |
Mod | "🗑️ Quote #42 gelöscht." |
!delquote 99999 |
Mod | "Löschen fehlgeschlagen: Unable to delete quote 99999..." |
!delquote banana |
Mod | "Löschen fehlgeschlagen: ..." |
!delquote |
Mod | "@user nutze !delquote |
!delquote 42 |
Normaler User | Permission blockt |
Wichtig: ID bleibt frei¶
Nach Delete bleibt die ID frei — andere Quotes werden NICHT re-numeriert. Falls die User-Erwartung "Quote #42 = X" anders ist als bei dir, expliziter im Chat kommunizieren.
Re-Index via UI: Services → Quotes → Rechtsklick → Re-index. Achtung: alle IDs ändern sich, irreversibel.
Erweiterung: Confirm-Step¶
Bei Quotes die du nicht versehentlich löschen willst, einen Confirm-Schritt:
[Cmd] !delquote
├── 1. (empty-check wie oben)
├── 2. Get Quote (Specific, Quote Id = %input0%)
├── 3. If/Else: %quoteId% Is Null or Empty
│ ├── Send Message: "@%user% Quote #%input0% existiert nicht."
│ └── Break
├── 4. Send Message: "@%user% Quote #%quoteId%: \"%quote%\". Bestätige mit !delquote-confirm %quoteId%"
└── Break (kein Delete!)
Plus separater !delquote-confirm Command der den tatsächlichen Delete macht. Verhindert Versehentlich-Löschen.
Häufige Fallen¶
- ID falsch geraten — wenn Mod ID
41löscht statt42, ist die falsche weg. Empfehlung: vor Delete erst!quote 42machen um zu sehen welche es ist - Re-Index Trigger durch Spam — wenn jemand viele Quotes hintereinander löscht, IDs werden lückig. Bei Bedarf manuell re-indexieren
- Quote schon weg — wenn zwei Mods gleichzeitig die gleiche ID löschen, kriegt einer
success = true, der anderefalsemit Error. Cooldown 5s minimiert das