Почему мой бот разногласий возвращает "неопределенный" для нового тега членов гильдии, приветствуя их - PullRequest
1 голос
/ 28 марта 2020

Итак, я пишу бот в разногласиях. js и работал над созданием приветственного DM, когда новый пользователь присоединяется к гильдии. Затем, когда я использовал ${member.tag} возвращается неопределенным, что я делаю не так. Я пытаюсь понять это уже 10 минут и не хочу, чтобы это переросло в меня, пытаясь понять это в течение часа

Код:

client.on('guildMemberAdd', member => {

    member.send(`Hello, ${member.tag}`)

});

Ответы [ 2 ]

2 голосов
/ 28 марта 2020

Нет свойства tag в GuildMember , поэтому ваш код, как ожидается, возвращает undefined. Однако он существует для пользователя , который вы можете получить из GuildMember с помощью GuildMember#user.

member.user.tag. вы ищете.


ПРИМЕЧАНИЕ: Документация Discord. js с гиперссылкой для недавно выпущенного v12. Если ваш Discord. js не обновлен, переключитесь на правильную версию вверху страницы для точной информации.

0 голосов
/ 28 марта 2020

Я бы дал go member.displayName

Вот пример, который я использую

bot.on('guildMemberAdd', member => {

// ADD MEMBER ROLE ON JOIN, this is optional
member.addRole(member.guild.roles.find(role => role.name === "Member"))

const channel = member.guild.channels.find(ch => ch.name === '?arrivals')

const welcomeEmbed = new Discord.RichEmbed()
    .setTitle(`New member has arrived`)
    .setColor(0x8A3F3F)
    .setDescription(`Welcome to server, ${member.displayName}!`)

channel.send({ embed: welcomeEmbed })
})

Так что в вашем случае вы можете просто получить избавьтесь от const channel и замените channel.send на member.send

...