使用discord.js加入discord服务器时的欢迎信息

8

我正在使用node.js和discord.js创建一个discord机器人,并且目前正在尝试让它在用户加入discord服务器时发送自定义欢迎消息。以下是我的代码:

bot.on("guildMemberAdd" ,(message, member) => {
    message.channel.send("Welcome")
});

这是我得到的错误信息:
message.channel.send("Welcome")
                ^

TypeError: Cannot read property 'send' of undefined

感谢您的帮助。

好像你的消息没有叫做“channel”的属性。 - Liora Haydont
5个回答

19
如果你阅读文档,就会发现没有message参数,只有member。你需要先获取服务器的频道ID。

可以尝试像这样做:

bot.on('guildMemberAdd', member => {
    member.guild.channels.get('channelID').send("Welcome"); 
});

我刚刚尝试了一下,它仍然显示了关于“.send”的相同错误。你能看到我可能犯的其他错误吗? - user9579257
2
是的,抱歉,我正要添加另一条评论。忘记更改频道ID了。非常感谢您的帮助,终于成功了! - user9579257

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


var role = member.guild.roles.find('name', 'Beginner role name'); // Variable to get channel ID
member.addRole(role); // Adds the default role to members

member.guild.channels.get('JOIN/LEAVE Channel ID').send({embed: {
color: 3447003,
title: "**SERVER NAME** Welcome Bot!",
url: "WEBSITE URL",
description: "Welcome *" + member + "* to the **Server name** discord server!",
fields: [{
    name: "Information",
    value: "Some info on the server"
  }
],
timestamp: new Date(),
footer: {
  icon_url: client.user.avatarURL,
  text: "© NAME OF SERVER 2018 - 2019"
}
}}); });

这里是真正可行的代码 :)

1

我的代码是

bot.on('guildMemberAdd', async member => {
    const channel = member.guild.channels.cache.get('channel-id-here');
    if (!channel) return;

    channel.send("text-here!")
});

希望它能正常工作!

1

我在这里为我的机器人制作欢迎功能,以下是代码,它似乎很好地工作了。

//Welcome & goodbye messages\\
client.on('guildMemberAdd', member => {
    member.roles.add(member.guild.roles.cache.find(i => i.name === 'Among The Server'))

    const welcomeEmbed = new Discord.MessageEmbed()

    welcomeEmbed.setColor('#5cf000')
    welcomeEmbed.setTitle('**' + member.user.username + '** is now Among Us other **' + member.guild.memberCount + '** people')
    welcomeEmbed.setImage('https://cdn.mos.cms.futurecdn.net/93GAa4wm3z4HbenzLbxWeQ-650-80.jpg.webp')

    member.guild.channels.cache.find(i => i.name === 'greetings').send(welcomeEmbed)
})

client.on('guildMemberRemove', member => {
    const goodbyeEmbed = new Discord.MessageEmbed()

    goodbyeEmbed.setColor('#f00000')
    goodbyeEmbed.setTitle('**' + member.user.username + '** was not the impostor there are **' + member.guild.memberCount + '** left Among Us')
    goodbyeEmbed.setImage('https://gamewith-en.akamaized.net/article/thumbnail/rectangle/22183.png')

    member.guild.channels.cache.find(i => i.name === 'greetings').send(goodbyeEmbed)
})
//Welcome & goodbye messages end\\

哈哈,喜欢《Among Us》风格的消息:D - Manu G

-4

或者用这个进行嵌入。

client.on('guildMemberAdd', msg => { // Commands Go Inside The client.on('message', 
msg => )
msg.guild.channels.get('484648408372740099').send({embed: {
color: 3447003,
author: {
  name: client.user.username,
  icon_url: client.user.avatarURL
},
title: "Welcome To ()!",
url: "https://districtservices.net",
description: "@MEMBER",
fields: [{
    name: "Fields",
    value: "They can have different fields with small headlines."
  },
  {
    name: "Masked links",
    value: "You can put [masked links](http://google.com) inside of rich embeds."
  },
  {
    name: "Markdown",
    value: "You can put all the *usual* **__Markdown__** inside of them."
  }
],
timestamp: new Date(),
footer: {
  icon_url: client.user.avatarURL,
  text: "© Example"
}

}}); });


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接