From 67a3d46e7b23cdd25f17d82365fd743d9bba4e94 Mon Sep 17 00:00:00 2001 From: nuttylmao Date: Thu, 27 Mar 2025 03:45:05 +1100 Subject: [PATCH] Added support for Twitch Channel Point Rewards --- .../icons/badges/twitch-channel-point.png | Bin 0 -> 55428 bytes multichat-overlay/script.js | 50 ++++++++++++++++++ multichat-overlay/settings/settings.json | 8 +++ 3 files changed, 58 insertions(+) create mode 100644 multichat-overlay/icons/badges/twitch-channel-point.png diff --git a/multichat-overlay/icons/badges/twitch-channel-point.png b/multichat-overlay/icons/badges/twitch-channel-point.png new file mode 100644 index 0000000000000000000000000000000000000000..67d0a3effbfad7d7fe6d0fd9b971360d1eadfccc GIT binary patch literal 55428 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

IU}=X8jP}^4dI)s^Ic(UlXszaZ-X^C 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 { TwitchGiftSub(response.data); }) +client.on('Twitch.RewardRedemption', (response) => { + console.debug(response.data); + TwitchRewardRedemption(response.data); +}) + client.on('Twitch.Raid', (response) => { console.debug(response.data); TwitchRaid(response.data); @@ -626,6 +632,50 @@ async function TwitchGiftSub(data) { AddMessageItem(instance, data.messageId); } +async function TwitchRewardRedemption(data) { + if (!showTwitchChannelPointRedemptions) + return; + + // Get a reference to the template + const template = document.getElementById('cardTemplate'); + + // Create a new instance of the template + const instance = template.content.cloneNode(true); + + // Get divs + const cardDiv = instance.querySelector("#card"); + const headerDiv = instance.querySelector("#header"); + const avatarDiv = instance.querySelector("#avatar"); + const iconDiv = instance.querySelector("#icon"); + const titleDiv = instance.querySelector("#title"); + const contentDiv = instance.querySelector("#content"); + + // Set the card background colors + cardDiv.classList.add('twitch'); + + if (showAvatar) { + // Render avatars + const username = data.user_login; + const avatarURL = await GetAvatar(username); + const avatar = new Image(); + avatar.src = avatarURL; + avatar.classList.add("avatar"); + avatarDiv.appendChild(avatar); + } + + // Set the text + const username = data.user_name; + const rewardName = data.reward.title; + const cost = data.reward.cost; + const userInput = data.user_input; + const channelPointIcon = ``; + + titleDiv.innerHTML = `${username} redeemed ${rewardName} ${channelPointIcon} ${cost}`; + contentDiv.innerText = `${userInput}`; + + AddMessageItem(instance, data.messageId); +} + async function TwitchRaid(data) { if (!showTwitchRaids) return; diff --git a/multichat-overlay/settings/settings.json b/multichat-overlay/settings/settings.json index 4284532..97cc09f 100644 --- a/multichat-overlay/settings/settings.json +++ b/multichat-overlay/settings/settings.json @@ -205,6 +205,14 @@ "defaultValue": true, "group": "Which Twitch messages do you want to see?" }, + { + "id": "showTwitchChannelPointRedemptions", + "label": "Channel Point Redemptions", + "description": "", + "type": "checkbox", + "defaultValue": true, + "group": "Which Twitch messages do you want to see?" + }, { "id": "showTwitchRaids", "label": "Raids",