我正在使用discord.js在不和谐中创建一个机器人,我希望当一个人加入服务器并与该机器人进行聊天时,该机器人将发送聊天中的第一条消息,例如“我的名字是查理,我能为您提供帮助”,我该怎么做?我看到的所有示例都与下面的代码相似,但是不起作用。
client.on('guildMemberAdd', member => {
const channel = member.guild.channels.find(ch => ch.name === 'member-log');
if (!channel) return;
channel.send(`Welcome to the server, ${member}!`);
});
编辑1: 我按如下所述尝试了member.guild.channels.cache.find,并且错误消失了,但是当我进入聊天窗口时,漫游器没有说什么,我认为该频道为空,所以它返回时没有说什么,我该怎么办解决这个问题?
编辑2: 在下面,您可以看到我的代码现在如何,我正在尝试获取我的机器人频道,以便当有人进入我的服务器时,该机器人向他发送欢迎消息,但未找到该频道,我不理解问题
client.on("guildMemberAdd", (member) => {
const channel = member.guild.channels.cache.find((ch) => ch.id === myBotId);
if (!channel) {
console.log("no channel");
return;
}
channel.send(`Welcome to the server, ${member}!`);
});
答案 0 :(得分:1)
您的问题是您需要使用cache
属性:
message.guild.channels.cache.find();
答案 1 :(得分:0)
const channel = member.guild.channels.find(ch => ch.name === 'member-log'); if (!channel) return; channel.send(`Welcome to the server, ${member}!`);
您发布的代码向公会中的 member-log 频道发送欢迎到服务器$ {member}!消息。 。由于您使用的代码看起来不错,因此很可能没有名称为 member-log 的频道。
创建一个 会员日志 渠道来解决问题或找到您要在其中发送问候语的渠道,const channel = member.guild.channels.find(ch => ch.name === 'your-channel-name');