mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-08-12 00:50:53 +00:00
* 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.
45 lines
No EOL
845 B
JavaScript
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;
|
|
}
|
|
}
|
|
} |