Reward: 24h VIP
ProViewer kauft sich 24h VIP. Bot fügt VIP hinzu und speichert Expiry-Timestamp. Cron-Timer revoked nach 24h.
- Steps
- 5
- Cooldown
- 0s/User
- Cooldown
- 0sglobal
- Zugriff
- Public
Viewer kauft sich 24h VIP. Bot fügt VIP hinzu und speichert Expiry-Timestamp. Cron-Timer revoked nach 24h.
Klassisches Premium-Reward: selten und teuer. Bei 100.000 Channel-Points pro VIP ist es genug Aufwand, dass es ein echtes Statement ist.
Trigger setzt unter anderem Argument %user% Display-Name.
Variablen-Doku , Argument %userId% Numerische User-ID.
Variablen-Doku , Argument %redemptionId% Für Update Redemption Status.
Variablen-Doku .
| Feld | Wert |
|---|---|
| Title | 24h VIP-Status |
| Cost | 100000 |
| Prompt | Du bekommst für 24h einen VIP-Status. Max 1 pro Stream. |
| User Input Required | aus |
| Skip Request Queue | aktiv |
| Max Per User Per Stream | 1 |
[Reward] 24h VIPTrigger: Twitch > Channel Reward > Reward Redemption mit Reward-Filter 24h VIP-Status.
Pre-Check via User-Persisted-Global.
| Input | %vipExpiresAt% |
|---|---|
| Operation | Is Not Null or Empty |
| Redemption ID | %redemptionId% |
|---|---|
| Status | Canceled |
| Message | @%user% du bist schon VIP. Points zurück. |
|---|
Stoppt die laufende Action. Alle folgenden Sub-Actions in derselben Action werden übersprungen.
| User | %user% |
|---|
Persistent pro User. 86400 = 24h in Sekunden.
| User | %user% |
|---|---|
| Name | vipExpiresAt |
| Value | $add(%timestampUnix%, 86400)$ |
| Persisted | aktiv |
| Redemption ID | %redemptionId% |
|---|---|
| Status | Fulfilled |
| Message | 👑 @%user% hat sich 24h VIP geleistet: herzlich willkommen! 💎 |
|---|
[Cron] vip-revoke-check)Trigger: Core > Time > Timed Action mit Cron * * * * * (jede Minute).
Pflicht-Setup: sonst bleiben VIPs für immer.
Liest alle vipExpiresAt-Globals und checked Ablauf. Siehe Code unten.
public bool Execute() { var now = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; var expiries = CPH.GetUserGlobalsForVariable<long>("vipExpiresAt");
foreach (var entry in expiries) { if (entry.Value > 0 && entry.Value < now) { CPH.TwitchRemoveVip(entry.UserName); CPH.UnsetUserGlobal(entry.UserName, "vipExpiresAt", true); CPH.SendMessage($"⏰ @{entry.UserName} VIP abgelaufen: danke fürs Mitmachen!"); } } return true;}Hinweis: CPH.GetUserGlobalsForVariable ist die offizielle Streamer.bot C#-Methode. Gleicher Approach wie in Lurkers.
Remove VIP schlägt fehl. Global trotzdem unsetten damit der Re-Kauf später nicht im If/Else hängenbleibt.Get VIPs und List-Count.!vipliste zeigt aktive Temp-VIPs mit Restzeit (Iteration über User-Globals).Add VIP checken ob User Subscriber ist (%isSubscribed%) und entsprechend behandeln.