diff --git a/src/backend/chatClient/commands/createReward.ts b/src/backend/chatClient/commands/createReward.ts new file mode 100644 index 0000000..15930a4 --- /dev/null +++ b/src/backend/chatClient/commands/createReward.ts @@ -0,0 +1,42 @@ +import { LOG_PREFIX, say } from ".."; + +import { TwitchPrivateMessage } from "@twurple/chat/lib/commands/TwitchPrivateMessage"; +import { createReward as createChannelPointsReward } from "../../helpers/twitch"; + +async function createReward( + channel: string, + user: string, + message: string, + msg: TwitchPrivateMessage +): Promise { + const args = message.split(" "); + + const title = args.shift(); + const cost = Math.max(1, parseInt(args.shift() ?? "0")); + + if (!title || !cost) { + await say( + channel, + "No se ha especificado el nombre de la recompensa o costo" + ); + return; + } + + try { + await createChannelPointsReward(msg.channelId as string, { + title, + cost + }); + + say( + channel, + `✅ Creada recompensa de canal "${title}" con un costo de ${cost}` + ); + } catch (e) { + if (e instanceof Error) { + console.log(`${LOG_PREFIX}${e.message}`); + } + } +} + +export { createReward }; diff --git a/src/backend/chatClient/index.ts b/src/backend/chatClient/index.ts index a029ef7..fbc0bbd 100644 --- a/src/backend/chatClient/index.ts +++ b/src/backend/chatClient/index.ts @@ -7,6 +7,7 @@ import { ChatClient } from "@twurple/chat"; import { ChatCommands } from "../../enums/ChatCommands"; import { TwitchPrivateMessage } from "@twurple/chat/lib/commands/TwitchPrivateMessage"; import { broadcast } from "../helpers/webServer"; +import { createReward } from "./commands/createReward"; import { start } from "../helpers/miniDb"; let chatClient: ChatClient; @@ -105,6 +106,9 @@ async function onMessage( `Comandos disponibles: "${Object.values(ChatCommands).join('", "')}"` ); break; + case ChatCommands.CreateReward: + await createReward(channel, user, args.join(" "), msg); + break; default: console.log( `${LOG_PREFIX}Command ${commandPrefix}${commandName} not handled` diff --git a/src/enums/ChatCommands.ts b/src/enums/ChatCommands.ts index 21bec92..ebd401c 100644 --- a/src/enums/ChatCommands.ts +++ b/src/enums/ChatCommands.ts @@ -1,3 +1,4 @@ export enum ChatCommands { Commands = "commands", + CreateReward = "createreward" }