const { Client, CommandInteraction, MessageEmbed, MessageActionRow, MessageSelectMenu } = require('discord.js') module.exports = { name: 'agents', description: 'List of Agents', /** * @param {Client} client * @param {CommandInteraction} interaction */ run: async(client, interaction) => { const brimstone = new MessageEmbed() .setColor('#c0ffee') .setTitle('Brimstone') .setURL('https://valorant.fandom.com/wiki/Brimstone') .setDescription('Brimstone is a powerful commander that utilizes incendiary grenades, smokescreen airstrikes, and rapid-fire-inducing stim beacons to damage enemies and buff teammates. His impressive Orbital Strike ultimate summons an enormous laser that destroys anyone who does not move out of the radius fast enough') .addFields( {name:'Alias', value:'Big Man'}, {name:'Origin',value:'United Nations'}, ) .setImage('https://media.discordapp.net/attachments/882510106690981898/882523803568201758/587.png?width=442&height=678') const viper = new MessageEmbed() .setColor('#c0ffee') .setTitle('viper') .setURL('https://valorant.fandom.com/wiki/Viper') .setDescription('Viper is a predator that deals in poison and chemical warfare. She has exploding projectiles that spill acid on the battlefield, as well as a poison-gas emitter, and a toxic gas screen to prevent passage. Her ultimate emits a toxic cloud that conceals her location and can highlight enemies who wander into it') .addFields( {name:'Alias', value:'Sabine'}, {name:'Origin',value:'United Nations'}, ) .setImage('https://media.discordapp.net/attachments/882510106690981898/882569200340709396/587.png?width=442&height=678') const omen = new MessageEmbed() .setColor('#c0ffee') .setTitle('Omen') .setURL('https://valorant.fandom.com/wiki/Omen') .setDescription('A man with mysterious origins, Omen is focused on hindering the vision of his enemies with things like an orb that strikes those in his sights with nearsightedness and another that bursts to obscure the vision of everyone nearby. He can also teleport a short distance, or use his ultimate to teleport anywhere on the map as a shadow') .addFields( {name:'Alias', value:'Ja-'}, {name:'Origin',value:'Unknown'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/0/06/Omen_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020233') const killjoy = new MessageEmbed() .setColor('#c0ffee') .setTitle('Killjoy') .setURL('https://valorant.fandom.com/wiki/Killjoy') .setDescription('Killjoy uses a collection of inventions and devices to take down her enemies.') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Germany'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/6/6b/Killjoy_artwork.png/revision/latest/scale-to-width-down/679?cb=20200729134445') const cypher = new MessageEmbed() .setColor('#c0ffee') .setTitle('Cypher') .setURL('https://valorant.fandom.com/wiki/Cypher') .setDescription('If intel is your thing, Cypher might be your Agent. This Moroccan surveillance Agent has abilities that trap and reveal the locations of enemies that get stuck in them, as well as an actual spycam he can place on the map to watch the action from afar. His ultimate extracts information from a fresh enemy corpse to temporarily reveal the location of remaining players on the opposing team.') .addFields( {name:'Alias', value:'Aamir'}, {name:'Origin',value:'Morocco'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/b/bb/Cypher_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020329') const sova = new MessageEmbed() .setColor('#c0ffee') .setTitle('Sova') .setURL('https://valorant.fandom.com/wiki/Sova') .setDescription('Sova tracks, finds, and eliminates enemies with ruthless efficiency and precision. His custom bow and incredible scouting abilities ensure that even if you run, you cannot hide. An archery expert, he can equip his bow with different bolts that reveal enemy locations or shock nearby adversaries. He can also deploy a recon drone to survey the battlefield, while his ultimate lets him fire three deadly arrow shots through walls.Originally, Sova was supposed to be a female and was supposed to have a visor.') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Russia'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/6/61/Sova_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020314') const sage = new MessageEmbed() .setColor('#c0ffee') .setTitle('Sage') .setURL('https://valorant.fandom.com/wiki/Sage') .setDescription('Sage creates safety for herself and her team wherever she goes. Able to revive fallen friends and stave off forceful assaults, she provides a calm center to a hellish battlefield.The most prominent support character to date hails from China and brings orbs that heal allies, slow enemies, and create barriers out of the ground to impede the flow of a match. Her ultimate ability allows her to resurrect a fallen ally, which is significant in a game with no respawns') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'China'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/1/1e/Sage_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020306') const phoenix = new MessageEmbed() .setColor('#c0ffee') .setTitle('Phoenix') .setURL('https://valorant.fandom.com/wiki/Phoenix') .setDescription('The fiery Brit can wield the power of flame to essentially reshape the battlefield into how he sees fit. With exploding fireballs that damage enemies and heal him, a vision-blocking wall of fire, and a blinding fire burst, Phoenix is great at manipulating the flow of the match. His ultimate grants him the ability to be reborn if he is killed during its duration, galvanizing him to make bold moves he wouldn not otherwise make. \n Phoenix can heal himself by standing in his own fire.') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'United Kingdok'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/f/fa/Phoenix_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020246') const jett = new MessageEmbed() .setColor('#c0ffee') .setTitle('Jett') .setURL('https://valorant.fandom.com/wiki/Jett') .setDescription('From Korea comes Jett, an agile fighter who prioritizes movement over everything. Her abilities include a teleportation-based dash and an updraft that lets her reach higher ledges. She also has a smokebomb ability to hinder sightlines and a powerful Bladestorm ultimate that deals moderate-to-heavy damage and remains accurate even while she is moving.') .addFields( {name:'Alias', value:'Joon-hee'}, {name:'Origin',value:'South Korea'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/7/79/Jett_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020209') const reyna = new MessageEmbed() .setColor('#c0ffee') .setTitle('Reyna') .setURL('https://valorant.fandom.com/wiki/Reyna') .setDescription('') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Mexico'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/4/41/Reyna_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020340') const raze = new MessageEmbed() .setColor('#c0ffee') .setTitle('Raze') .setURL('https://valorant.fandom.com/wiki/Raze') .setDescription('Raze\'s playstyle is very aggressive compared to many of the other agents in VALORANT, as most of her abilities are focused on mobility and damage instead of intel gathering or support. She is one of the few agents where most of her abilities are primarily meant to deal damage, namely Paint Shells and Showstopper, and has commonly been criticized by the community for said abilities.') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Brazil'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/c/c4/Raze_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020217') const breach = new MessageEmbed() .setColor('#c0ffee') .setTitle('Breach') .setURL('https://valorant.fandom.com/wiki/Breach') .setDescription('Breach\'s main gimmick is the ability to use all of his abilities through the geometry of the map,whether it is through walls, roofs, or terrain. This ability set rewards experienced players for knowing the maps well. His abilities also seem to reward an aggressive playstyle despite most of his abilities being crowd-control based.') .addFields( {name:'Alias', value:'Breachy'}, {name:'Origin',value:'Sweden'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/5/5c/Breach_artwork.png/revision/latest/scale-to-width-down/587?cb=20200602020225') const skye = new MessageEmbed() .setColor('#c0ffee') .setTitle('Skye') .setURL('https://valorant.fandom.com/wiki/Skye') .setDescription('The character, a more passive agent with a penchant for nature and non-human companions, can summon birds for scouting and even a dog you can embody and scour the map with to perform reconnaissance and stun opponents.') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Australia'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/d/d6/Skye_artwork.png/revision/latest/scale-to-width-down/587?cb=20201013182515') const yoru = new MessageEmbed() .setColor('#c0ffee') .setTitle('Yoru') .setURL('https://valorant.fandom.com/wiki/Yoru') .setDescription('Yoru is a duelist agent who specializes in faking out opponents and moving into unsuspecting positions. He has two abilities that allow him to move to a new location stealthily and another that is designed to make enemies think that he has moved. So keeping track of him is near impossible at times.') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Japan'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/1/1a/Yoru_artwork.png/revision/latest/scale-to-width-down/587?cb=20210112180407') const kay = new MessageEmbed() .setColor('#c0ffee') .setTitle('KAY/O') .setURL('https://valorant.fandom.com/wiki/KAYO') .setDescription('KAY/O is a machine of war built for a single purpose: neutralizing radiants. His power to suppress enemy abilities cripples his opponents\' capacity to fight back, securing him and his allies the ultimate edge.') .addFields( {name:'Alias', value:'Alternate Timeline Earth'}, {name:'Origin',value:'Unknown'}, {name: 'Type', value:'Robot'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/a/a9/KAYO_artwork.png/revision/latest/scale-to-width-down/587?cb=20210622163116') const astra = new MessageEmbed() .setColor('#c0ffee') .setTitle('Astra') .setURL('https://valorant.fandom.com/wiki/Astra') .setDescription('\"Ghanaian Agent Astra harnesses the energies of the cosmos to reshape battlefields to her whim. With full command of her astral form and a talent for deep strategic foresight, she’s always eons ahead of her enemy’s next move.\"') .addFields( {name:'Alias', value:'Unknown'}, {name:'Origin',value:'Ghana'}, ) .setImage('https://static.wikia.nocookie.net/valorant/images/8/8a/Astra_artwork.png/revision/latest/scale-to-width-down/587?cb=20210302170140') //main embed const embed = new MessageEmbed() .setColor('#c0ffee') .setThumbnail('https://wallpaperaccess.com/full/4547519.jpg') .setDescription(`[**Agents List**](https://valley-bean-3d0.notion.site/Valorant-Wiki-Bot-commands-27d53cd761214348b74a0ee670a38589)`) .addFields( {name: '*• Brimstone* <:AgentBrimstone:886135679430565908>', value: '\u200B', inline: true}, {name: '*• Viper* <:AgentViper:886136075809071104>', value: '\u200B', inline: true}, {name: '*• Omen* <:AgentOmen:886135941406785586>', value: '\u200B', inline: true}, {name: '*• Killjoy* <:AgentKilljoy:886135772296671252>', value: '\u200B', inline: true}, {name: '*• Cypher* <:AgentCypher:886135696618840105>', value: '\u200B', inline: true}, {name: '*• Sova* <:AgentSova:886135918879207474>', value: '\u200B', inline: true}, {name: '*• Sage* <:AgentSage:886136204628733982>', value: '\u200B', inline: true}, {name: '*• Phoenix* <:AgentPhoenix:886135896141889536>', value: '\u200B', inline: true}, {name: '*• Jett* <:AgentJett:886135716722122782>', value: '\u200B', inline: true}, {name: '*• Reyna* <:AgentReyna:886136049074597888>', value: '\u200B', inline: true}, {name: '*• Raze* <:AgentRaze:886136112526012497>', value: '\u200B', inline: true}, {name: '*• Breach* <:AgentBreach:886135663408336966>', value: '\u200B', inline: true}, {name: '*• Skye* <:AgentSkye:886136330000662538>', value: '\u200B', inline: true}, {name: '*• Yoru* <:AgentYoru:886135881226940497>', value: '\u200B', inline: true}, {name: '*• Astra* <:AgentAstra:886135644173238303>', value: '\u200B', inline: true}, {name: '*• Kay/O* <:AgentKAYO:886135745591521280>', value: '\u200B', inline: true}, ) const row = new MessageActionRow() .addComponents( new MessageSelectMenu() .setCustomId('agent') .setPlaceholder('Select an Option') .setOptions([ { label: 'Brimstone', value: 'brimstone', emoji: '<:AgentBrimstone:886135679430565908>' }, { label: 'Viper', value: 'viper', emoji: '<:AgentViper:886136075809071104>' }, { label: 'Omen', value: 'omen', emoji: '<:AgentOmen:886135941406785586>' }, { label: 'Kiljoy', value: 'killjoy', emoji: '<:AgentKilljoy:886135772296671252>' }, { label: 'Cypher', value: 'cypher', emoji: '<:AgentCypher:886135696618840105>' }, { label: 'Sova', value: 'sova', emoji: '<:AgentSova:886135918879207474>' }, { label: 'Sage', value: 'sage', emoji: '<:AgentSage:886136204628733982>' }, { label: 'Phoenix', value: 'phoenix', emoji: '<:AgentPhoenix:886135896141889536>' }, { label: 'Reyna', value: 'reyna', emoji: '<:AgentJett:886135716722122782>' }, { label: 'Raze', value: 'raze', emoji: '<:AgentRaze:886136112526012497>' }, { label: 'Breach', value: 'breach', emoji: '<:AgentBreach:886135663408336966>' }, { label: 'Skye', value: 'skye', emoji: '<:AgentSkye:886136330000662538>' }, { label: 'Yoru', value: 'yoru', emoji: '<:AgentJett:886135716722122782>' }, { label: 'Astra', value: 'astra', emoji: '<:AgentAstra:886135644173238303>' }, { label: 'Kay/O', value: 'kay', emoji: '<:AgentKAYO:886135745591521280>' }, ]) ) try { let msg = await interaction.editReply({ embeds: [embed], components: [row] }) const collector = msg.createMessageComponentCollector({ componentType: 'SELECT_MENU'}) collector.on('collect', async (collected) => { const value = collected.values[0] if(collected.user.id === interaction.user.id){ await collected.deferUpdate() if(value === 'brimstone'){ await msg.edit({ embeds: [brimstone] }) } else if(value === 'viper'){ await msg.edit({ embeds: [viper] }) } else if(value === 'omen'){ await msg.edit({ embeds: [omen] }) } else if(value === 'killjoy'){ await msg.edit({ embeds: [killjoy] }) } else if(value === 'cypher'){ await msg.edit({ embeds: [cypher] }) } else if(value === 'sova'){ await msg.edit({ embeds: [sova] }) } else if(value === 'sage'){ await msg.edit({ embeds: [sage] }) }else if(value === 'Phoenix'){ await msg.edit({ embeds: [phoenix] }) }else if(value === 'jett'){ await msg.edit({ embeds: [jett] }) }else if(value === 'reyna'){ await msg.edit({ embeds: [reyna] }) }else if(value === 'raze'){ await msg.edit({ embeds: [raze] }) }else if(value === 'breach'){ await msg.edit({ embeds: [breach] }) }else if(value === 'skye'){ await msg.edit({ embeds: [skye] }) }else if(value === 'yoru'){ await msg.edit({ embeds: [yoru] }) }else if(value === 'astra'){ await msg.edit({ embeds: [astra] }) }else if(value === 'kay'){ await msg.edit({ embeds: [kay] }) } } else { await collected.reply({ contents: 'This menu is not for you', ephemeral: true }) } }) } catch (error) { console.log(error) } } }