Split commands into subdirectories
* Move command files into directories * Edit relative paths * Update gitignore * Finish support for commands in subdir * Split up getCommandFiles into own function * Add support for subdirs on help command
This commit is contained in:
parent
8993eeaf7a
commit
e7cdd425d1
21 changed files with 55 additions and 35 deletions
74
commands/misc/netload.js
Normal file
74
commands/misc/netload.js
Normal file
|
@ -0,0 +1,74 @@
|
|||
const https = require('https');
|
||||
const fs = require('fs')
|
||||
const netloadDir = "../../netload"
|
||||
const validUrl = require('valid-url');
|
||||
|
||||
module.exports = {
|
||||
name: 'netload',
|
||||
description: 'Load a module from the internet',
|
||||
moreHelp: ["Examples:",
|
||||
"Either provide a link to the module, or upload it",
|
||||
"To get an example of how your module should look like, do:",
|
||||
"<prefix>netload example",
|
||||
"You have to be whitelisted to use this command.",
|
||||
"The bot operator also has to have this enabled in the config."
|
||||
],
|
||||
execute({ message, args, prefix, client, owners }) {
|
||||
let json = fs.readFileSync('../../data/netmoduleWhitelist.json', 'utf8');
|
||||
let whitelist = JSON.parse(json)
|
||||
if (json.indexOf(message.author.id.toString()) == -1) {
|
||||
message.channel.send("You do not have permissions to use this command.");
|
||||
return;
|
||||
}
|
||||
if (args[0] == "whitelist" && owners.indexOf(message.author.id.toString()) >= 0) {
|
||||
whitelist.push(args[1])
|
||||
fs.writeFileSync("./data/netmoduleWhitelist.json", JSON.stringify(whitelist, null, 4))
|
||||
return;
|
||||
}
|
||||
if (!args[0] && message.attachments.size == 0) {
|
||||
message.channel.send(`You have to either specify a url or upload a file via the command.\nTo get an example file, execute \`${prefix}netload example\``)
|
||||
return;
|
||||
|
||||
} if (args[0] == "example") {
|
||||
|
||||
let example = fs.readFileSync("../.example")
|
||||
|
||||
message.channel.send(`\`\`\`js\n${example}\n\`\`\``)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
let url, fileName;
|
||||
if (message.attachments.size > 0) {
|
||||
url = message.attachments.first().url
|
||||
fileName = message.attachments.first().name
|
||||
} else {
|
||||
url = args[0]
|
||||
if (!validUrl.isUri(url)) {
|
||||
message.channel.send("This does not look like a valid url")
|
||||
return;
|
||||
}
|
||||
fileName = args[0].split("/")[args[0].split("/").length - 1]
|
||||
}
|
||||
if (fs.existsSync(`${netloadDir}/${fileName}`)) {
|
||||
message.channel.send(`A module with this filename(${fileName}) already exists.`)
|
||||
return;
|
||||
}
|
||||
https.get(url, (res) => {
|
||||
res.on('data', (d) => {
|
||||
fs.writeFileSync(`${netloadDir}/${fileName}`, d);
|
||||
reloadNetModules(client);
|
||||
});
|
||||
|
||||
}).on('error', (e) => {
|
||||
message.channel.send("Error download file.");
|
||||
console.log(e)
|
||||
});
|
||||
|
||||
let reloadNetModules = require('../util/reloadNetModules');
|
||||
reloadNetModules(client)
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue