Discord Bot Упоминание пользователя в дм - PullRequest
0 голосов
/ 14 апреля 2020

Итак, я хочу, чтобы бот @ пользователь, с которым он разговаривал, потому что $ {member} (я видел это на youtube) не работает, и поэтому я хочу спросить, что я должен написать, чтобы он написал «Hello @ (the имя пользователя) ... "помните, пожалуйста, он пишет это как дм.

const Discord = require('discord.js');
const { prefix, token } = require('./config.json');
const client = new Discord.Client();

client.on('ready', () => {
    console.log('This Bot is online!');
})

client.login(token);

client.on('guildMemberAdd', member => {
    member.send('Hello ${member}, welcome to the PotatoHost Server!');
});

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

У меня была та же проблема, с которой я начал, это должно помочь вам решить проблему:

client.on("guildMemberAdd", async member => {
const dmErr = false;
try {
await member.send()
} catch (error) {
dmErr = true;
} if (dmErr === true) {
member.guild.channels.get("Id of the channel here").send()
}
}); 
0 голосов
/ 14 апреля 2020

Проблема не в члене, а в client.login (), он всегда должен быть в конце, если код!

Надеюсь, это поможет вам. удачного дня!

Редактировать: Кроме того, некоторые участники заблокировали dm's, поэтому вы должны использовать функцию try-catch, и если вы получили ошибку, отправьте приветственное сообщение в чате.

Функция try-catch работает следующим образом:

try{
member.send("message here")
}catch(error){
member.guild.channels.get("here the Id of the channel you want to send the welcome message in").send("message here")
}

, если вам не нравится идея отправки сообщения в канал на вашем сервере, просто поставьте вместо этого:

console.log(error)
...