Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { Client, MessageEmbed } = require('discord.js');
- const client = new Client();
- const token = require('./tokens.json').vote;
- client.on('ready', () => console.log(`${client.user.tag} has logged in.`));
- client.login(token);
- client.on('message', async message => {
- if(message.author.bot) return;
- if(!Authorized(message.guild.roles.cache)) return;
- if(message.content.toLowerCase().startsWith('!createpoll')) {
- let args = message.content.split(" ");
- let time = args[1];
- let question = args.slice(2).join(" ");
- let regex = new RegExp(/^([0-9]{2}|[0-9]{1})[sSmM]$/);
- if(regex.test(time)) {
- if(time.toLowerCase().endsWith('s')) {
- time = parseInt(time.substring(0, time.indexOf('s')));
- time *= 1000;
- }
- else if(time.toLowerCase().endsWith('m')) {
- time = parseInt(time.substring(0, time.indexOf('m')));
- time *= 60 * 1000;
- }
- const embed = new MessageEmbed()
- .setTitle(question)
- .setDescription('React with š or š')
- .setTimestamp();
- try {
- const polls = new Map();
- const userVotes = new Map();
- let filter = (reaction, user) => {
- if(user.bot) return false;
- if(['š', 'š'].includes(reaction.emoji.name)) {
- if(polls.get(reaction.message.id).get(user.id))
- return false;
- else {
- userVotes.set(user.id, reaction.emoji.name);
- return true;
- }
- }
- }
- let msg = await message.channel.send(embed);
- await msg.react('š');
- await msg.react('š');
- polls.set(msg.id, userVotes);
- let reactions = await msg.awaitReactions(filter, { time: time });
- let thumbsUp = reactions.get('š');
- let thumbsDown = reactions.get('š');
- let thumbsUpResults = 0, thumbsDownResults = 0;
- if(thumbsUp)
- thumbsUpResults = thumbsUp.users.cache.filter(u => !u.bot).size;
- if(thumbsDown)
- thumbsDownResults = thumbsDown.users.cache.filter(u => !u.bot).size;
- const resultsEmbed = new MessageEmbed()
- .setTitle('Results')
- .setDescription(`š - ${thumbsUpResults} votes\n\nš - ${thumbsDownResults} votes\n`);
- await message.channel.send(resultsEmbed);
- }
- catch(err) {
- console.log(err);
- }
- }
- }
- });
- let Authorized = (roles) => {
- return (roles.some(r => r.name === 'Head Admin') || roles.some(r => r.name === 'Admin') || (roles.some(r => r.name === 'Moderator') || (roles.some(r => r.name === 'Developer'))));
- };
Add Comment
Please, Sign In to add comment