-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmodules.js
75 lines (60 loc) · 1.81 KB
/
modules.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
const Discord = require('./bot.js');
const fs = require('fs');
const path = require('path');
const chalk = require('chalk');
const bhlog = console.log
exports.init = function(){
load_modules();
};
exports.reload = function() {
reload_modules();
};
function getDir(srcpath) {
return fs.readdirSync(srcpath).filter(function(file) {
return fs.statSync(path.join(srcpath, file)).isDirectory();
});
}
const mainDir = './modules/';
const mainDirs = getDir(mainDir);
function reload_modules() {
for (let i = 0; i<mainDirs.length; i++) {
function getFile(srcpath) {
return fs.readdirSync(srcpath).filter(function(file) {
return fs.statSync(path.join(srcpath, file)).isFile();
});
}
const moduleFile = getFile(mainDir + mainDirs[i]);
for (let j = 0; j<moduleFile.length; j++) {
try {
delete require.cache[require.resolve(mainDir + mainDirs[i] + '/' + moduleFile[j])];
} catch(err) {
}
}
}
load_modules();
}
function load_modules() {
let commandCount = 0;
for (let i = 0; i<mainDirs.length; i++) {
function getFile(srcpath) {
return fs.readdirSync(srcpath).filter(function(file) {
return fs.statSync(path.join(srcpath, file)).isFile();
});
}
const moduleFile = getFile(mainDir + mainDirs[i]);
for (let j = 0; j<moduleFile.length; j++) {
let mod;
try {
mod = require(mainDir + mainDirs[i] + '/' + moduleFile[j]);
if ("command" in mod) {
Discord.addCommand(mod.command, mod[mod.command])
commandCount++;
}
} catch(err) {
bhlog(chalk.red('ERR!') + ` The module ${moduleFile[j]} is set-up incorrectly!\n${err.stack}`);
}
}
}
exports.commandCount = commandCount;
bhlog(chalk.blue('Success!') + ` ${commandCount} modules have been loaded!`)
}