From 51eea310a8c06cb493e24e3a293e21879d495786 Mon Sep 17 00:00:00 2001 From: SirStendec Date: Wed, 18 Dec 2019 13:25:14 -0500 Subject: [PATCH] 4.17.10 * Added: Control badge visibility by group and not simply by individual badge. * Fixed: When possible, sort emote IDs numerically for the emote menu. * Changed: Blacklist a few more invalid errors from automatic reporting. * Changed: Include add-on versions in error reports. --- package.json | 2 +- src/modules/chat/badges.jsx | 29 ++++++--- .../main_menu/components/badge-visibility.vue | 26 +++++++- src/raven.js | 20 ++++++- .../modules/chat/emote_menu.jsx | 15 +++++ styles/widgets/badge-visibility.scss | 60 ++++++++++++------- 6 files changed, 117 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index e05c4e66..add0bec8 100755 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "frankerfacez", "author": "Dan Salvato LLC", - "version": "4.17.9", + "version": "4.17.10", "description": "FrankerFaceZ is a Twitch enhancement suite.", "license": "Apache-2.0", "scripts": { diff --git a/src/modules/chat/badges.jsx b/src/modules/chat/badges.jsx index b54c058f..58b23433 100644 --- a/src/modules/chat/badges.jsx +++ b/src/modules/chat/badges.jsx @@ -290,7 +290,7 @@ export default class Badges extends Module { const badge = this.badges[key], image = badge.urls ? (badge.urls[2] || badge.urls[1]) : badge.image; - (/^addon/.test(key) ? addon : ffz).push({ + (badge.addon ? addon : ffz).push({ id: key, provider: 'ffz', name: badge.title, @@ -301,10 +301,10 @@ export default class Badges extends Module { } return [ - {title: 'Twitch', badges: twitch}, - {title: 'Twitch: Game', key: 'game', badges: game}, - {title: 'FrankerFaceZ', badges: ffz}, - {title: 'Add-on', badges: addon} + {title: 'Twitch', id: 'm-twitch', badges: twitch}, + {title: 'Twitch: Game', id: 'm-game', key: 'game', badges: game}, + {title: 'FrankerFaceZ', id: 'm-ffz', badges: ffz}, + {title: 'Add-on', id: 'm-addon', badges: addon} ]; } @@ -408,6 +408,11 @@ export default class Badges extends Module { is_colored = badge_style !== 5, has_image = badge_style !== 3 && badge_style !== 4, + twitch_hidden = hidden_badges['m-twitch'], + game_hidden = hidden_badges['m-game'], + ffz_hidden = hidden_badges['m-ffz'], + addon_hidden = hidden_badges['m-addon'], + out = [], slotted = {}, twitch_badges = msg.badges || {}, @@ -427,9 +432,10 @@ export default class Badges extends Module { for(const badge_id in twitch_badges) if ( has(twitch_badges, badge_id) ) { const version = twitch_badges[badge_id], + is_hidden = hidden_badges[badge_id], is_game = badge_id.endsWith('_1'); - if ( hidden_badges[badge_id] || (is_game && hidden_badges.game) ) + if ( is_hidden || (is_hidden == null && (is_game ? game_hidden : twitch_hidden))) continue; if ( has(BADGE_POSITIONS, badge_id) ) @@ -473,11 +479,13 @@ export default class Badges extends Module { for(const badge of badges) if ( badge && badge.id != null ) { - if ( hidden_badges[badge.id] ) + const full_badge = this.badges[badge.id] || {}, + is_hidden = hidden_badges[badge.id]; + + if ( is_hidden || (is_hidden == null && (full_badge.addon ? addon_hidden : ffz_hidden)) ) continue; - const full_badge = this.badges[badge.id] || {}, - slot = has(badge, 'slot') ? badge.slot : full_badge.slot, + const slot = has(badge, 'slot') ? badge.slot : full_badge.slot, old_badge = slotted[slot], urls = badge.urls || (badge.image ? {1: badge.image} : null), color = badge.color || full_badge.color || 'transparent', @@ -681,6 +689,9 @@ export default class Badges extends Module { loadBadgeData(badge_id, data, generate_css = true) { this.badges[badge_id] = data; + if ( data.addon === undefined ) + data.addon =/^addon/.test(badge_id); + if ( data.replaces && ! data.replaces_type ) { data.replaces_type = data.replaces; data.replaces = true; diff --git a/src/modules/main_menu/components/badge-visibility.vue b/src/modules/main_menu/components/badge-visibility.vue index 8832859e..ddf5660f 100644 --- a/src/modules/main_menu/components/badge-visibility.vue +++ b/src/modules/main_menu/components/badge-visibility.vue @@ -29,7 +29,31 @@ :key="sec.title" class="ffz--menu-container tw-border-t" > -
{{ sec.title }}
+
+ + +
+
+ {{ sec.title }} +