mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-07-26 04:28:31 +00:00
4.20.15
* 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:
parent
65a00df2a9
commit
1c2bf202fc
18 changed files with 478 additions and 244 deletions
|
@ -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() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue