1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-08-12 00:50:53 +00:00
FrankerFaceZ/src/utilities/addon.js
SirStendec 535192d931 4.1.2
* Fixed: Mentions not appearing in bold font.
* Fixed: Highlighting messages in chat when opening a viewer card by clicking a mention that wasn't all lower-case.
* Fixed: Detection of External add-ons when there is a name collision.
* Changed: Do not report name collision errors.
* Changed: Allow for multi-line add-on descriptions.
2019-06-01 13:58:12 -04:00

45 lines
No EOL
845 B
JavaScript

import Module from 'utilities/module';
export class Addon extends Module {
constructor(...args) {
super(...args);
this.inject('i18n');
this.inject('settings');
}
static register(id, info) {
if ( typeof id === 'object' ) {
info = id;
id = info.id || undefined;
}
if ( ! id ) {
if ( this.name )
id = this.name.toSnakeCase();
else
throw new Error(`Unable to register module without ID.`);
}
if ( ! info && this.info )
info = this.info;
const ffz = FrankerFaceZ.get();
if ( info ) {
info.id = id;
ffz.addons.addAddon(info);
}
try {
ffz.register(`addon.${id}`, this);
} catch(err) {
if ( err.message && err.message.includes('Name Collision for Module') ) {
const module = ffz.resolve(`addon.${id}`);
if ( module )
module.external = true;
}
throw err;
}
}
}