From d88d6302dad2350f3d8df6b67765e0ea77a6e7b8 Mon Sep 17 00:00:00 2001 From: qwerinope Date: Sun, 21 Sep 2025 21:10:02 +0200 Subject: [PATCH] add basic sub handling --- src/events/subscription.ts | 32 ++++++++++++++++++++++++++++++++ src/index.ts | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/events/subscription.ts diff --git a/src/events/subscription.ts b/src/events/subscription.ts new file mode 100644 index 0000000..462fd9c --- /dev/null +++ b/src/events/subscription.ts @@ -0,0 +1,32 @@ +import { sendMessage } from "commands"; +import { getUserRecord } from "db/dbUser"; +import { changeBalance } from "lib/changeBalance"; +import { eventSub, streamerId } from "main"; +import User from "user"; + +eventSub.onChannelSubscription(streamerId, async msg => { + if (msg.isGift) return; + const user = await User.initUsername(msg.userName); + await Promise.all([ + sendMessage(`YO THANKS FOR THE SUB ${msg.userDisplayName}! YOU GET 500 QBUCKS`), + changeBalance(user!, await getUserRecord(user!), 500) + ]); +}); + +eventSub.onChannelSubscriptionGift(streamerId, async msg => { + if (msg.isAnonymous) { await sendMessage(`YO THANKS ANON FOR THE SCAM SUBS`); return; }; + const user = await User.initUsername(msg.gifterName); + const amount = msg.amount; + await Promise.all([ + sendMessage(`YO THANKS FOR THE SCAM GIFTS ${msg.gifterDisplayName}! YOU GET ${amount * 500} QBUCKS`), + changeBalance(user!, await getUserRecord(user!), amount * 500) + ]); +}); + +eventSub.onChannelSubscriptionEnd(streamerId, async msg => { + +}); + +eventSub.onChannelSubscriptionMessage(streamerId, async msg => { + +}); diff --git a/src/index.ts b/src/index.ts index 7f59c0e..f835ee3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,7 @@ import { connectionCheck } from "connectionCheck"; await connectionCheck(); const CHATTERINTENTS = ["user:read:chat", "user:write:chat", "user:bot", "user:manage:whispers"]; -const STREAMERINTENTS = ["channel:bot", "user:read:chat", "moderation:read", "channel:manage:moderators", "moderator:manage:chat_messages", "moderator:manage:banned_users", "bits:read", "channel:moderate", "moderator:manage:shoutouts"]; +const STREAMERINTENTS = ["channel:bot", "user:read:chat", "moderation:read", "channel:manage:moderators", "moderator:manage:chat_messages", "moderator:manage:banned_users", "bits:read", "channel:moderate", "moderator:manage:shoutouts", "channel:read:subscriptions"]; export const singleUserMode = process.env.CHATTER_IS_STREAMER === 'true'; export const chatterId = process.env.CHATTER_ID ?? "";