mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-07-25 20:18:25 +02:00
Events system, first pass
This commit is contained in:
parent
d6f5429ce8
commit
002b0e941e
5 changed files with 92 additions and 32 deletions
47
core/events.js
Normal file
47
core/events.js
Normal file
|
@ -0,0 +1,47 @@
|
|||
/* jslint node: true */
|
||||
'use strict';
|
||||
|
||||
const Config = require('./config.js');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const events = require('events');
|
||||
const logger = require('./logger.js');
|
||||
|
||||
var eventEmitter = new events.EventEmitter();
|
||||
|
||||
var self = module.exports = {
|
||||
emit: function(eventName, args) {
|
||||
logger.log.debug("Emit "+eventName);
|
||||
eventEmitter.emit(eventName, args);
|
||||
},
|
||||
on: function(eventName, listener) {
|
||||
logger.log.debug("Register listener for "+eventName);
|
||||
eventEmitter.on(eventName, listener);
|
||||
},
|
||||
remove: function(eventName, listener) {
|
||||
logger.log.debug("Remove listener for "+eventName);
|
||||
eventEmitter.removeListener(eventName, listener);
|
||||
},
|
||||
registerModules: function() {
|
||||
var mods = fs.readdirSync(Config.config.paths.mods);
|
||||
|
||||
mods.forEach(function(item) {
|
||||
var modPath = Config.config.paths.mods+item;
|
||||
if (item.substr(item.length-3) != '.js') {
|
||||
modPath += path.sep+item+'.js';
|
||||
}
|
||||
if (fs.existsSync(modPath)) {
|
||||
var module = require(modPath);
|
||||
|
||||
if (module.registerEvents !== undefined) {
|
||||
logger.log.debug(modPath+" calling registerEvents function");
|
||||
module.registerEvents();
|
||||
} else {
|
||||
logger.log.debug(modPath+" has no registerEvents function");
|
||||
}
|
||||
} else {
|
||||
logger.log.debug(modPath+" - file not found");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue