This commit is contained in:
Eartharoid 2019-05-03 23:54:28 +01:00
parent 74fd489354
commit 61310e09b6
3 changed files with 110 additions and 53 deletions

View File

@ -1,9 +1,12 @@
const Discord = require('discord.js'); const Discord = require('discord.js');
const { version } = require('../package.json');
module.exports = { module.exports = {
name: 'help', name: 'help',
description: 'Displays help menu', description: 'Displays help menu',
usage: 'help [command]', usage: '[command]',
aliases: ['command', 'commands'], aliases: ['command', 'commands'],
args: false,
cooldown: 5,
execute(message, args, config, version) { execute(message, args, config, version) {
const client = message.client; const client = message.client;
// command starts here // command starts here
@ -15,7 +18,9 @@ module.exports = {
.addField("...", `...`, true) .addField("...", `...`, true)
.addField("...", `...`, true) .addField("...", `...`, true)
.setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`); .setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`);
message.channel.send({embed}) message.channel.send({
embed
})
} else { } else {
message.channel.send(`**Prefix =** \`${config.prefix}\`\n**Bot Version =** \`${version}\``) message.channel.send(`**Prefix =** \`${config.prefix}\`\n**Bot Version =** \`${version}\``)
} }

View File

@ -1,7 +1,9 @@
module.exports = { module.exports = {
name: 'new', name: 'new',
description: 'Create a new ticket', description: 'Create a new ticket',
usage: 'new [brief description]', usage: '<brief description>',
aliases: ['ticket'],
args: true,
execute(message, args, config) { execute(message, args, config) {
// command starts here // command starts here
message.delete(); message.delete();

View File

@ -45,6 +45,8 @@ const config = require('./config.json');
const { version, homepage } = require('./package.json'); const { version, homepage } = require('./package.json');
const client = new Discord.Client(); const client = new Discord.Client();
client.commands = new Discord.Collection(); client.commands = new Discord.Collection();
const cooldowns = new Discord.Collection();
const commands = fs.readdirSync('./commands').filter(file => file.endsWith('.js')); const commands = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
@ -78,7 +80,12 @@ client.once('ready', () => { // after bot has logged in
console.log(`> Loading '${config.prefix}${command.name}' command`); console.log(`> Loading '${config.prefix}${command.name}' command`);
} }
console.log(leeks.colors.green(`Logged in as ${client.user.tag}`)) console.log(leeks.colors.green(`Logged in as ${client.user.tag}`))
client.user.setPresence({ game: { name: config.playing }, status: 'online' }) client.user.setPresence({
game: {
name: config.playing
},
status: 'online'
})
// .then(console.log) // .then(console.log)
.catch(console.error); .catch(console.error);
// console.log(leeks.colors.green(`Set playing status as `) + leeks.colors.yellow(`'${config.playing}${config.prefix}help'`)); // console.log(leeks.colors.green(`Set playing status as `) + leeks.colors.yellow(`'${config.playing}${config.prefix}help'`));
@ -89,7 +96,9 @@ client.once('ready', () => { // after bot has logged in
.setColor("#2ECC71") .setColor("#2ECC71")
.setDescription(":white_check_mark: **Started succesfully**") .setDescription(":white_check_mark: **Started succesfully**")
.setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`); .setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`);
client.channels.get(config.logChannel).send({embed}) client.channels.get(config.logChannel).send({
embed
})
} else { } else {
client.channels.get(config.logChannel).send(":white_check_mark: **Started succesfully**") client.channels.get(config.logChannel).send(":white_check_mark: **Started succesfully**")
} }
@ -101,7 +110,9 @@ client.once('ready', () => { // after bot has logged in
.setColor("#2ECC71") .setColor("#2ECC71")
.setDescription(":white_check_mark: **Required permissions have been granted**") .setDescription(":white_check_mark: **Required permissions have been granted**")
.setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`); .setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`);
client.channels.get(config.logChannel).send({embed}) client.channels.get(config.logChannel).send({
embed
})
} else { } else {
client.channels.get(config.logChannel).send(":white_check_mark: **Started succesfully**") client.channels.get(config.logChannel).send(":white_check_mark: **Started succesfully**")
} }
@ -114,7 +125,9 @@ client.once('ready', () => { // after bot has logged in
.setColor("#E74C3C") .setColor("#E74C3C")
.setDescription(":x: **Required permissions have not been granted**\nPlease give the bot the `ADMINISTRATOR` permission") .setDescription(":x: **Required permissions have not been granted**\nPlease give the bot the `ADMINISTRATOR` permission")
.setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`); .setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`);
client.channels.get(config.logChannel).send({embed}) client.channels.get(config.logChannel).send({
embed
})
} else { } else {
client.channels.get(config.logChannel).send(":white_check_mark: **Started succesfully**") client.channels.get(config.logChannel).send(":white_check_mark: **Started succesfully**")
} }
@ -127,6 +140,7 @@ client.on('message', message => {
if (message.author.bot) return; if (message.author.bot) return;
if (message.channel.type === "dm") { if (message.channel.type === "dm") {
if (message.author.id === client.user.id) return; if (message.author.id === client.user.id) return;
message.channel.send(`Sorry, commands can only be used on the server.`)
if (config.logDMs) { if (config.logDMs) {
if (config.useEmbeds) { if (config.useEmbeds) {
const embed = new Discord.RichEmbed() const embed = new Discord.RichEmbed()
@ -135,11 +149,15 @@ client.on('message', message => {
.addField("Username", message.author.tag, true) .addField("Username", message.author.tag, true)
.addField("Message", message.content, true) .addField("Message", message.content, true)
.setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`); .setFooter(`${client.guilds.get(config.guildID).name} : DiscordTickets by Eartharoid`);
client.channels.get(config.logChannel).send({embed}) client.channels.get(config.logChannel).send({
embed
})
} else { } else {
client.channels.get(config.logChannel).send(`DM received from **${message.author.tag} (${message.author.id})** : \n\n\`\`\`${message.content}\`\`\``); client.channels.get(config.logChannel).send(`DM received from **${message.author.tag} (${message.author.id})** : \n\n\`\`\`${message.content}\`\`\``);
} }
} else { return }; } else {
return
};
} }
if (message.channel.bot) return; if (message.channel.bot) return;
@ -151,11 +169,43 @@ client.on('message', message => {
const [, matchedPrefix] = message.content.match(prefixRegex); const [, matchedPrefix] = message.content.match(prefixRegex);
const args = message.content.slice(matchedPrefix.length).trim().split(/ +/); const args = message.content.slice(matchedPrefix.length).trim().split(/ +/);
const command = args.shift().toLowerCase(); const commandName = args.shift().toLowerCase();
if (!client.commands.has(command)) return; if (!client.commands.has(commandName)) return;
const command = client.commands.get(commandName);
if (command.args && !args.length) {
let reply = `:x: **Arguments were expected but none were provided.**`;
if (command.usage) {
reply += `\n**Usage:** \`${config.prefix}${command.name} ${command.usage}\``;
}
return message.channel.send(reply);
};
if (!cooldowns.has(command.name)) {
cooldowns.set(command.name, new Discord.Collection());
}
const now = Date.now();
const timestamps = cooldowns.get(command.name);
const cooldownAmount = (command.cooldown || 3) * 1000;
if (timestamps.has(message.author.id)) {
const expirationTime = timestamps.get(message.author.id) + cooldownAmount;
if (now < expirationTime) {
const timeLeft = (expirationTime - now) / 1000;
return message.reply(`please wait ${timeLeft.toFixed(1)} more second(s) before reusing the \`${command.name}\` command.`);
}
}
try { try {
client.commands.get(command).execute(message, args, config, version); // client.commands.get(command).execute(message, args, config);
command.execute(message, args, config);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
message.channel.send(`:x: **Oof!** An error occured whilst executing that command.\nThe issue has been reported.`); message.channel.send(`:x: **Oof!** An error occured whilst executing that command.\nThe issue has been reported.`);