commit
1dae0a40b2
|
@ -8,15 +8,14 @@
|
|||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import { DOM, BdUI, ProfileBadges } from 'ui';
|
||||
import { DOM, BdUI } from 'ui';
|
||||
import BdCss from './styles/index.scss';
|
||||
import { Events, CssEditor, Globals, PluginManager, ThemeManager } from 'modules';
|
||||
import { Events, CssEditor, Globals, PluginManager, ThemeManager, ModuleManager } from 'modules';
|
||||
import { ClientLogger as Logger } from 'common';
|
||||
|
||||
class BetterDiscord {
|
||||
|
||||
constructor() {
|
||||
ProfileBadges.init(); // Not final way to do it
|
||||
DOM.injectStyle(BdCss, 'bdmain');
|
||||
Events.on('global-ready', this.globalReady.bind(this));
|
||||
}
|
||||
|
@ -24,6 +23,7 @@ class BetterDiscord {
|
|||
async init() {
|
||||
await PluginManager.loadAllPlugins();
|
||||
await ThemeManager.loadAllThemes();
|
||||
ModuleManager.initModules();
|
||||
Events.emit('ready');
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
/**
|
||||
* BetterDiscord Event Listener Module
|
||||
* Copyright (c) 2015-present Jiiks/JsSucks - https://github.com/Jiiks / https://github.com/JsSucks
|
||||
* All rights reserved.
|
||||
* https://betterdiscord.net
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import Module from './module';
|
||||
import Events from './events';
|
||||
|
||||
export default class extends Module {
|
||||
|
||||
events() {
|
||||
for (let event of this.eventBindings) {
|
||||
Events.on(event.id, event.callback);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -23,4 +23,5 @@ export default class {
|
|||
static emit(...args) {
|
||||
emitter.emit(...args);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -20,10 +20,10 @@ export default class Module {
|
|||
args
|
||||
}
|
||||
this.setState = this.setState.bind(this);
|
||||
this.init();
|
||||
this.initialize();
|
||||
}
|
||||
|
||||
init() {
|
||||
initialize() {
|
||||
if (this.bindings) this.bindings();
|
||||
if (this.setInitialState) this.setInitialState(this.state);
|
||||
if (this.events) this.events();
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* BetterDiscord Module Manager
|
||||
* Copyright (c) 2015-present Jiiks/JsSucks - https://github.com/Jiiks / https://github.com/JsSucks
|
||||
* All rights reserved.
|
||||
* https://betterdiscord.net
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/*Module Manager initializes all modules when everything is ready*/
|
||||
|
||||
import { Events } from 'modules';
|
||||
import { ProfileBadges } from 'ui';
|
||||
|
||||
export default class {
|
||||
|
||||
static get modules() {
|
||||
return this._modules ? this._modules : (this._modules = [
|
||||
new ProfileBadges()
|
||||
]);
|
||||
}
|
||||
|
||||
static initModules() {
|
||||
for (let module of this.modules) {
|
||||
try {
|
||||
if (module.init && module.init instanceof Function) module.init();
|
||||
} catch (err) {
|
||||
console.log(`Failed to initialize module: ${err}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -6,3 +6,5 @@ export { default as ThemeManager } from './thememanager';
|
|||
export { default as Globals } from './globals';
|
||||
export { default as Vendor } from './vendor';
|
||||
export { default as WebpackModules } from './webpackmodules';
|
||||
export { default as ModuleManager } from './modulemanager';
|
||||
export { default as EventListener } from './eventlistener';
|
|
@ -17,7 +17,6 @@ import { Utils } from 'common';
|
|||
export default class {
|
||||
|
||||
static initUiEvents() {
|
||||
//this.profilePopupModule.open
|
||||
const defer = setInterval(() => {
|
||||
if (!this.profilePopupModule) return;
|
||||
clearInterval(defer);
|
||||
|
|
|
@ -8,18 +8,24 @@
|
|||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
import { EventListener } from 'modules';
|
||||
import DOM from './dom';
|
||||
import { BdBadge } from './components/bd';
|
||||
import VueInjector from './vueinjector';
|
||||
import { Events } from 'modules';
|
||||
|
||||
export default class {
|
||||
export default class extends EventListener {
|
||||
|
||||
static init() {
|
||||
Events.on('ui-event', this.uiEvent.bind(this));
|
||||
bindings() {
|
||||
this.uiEvent = this.uiEvent.bind(this);
|
||||
}
|
||||
|
||||
static uiEvent(e) {
|
||||
get eventBindings() {
|
||||
return [
|
||||
{ id: 'ui-event', callback: this.uiEvent }
|
||||
];
|
||||
}
|
||||
|
||||
uiEvent(e) {
|
||||
const { event, data } = e;
|
||||
if (event !== 'profile-popup-open') return;
|
||||
const { userid } = data;
|
||||
|
@ -28,7 +34,7 @@ export default class {
|
|||
this.inject(userid);
|
||||
}
|
||||
|
||||
static inject(userid) {
|
||||
inject(userid) {
|
||||
const c = this.contributors.find(c => c.id === userid);
|
||||
if (!c) return;
|
||||
|
||||
|
@ -52,11 +58,7 @@ export default class {
|
|||
}, 400);
|
||||
}
|
||||
|
||||
static filter(mutation) {
|
||||
return mutation.target.firstChild && mutation.target.className.includes('modal');
|
||||
}
|
||||
|
||||
static get contributors() {
|
||||
get contributors() {
|
||||
return [
|
||||
{ 'id': '81388395867156480', 'webdev': true, 'developer': true, 'contributor': true }, // Jiiks
|
||||
{ 'id': '98003542823944192', 'webdev': false, 'developer': true, 'contributor': true }, // Pohky
|
||||
|
|
Loading…
Reference in New Issue