Discord.JS: Usuarios의 데이터

데이터스 드 유수아리오스



En este post hablaremos de cómo manejar los datos de usuarios que la API de Discord nos da.

¿Qué y cuáles son los datos de usuarios?



Estos son las cosas como el avatar, el 닉네임, discriminante, ID 등

Obtener estos datos son útiles para banear miembros de un servidor, determinar el dueño del bot (tú), o simplemente responder un mensaje con el nombre del usuario.



En el siguiente ejemplo práctico crearemos un comando que le muestre la siguiente información de su perfil a través de un :
  • Nombre de usuario en discord.
  • 화신.
  • Fecha de creación de la cuenta.
  • Estado de actividad.

  • 닉네임 dentro del servidor.
  • 역할 adquiridos en el servidor.
  • ID.

  • Obteniendo los datos



    Para que nuestro bot pueda enviar toda la información, tenemos que pasarle el usuario al que va a recorrer los datos. En este caso, estaremos trabajando con los datos del usuario que envía el comando (al final del post haremos uno más completo según a quién se @mencione).

    Para hacer esto, crearemos una variable para acortarnos un poco la escritura:

    const user = message.author;
    const member = message.member;
    


    ¿Por qué hay dos 변수?
    Pues, puede ser un poco complicado entenderlo de primeras, pero explicándolo resumidamente es que member Solo sirve para los datos del usuario dentro del servidor, mientras que user es para datos del usuario en todo discord.

    Creando el embed



    Vamos a guardar nuestro embed en una constante para que sea fácil de entender cuando leamos el código:

    const embed = new Discord.MessageEmbed()
    // llenando los datos
    


    레난도 로스 다토스



    Ahora que podemos enviar los datos más fácil, explicaré cada línea con un comentario dentro del siguiente código:

    // El username del miembro como "autor" del embed más el avatar
    .setAuthor('Username: ' + user.tag, user.avatarURL())
    // Mostraremos el avatar del usuario en el thumbnail del embed
    .setThumbnail(user.avatarURL())
    // La fecha de creación de la cuenta como toLocaleDateString()
    .addField('Creación de la cuenta', user.createdAt.toLocaleDateString(), true)
    // El estado de actividad del usuario
    .addField('Estado', user.presence.status, true)
    // Si el usuario NO tiene un nickname dentro del servidor, pone "No tiene"
    .addField('Apodo', member.nickname ? member.nickname : 'No tiene', true)
    // Hacemos un mapeo de los roles del usuario y los separamos por nombres
    .addField('Roles', 
              message.member.roles.cache.map(rol => '`' + rol.name + '`').join(', ')
             )
    .setFooter('ID: ' + user.id)
    


    포함된 Enviar



    Y después de todo esto, enviamos el embed al canal con:

    // Todo el código de arriba ^
    message.channel.send({embed});
    


    코디고 결승전




    const user = message.author;
    const member = message.member;
    
    const embed = new Discord.MessageEmbed()
    
        .setAuthor('Username: ' + user.tag, user.avatarURL())
        .setThumbnail(user.avatarURL())
        .addField('Creación de la cuenta', user.createdAt.toLocaleDateString(), true)
        .addField('Estado', user.presence.status, true)
        .addField('Apodo', member.nickname ? member.nickname : 'No tiene', true)
        .addField('Roles', 
            message.member.roles.cache.map(rol => '`' + rol.name + '`').join(', ')
        )
        .setFooter('ID: ' + user.id)
    
    message.channel.send({embed});
    


    결정적인



    Muchas gracias por leer este post, espero que te haya sido de ayuda. Recuerda que puedes seguirnos en .

    행복한 코딩!

    좋은 웹페이지 즐겨찾기