D'accord, cela peut ressembler à un copier-coller, mais ce n'est PAS. J'ai besoin de plus de soutien. J'essaie de faire en sorte que mon bot en fasse plus. J'aurais dû l'ajouter à la première question mais je ne pense pas qu'elle sera vue. Voici ce que j'essaie d'ajouter.

  • Dire quand l'utilisateur a rejoint la guilde à quelle heure et à quelle date
  • Marquer l'utilisateur dans la fonction userinfo.tag
  • Lister le pseudo de l'utilisateur

J'ai essayé d'utiliser la classe .guildmember mais cela ne fonctionne tout simplement pas, j'attache userMention à la classe .guildmember, comme ceci : userMention.guildmember.joinedAt ou displayName. La plupart de mes résultats lors de la modification de mon code étaient soit des TypeErrors du bot, soit des ReferenceErrors.

J'ai utilisé le code d'un autre et j'ai installé Moment pour pouvoir l'exécuter avec le code d'une autre personne, mais encore une fois, une erreur s'est produite.

TypeError: Cannot read property 'filter' of undefined

Je n'ai pas pu obtenir le code Moment.

var commando = require('discord.js-commando');
var discord = require('discord.js');

class aboutuser extends commando.Command 
{
    constructor(client) {
        super(client, {
            name: 'aboutuser',
            group: 'help',
            memberName: 'aboutuser',
            description: 'Lists information about a specific user.',
            aliases: ['au', 'aboutu', 'auser', 'user'],
        })
    }
async run(message, args){
    const userMention = message.mentions.users.first() || message.author;

    let userinfo = {};
    userinfo.bot = userMention.bot;
    userinfo.createdat = userMention.createdAt;
    userinfo.joinedat = userMention.message.guildmember.joinedat;
    userinfo.discrim = userMention.discriminator;
    userinfo.id = userMention.id;
    userinfo.tag = userMention.tag;
    userinfo.uname = userMention.username;
    userinfo.status = userMention.presence.status;
    userinfo.play = userMention.presence.game; 

    userinfo.avatar = userMention.avatarURL;

    const rolesOfTheMember = userMention.roles.filter(r => r.name !== '@everyone').map(role => role.name).join(', ')

    var myInfo = new discord.RichEmbed()
        .setAuthor(userinfo.uname, userinfo.avatar)
        .addField("Username",userinfo.uname, true)
        .addField("Client Tag",userinfo.tag, true)
        .addField("Created At",userinfo.createdat, true)
        .addField("Joined at:",userinfo.joinedat, true)
        .addField("Discriminator",userinfo.discrim, true)
        .addField("Client ID",userinfo.id, true)
        .addField("Bot?",userinfo.bot, true)
        .addField("Status",userinfo.status, true)
        .addField("Playing",userinfo.play, true)
        .addField("Roles",rolesOfTheMember, true)
        .setColor(0xf0e5da)
        .setFooter('s!aboutserver')
        .setTitle("About this user...")
        .setThumbnail(userinfo.avatar)


        message.channel.sendEmbed(myInfo);

}

}
module.exports = aboutuser;

Attendez : Un bot qui répertorie tous les éléments affichés dans le code, ainsi que les puces.

Réel : un bot qui affiche uniquement les erreurs de type et de référence. C'est des choses comme

TypeError: Cannot read property 'guildmember' of undefined
TypeError: Cannot read property 'filter' of undefined
ReferenceError: guildmember is not defined
ReferenceError: user is not defined

J'utilise ces sites pour référence

https://discord.js.org/#/docs/main/stable/general/welcome

Comment afficher les rôles de la commande utilisateur discord.js/userinfo *Spécifiquement cette ligne !

.addField('Joined at:', `${moment.utc(user.joinedAt).format('dddd, MMMM Do YYYY, HH:mm:ss')}`, true)

https://www.youtube.com/watch?v=W2iI32FDYW8

1
SomePerson 13 mars 2019 à 09:06

2 réponses

Meilleure réponse

Utilisation

var umen = message.mentions.members.first() || message.member;
var umen2 = message.mentions.users.first() || message.author;

J'ai également eu des problèmes avec les "booléens" et ceux-ci ne devraient PAS être === "false" car ce sont des booléens, pas des chaînes. Faites === false ou === true

1
SomePerson 3 juil. 2019 à 23:28

Essayez d'utiliser userMention = message.mentions.members.first(); Je pense que c'est ce qui cause le problème

0
Cheeze 20 mars 2019 à 16:28