Estoy tratando de enviar un mensaje a un canal cuando un cliente ejecuta un comando de barra diagonal específico. El comando debe enviar una inserción que contendrá un campo. Quiero que se pueda hacer clic en ese campo para que la gente pueda unirse.
Quiero que se unan a un servidor de juegos Steam (CS:GO) que usa el protocolo steam://connect/ip:port/password para conectarse.
Intenté lo siguiente para enviar el mensaje:
const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageEmbed } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('stackoverflow') .setDescription('Question to stackoverflow'), async execute(interaction) { const embed = new MessageEmbed() .setColor('#ff0000') .setTitle('test') .setAuthor({ name: 'Test' }) .setDescription('Testing') .addField('Click below to join the server', '[Click here](steam://node1.spirtshop.cf:6002/TestesNexus!2022)') .addFields( { name: '\u200b', value: '[Join the server](steam://node1.spirtshop.cf:6002/TestesNexus!2022)'}, { name: 'Connect through the console', value: 'connect node1.spirtshop.cf:6002; password TestesNexus!2022'} ) .setTimestamp() .setFooter({ text: 'Just testing' }); await interaction.reply({embeds: [embed]}); }, };Desafortunadamente, esto no funciona: (salida) -> https://i.imgur.com/D4xCCVm.png
Encontré algunos bots escritos en python, sin embargo, no pude llevar eso a NodeJS. En mi interpretación, Discord solo reconoce como un "enlace en el que se puede hacer clic" si lo envío como protocolo (?).
El resultado esperado es algo como esto: https://i.imgur.com/efAENqq.png
De esa captura de pantalla, solo quiero reemplazar steam://.... con algo de texto.
¿Alguna idea de cómo puedo hacer esto?
(usando nodejs v17.4.0, discordjs v13.6.0)