2019-05-30 17:44:05 +02:00
|
|
|
import {SettingsCookie} from "data";
|
2019-06-05 06:30:24 +02:00
|
|
|
import SettingState from "../data/settings/state";
|
|
|
|
import EmoteState from "../data/emotes/state";
|
2019-05-30 17:44:05 +02:00
|
|
|
import Utilities from "../modules/utilities";
|
|
|
|
import Events from "../modules/emitter";
|
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
export function onSettingChange(category, identifier, onEnable, onDisable) {
|
|
|
|
const handler = (cat, id, enabled) => {
|
|
|
|
if (category !== cat || id !== identifier) return;
|
|
|
|
if (enabled) onEnable();
|
|
|
|
else onDisable();
|
|
|
|
};
|
|
|
|
Events.on("setting-updated", handler);
|
|
|
|
return () => {Events.off("setting-updated", handler);};
|
|
|
|
}
|
|
|
|
|
2019-05-30 17:44:05 +02:00
|
|
|
export default class BuiltinModule {
|
|
|
|
|
|
|
|
get name() {return "Unnamed Builtin";}
|
2019-06-05 06:30:24 +02:00
|
|
|
get category() {return "settings";}
|
|
|
|
get group() {return "general";}
|
2019-05-30 17:44:05 +02:00
|
|
|
get id() {return "None";}
|
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
async initialize() {
|
2019-06-05 06:30:24 +02:00
|
|
|
const state = this.category == "settings" ? SettingState : EmoteState;
|
|
|
|
if (state[this.group][this.id]) await this.enable();
|
|
|
|
Events.on("setting-updated", (group, id, enabled) => {
|
|
|
|
if (group !== this.group || id !== this.id) return;
|
2019-05-30 23:18:52 +02:00
|
|
|
if (enabled) this.enable();
|
|
|
|
else this.disable();
|
2019-05-30 17:44:05 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
async enable() {
|
|
|
|
this.log("Enabled");
|
|
|
|
await this.enabled();
|
|
|
|
}
|
|
|
|
|
|
|
|
async disable() {
|
|
|
|
this.log("Disabled");
|
|
|
|
await this.disabled();
|
|
|
|
}
|
|
|
|
|
|
|
|
async enabled() {}
|
|
|
|
async disabled() {}
|
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
log(...message) {
|
|
|
|
Utilities.log(this.name, ...message);
|
2019-05-30 17:44:05 +02:00
|
|
|
}
|
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
warn(...message) {
|
|
|
|
Utilities.warn(this.name, ...message);
|
2019-05-30 17:44:05 +02:00
|
|
|
}
|
|
|
|
|
2019-05-30 23:18:52 +02:00
|
|
|
error(...message) {
|
|
|
|
Utilities.err(this.name, ...message);
|
2019-05-30 17:44:05 +02:00
|
|
|
}
|
|
|
|
}
|