如何使用discord.js发出问候消息

时间:2020-08-27 17:30:01

标签: javascript node.js discord discord.js

我正在使用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}!`);
});

2 个答案:

答案 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');