64 lines
No EOL
1.6 KiB
JavaScript
64 lines
No EOL
1.6 KiB
JavaScript
const { Command } = require('discord-akairo');
|
|
const fs = require('fs');
|
|
|
|
class StarBoardCommand extends Command {
|
|
constructor() {
|
|
super('starboard', {
|
|
aliases: ['starboard'],
|
|
category: 'admin',
|
|
channel: 'guild',
|
|
userPermissions: ['MANAGE_CHANNELS'],
|
|
args: [
|
|
{
|
|
id: 'emote',
|
|
type: 'string',
|
|
prompt: {
|
|
start: 'What emote should be used to enter the shameboard?',
|
|
},
|
|
unordered: true
|
|
},
|
|
{
|
|
id: 'count',
|
|
type: 'integer',
|
|
prompt: {
|
|
start: 'How many times should that emote be reacted to enter the shameboard?',
|
|
optional: true
|
|
},
|
|
default: '4',
|
|
unordered: true
|
|
},
|
|
{
|
|
id: 'remove',
|
|
match: 'flag',
|
|
flag: '--remove'
|
|
}
|
|
],
|
|
description: {
|
|
content: 'Set starboard to the current channel. --remove to remove the starboard',
|
|
usage: '[emote] [minimum number required to enter starboard]',
|
|
examples: ['']
|
|
}
|
|
});
|
|
}
|
|
|
|
async exec(message, args) {
|
|
if (!args.remove) {
|
|
let starboardChannel = message.channel.id;
|
|
|
|
fs.writeFile(`./board/star${message.guild.id}.json`, `{"starboard": "${starboardChannel}", "emote": "${args.emote}", "count": "${args.count}"}`, function (err) {
|
|
if (err) {
|
|
console.log(err);
|
|
}
|
|
});
|
|
|
|
return message.channel.send(`This channel have been set as the starboard with ${args.emote} with the minimum of ${args.count}`);
|
|
} else {
|
|
fs.unlink(`./board/star${message.guild.id}.json`, function (err) {
|
|
if (err) return message.channel.send('There is no shameboard');
|
|
return message.channel.send('Deleted the starboard');
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = StarBoardCommand; |