diff --git a/package-lock.json b/package-lock.json index 1e9cbf3f9..542117e7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "firebotv5", - "version": "5.66.1", + "version": "5.66.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "firebotv5", - "version": "5.66.1", + "version": "5.66.2", "license": "GPL-3.0", "dependencies": { "@aws-sdk/client-polly": "^3.26.0", @@ -88,7 +88,7 @@ "@types/escape-html": "^1.0.4", "@types/express": "^5.0.5", "@types/luxon": "^3.7.1", - "@types/node": "^22.18.0", + "@types/node": "^24.1.0", "@types/roll": "^1.2.3", "@types/sprintf-js": "^1.1.4", "@types/unzipper": "^0.10.11", @@ -3085,14 +3085,20 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", - "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.8.0" } }, + "node_modules/@types/node/node_modules/undici-types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" + }, "node_modules/@types/qs": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", diff --git a/package.json b/package.json index a23311a6f..c30da2cdd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "firebotv5", - "version": "5.66.1", + "version": "5.66.2", "description": "Powerful all-in-one bot for Twitch streamers.", "main": "build/main.js", "scripts": { @@ -29,7 +29,7 @@ "@types/escape-html": "^1.0.4", "@types/express": "^5.0.5", "@types/luxon": "^3.7.1", - "@types/node": "^22.18.0", + "@types/node": "^24.1.0", "@types/roll": "^1.2.3", "@types/sprintf-js": "^1.1.4", "@types/unzipper": "^0.10.11", diff --git a/src/backend/common/effect-run-mode-handler.ts b/src/backend/common/effect-run-mode-handler.ts index 5fa042c45..cfe926fba 100644 --- a/src/backend/common/effect-run-mode-handler.ts +++ b/src/backend/common/effect-run-mode-handler.ts @@ -30,7 +30,7 @@ function getEntryFromCache(effectListId: string, effectIds: string[], cache: Eff if (!cacheEntry) { // we don't have a preexisting queue in the cache, create a new one cacheEntry = { - queue: shuffleArray(effectIds), + queue: shuffle ? shuffleArray(effectIds) : effectIds, currentEffectIds: effectIds }; @@ -174,4 +174,3 @@ export function resolveEffectsForExecution(effectList: EffectList): EffectInstan } return []; } - diff --git a/src/backend/variables/builtin/utility/files-in-directory.ts b/src/backend/variables/builtin/utility/files-in-directory.ts index 7dcc4f314..34354cb88 100644 --- a/src/backend/variables/builtin/utility/files-in-directory.ts +++ b/src/backend/variables/builtin/utility/files-in-directory.ts @@ -31,13 +31,13 @@ const model : ReplaceVariable = { if (typeof filter !== 'string') { return fileList - .map(dirent => resolve(join(dirent.path, sep, dirent.name))); + .map(dirent => resolve(join(dirent.parentPath, sep, dirent.name))); } const regexFilter = new RegExp(filter, flags); return fileList .filter(dirent => regexFilter.test(dirent.name)) - .map(dirent => resolve(join(dirent.path, sep, dirent.name))); + .map(dirent => resolve(join(dirent.parentPath, sep, dirent.name))); } catch {} return []; diff --git a/src/gui/app/controllers/power-ups-and-rewards.controller.js b/src/gui/app/controllers/power-ups-and-rewards.controller.js index 832bbcc3b..1d86e9413 100644 --- a/src/gui/app/controllers/power-ups-and-rewards.controller.js +++ b/src/gui/app/controllers/power-ups-and-rewards.controller.js @@ -8,11 +8,14 @@ channelRewardsService, powerUpsService, utilityService, - accountAccess + accountAccess, + settingsService ) { $scope.channelRewardsService = channelRewardsService; $scope.powerUpsService = powerUpsService; + $scope.activeTab = settingsService.getSetting("DefaultRewardTab"); + $scope.canUseChannelRewards = () => accountAccess.accounts["streamer"].loggedIn && (channelRewardsService.userIsEligible); diff --git a/src/gui/app/directives/settings/categories/general-settings.js b/src/gui/app/directives/settings/categories/general-settings.js index 9d45ed871..fd81d6a3c 100644 --- a/src/gui/app/directives/settings/categories/general-settings.js +++ b/src/gui/app/directives/settings/categories/general-settings.js @@ -192,6 +192,20 @@ accessibility-label="(settings.getSetting('OpenStreamPreviewOnLaunch') ? 'Enabled' : 'Disabled') + ' Stream Preview on Launch'" /> + + + + `, controller: function ($rootScope, $scope, soundService, settingsService, $q) { diff --git a/src/gui/app/templates/_power-ups-and-rewards.html b/src/gui/app/templates/_power-ups-and-rewards.html index 076d1e973..b26c55cf6 100644 --- a/src/gui/app/templates/_power-ups-and-rewards.html +++ b/src/gui/app/templates/_power-ups-and-rewards.html @@ -1,7 +1,6 @@ diff --git a/src/types/settings.ts b/src/types/settings.ts index f58cf573a..ff28483f8 100644 --- a/src/types/settings.ts +++ b/src/types/settings.ts @@ -65,6 +65,7 @@ export type FirebotSettingsTypes = { DebugMode: boolean; DefaultEffectLabelsEnabled: boolean; DefaultModerationUser: "streamer" | "bot"; + DefaultRewardTab: "powerups" | "rewards" | "queue"; DefaultToAdvancedCommandMode: boolean; DefaultTtsVoiceId: string; DeleteProfile: string; @@ -202,6 +203,7 @@ export const FirebotSettingsDefaults: FirebotSettingsTypes = { DebugMode: false, DefaultEffectLabelsEnabled: true, DefaultModerationUser: "streamer", + DefaultRewardTab: "powerups", DefaultToAdvancedCommandMode: false, DefaultTtsVoiceId: undefined, DeleteProfile: undefined,