UNPKG

playcord

Version:

playcord is an epic discord.js package which allows you to make an epic discord bot with some fun features :D!

175 lines (144 loc) 6.27 kB
const Discord = require('discord.js') const emojis = require('node-emoji') const axios = require('axios') async function pokemon() { try { const response = await axios.get('https://pokeapi.co/api/v2/pokemon?limit=1000'); const results = response.data.results; const randomIndex = Math.floor(Math.random() * results.length); const pokemon = results[randomIndex]; const pokemonData = await axios.get(pokemon.url); const pokemonName = pokemonData.data.name; const pokemonImage = pokemonData.data.sprites.front_default; return{ name: pokemonName, image: pokemonImage } } catch (error) { console.error('Error fetching Pokemon data:', error); message.channel.send('Sorry, an error occurred while fetching Pokemon data. Please try again later.'); } } function randomNumber(min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; } function generateRandomWord() { let word = ''; const alphabet = 'abcdefghijklmnopqrstuvwxyz'; for (let i = 0; i < 10; i++) { const randomIndex = Math.floor(Math.random() * alphabet.length); const randomLetter = alphabet[randomIndex]; const randomCase = Math.random() < 0.5 ? 'lower' : 'upper'; if (randomCase === 'upper') { word += randomLetter.toUpperCase(); } else { word += randomLetter.toLowerCase(); } } return word; } async function GuessTheNumber(message, max) { if (!message) return console.log('Please mention a message!') let maxLimit = max if (!maxLimit) { maxLimit = 100 } const randomN = randomNumber(1, Number(maxLimit)) const challenge = randomNumber(1, 20) const riddle = `**Hint:** *the number is lesser that ${randomN + challenge}!` const embed = new Discord.EmbedBuilder() .setTitle('Guess the number!') .setAuthor({name: message.user.username, iconURL: message.user.displayAvatarURL()}) .setColor('Greyple') .setDescription(riddle) const sentEmbed = await message.channel.send({embeds: [embed]}) const messageCollector = new Discord.MessageCollector(message.channel, {time: 30000}) messageCollector.on('collect', (msg) => { if (msg.content !== randomN) { msg.react('❌') } else { msg.react('✔️') sentEmbed.delete() const winEmbed = new Discord.EmbedBuilder() .setColor('Gold') .setTitle(`${msg.user.username} wins!`) .setDescription(`${msg.user.username} guessed the number! The number was **${randomN}**!`) msg.reply({embeds: [winEmbed]}) } }) messageCollector.on('end', () => { sentEmbed.delete() message.reply(`Nobody guessed the number! The number was **${randomN}**!`) }) } async function ReactFast(message) { if (!message) return console.log('Please mention a message') const emoji = emojis.random() const embed = new Discord.EmbedBuilder() .setColor('Greyple') .setAuthor({name: message.user.username, iconURL: message.user.displayAvatarURL()}) .setDescription(`The first one to react this message with this emoji wins! ${emoji}`) const sentEmbed = await message.channel.send({embeds: [embed]}) const reactCollector = new Discord.ReactionCollector(embed, {time: 30000}) reactCollector.on('collect', (reaction, user) => { if (reaction.emoji === emoji) { const winEmbed = new Discord.EmbedBuilder() .setColor('Gold') .setTitle(`${user.username} wins!`) .setDescription(`${user.username} was the first one to react to the message I sent!`) sentEmbed.delete() message.channel.send({embeds: [embed]}) } }) reactCollector.on('end', () => { sentEmbed.delete() message.reply('Nobody wants to react to that message I sent :(') }) } async function TypeIt(message) { if (!message) return console.log('Please mention a message') const word = generateRandomWord() const embed = new Discord.EmbedBuilder() .setAuthor({name: message.user.username, iconURL: message.user.displayAvatarURL()}) .setColor('Greyple') .setTitle('Type it!') .setDescription(`Type this word as fast as you can!: ${word}`) const messageCollector = new Discord.MessageCollector(message.channel, {time: 30000}) const sentEmbed = await message.channel.send({embeds: [embed]}) messageCollector.on('collect', (msg) => { if (msg.content !== word) { msg.react('❌') } else { msg.react('✔️') const winEmbed = new Discord.EmbedBuilder() .setTitle(`${msg.user.username} won!`) .setColor('Gold') .setDescription(`${msg.user.username} typed the word **${word}** correctly before anyone could!`) sentEmbed.delete() msg.reply({embeds: [embed]}) } }) messageCollector.on('end', () => { sentEmbed.delete() message.reply('Nobody typed the word :(') }) } async function WhosThatPokemon(message) { if (!message) return console.log('Please mention a message') const { name, image } = await pokemon() const embed = new Discord.EmbedBuilder() .setAuthor({name: message.user.username, iconURL: message.user.displayAvatarURL()}) .setColor('Greyple') .setTitle('Whos that pokemon!') .setImage(pokemonImage) const messageCollector = new Discord.MessageCollector(message.channel, {time: 30000}) const sentEmbed = message.channel.send({embeds: [embed]}) messageCollector.on('collect', (msg) => { if (msg.content !== name) { msg.react('❌') } else { msg.react('✔️') const winEmbed = new Discord.EmbedBuilder() .setTitle(`${msg.user.username} wins!`) .setDescription(`${msg.user.username} guessed the pokemon! The pokemon was **${name}**!`) } }) } module.exports = { GuessTheNumber, ReactFast, TypeIt, WhosThatPokemon}