1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-07-26 04:28:31 +00:00
* Changed: Implemented FFZ rendering of Channel Points redemption notices with no associated messages. (Experiment, 50% roll-out)
* Fixed: Channel not properly detecting the current channel's branding color.
* Fixed: Unable to delete the profile 0 (Default Profile)
* Fixed: Twitch prevented viewer cards from appearing when moved out of the chat area.
* Fixed: `addons` should not block loading while its data loads.
* Fixed: Issue accessing `i18n` before `settings` has fully loaded.
* Fixed: `main_menu` tries to use `i18n` before `i18n` is ready.
* Fixed: Main menu throws error if profiles are changed while main menu is open.
* Fixed: `site` should not block loading waiting for `settings`
* Maintenance: Updated dependencies.

* API Added: Initial support for using IndexedDB to store settings rather than localStorage
* API Added: Messages now have a `highlights` object if they've matched filters, describing which filters they matched.
This commit is contained in:
SirStendec 2020-07-22 21:31:41 -04:00
parent 65a00df2a9
commit 1c2bf202fc
18 changed files with 478 additions and 244 deletions

View file

@ -25,12 +25,18 @@ export default class AddonManager extends Module {
this.inject('settings');
this.inject('i18n');
this.load_requires = ['settings'];
this.has_dev = false;
this.reload_required = false;
this.addons = {};
this.enabled_addons = [];
}
onLoad() {
this._loader = this.loadAddonData();
}
async onEnable() {
this.settings.addUI('add-ons', {
path: 'Add-Ons @{"description": "Add-Ons are additional modules, often written by other people, that can be loaded automatically by FrankerFaceZ to add new capabilities and behaviors to the extension and Twitch.", "profile_warning": false}',
@ -69,16 +75,17 @@ export default class AddonManager extends Module {
this.settings.provider.on('changed', this.onProviderChange, this);
await this.loadAddonData();
this.enabled_addons = this.settings.provider.get('addons.enabled', []);
this._loader.then(() => {
this.enabled_addons = this.settings.provider.get('addons.enabled', []);
// We do not await enabling add-ons because that would delay the
// main script's execution.
for(const id of this.enabled_addons)
if ( this.hasAddon(id) )
this._enableAddon(id);
// We do not await enabling add-ons because that would delay the
// main script's execution.
for(const id of this.enabled_addons)
if ( this.hasAddon(id) )
this._enableAddon(id);
this.emit(':ready');
this.emit(':ready');
});
}
generateLog() {