私はnode.jsとdiscord.jsを使用してディスコードボットを作成しています。現在、ユーザーがディスコードサーバーに参加したときにカスタムウェルカムメッセージが送信されるように作成しています。これが私のコードです:
bot.on("guildMemberAdd" ,(message, member) => {
message.channel.send("Welcome")
});
これはエラーです:
message.channel.send("Welcome")
^
TypeError: Cannot read property 'send' of undefined
ご協力いただきありがとうございます。
documentation を読んだ場合、message
パラメータはなく、member
のみです。最初に ギルドのチャンネルを取得 IDにする必要があります。
次のようなものを試してください:
bot.on('guildMemberAdd', member => {
member.guild.channels.get('channelID').send("Welcome");
});
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"
}
}}); });
実際に機能するコードは次のとおりです。
または埋め込みにこれを使用します。
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"
}
}}); });