This commit is contained in:
Isaac
2021-02-16 22:34:20 +00:00
parent cf8dff2a5b
commit 5fdfb121c7
17 changed files with 257 additions and 32 deletions

41
src/modules/commands.js Normal file
View File

@@ -0,0 +1,41 @@
const fs = require('fs');
const { join } = require('path');
const { path } = require('../utils/fs');
class CommandManager {
constructor(client) {
this.client = client;
this.commands = new Map();
}
load(command) {
}
unload(command) {
}
reload(command) {
}
get(command) {
}
get list() {
return this.commands;
}
}
class Command {
constructor(client) {
}
}
module.exports = {
CommandManager,
Command
};

13
src/modules/listeners.js Normal file
View File

@@ -0,0 +1,13 @@
const fs = require('fs');
const { path } = require('../utils/fs');
module.exports = client => {
const files = fs.readdirSync(path('./src/listeners'))
.filter(file => file.endsWith('.js'));
for (const file of files) {
const listener = require(`../listeners/${file}`);
// client.on(listener.event, ...args => listener.execute(client, ...args));
client.on(listener.event, args => listener.execute(client, args));
}
};

35
src/modules/plugins.js Normal file
View File

@@ -0,0 +1,35 @@
const yarpm = require('yarpm');
const fs = require('fs');
const { join } = require('path');
const { path } = require('../utils/fs');
module.exports = async client => {
const plugins = {};
const dirs = fs.readdirSync(path('./user/plugins'));
for (const dir of dirs) {
let package_path = path(`./user/plugins/${dir}/package.json`);
if (!fs.existsSync(package_path)) continue;
let package = require(`../../user/plugins/${dir}/package.json`);
let main = require(join(`../../user/plugins/${dir}/`, package.main));
plugins[package.name] = package;
client.log.plugins(`Loading ${package.name} v${package.version} by ${package.author}`);
if (package.dependencies && Object.keys(package.dependencies).length >= 1) {
client.log.plugins(`Installing dependencies for ${package.name}`);
let deps = Object.keys(package.dependencies)
.map(d => `${d}@${package.dependencies[d]}`)
.join(' ');
await yarpm(['install', '--no-save', deps], {
stdout: process.stdout
});
await main(client);
} else {
await main(client);
}
}
};