javascript - 如何使用 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}!`);
});
解决方案
您的问题是您需要使用该cache
属性:
message.guild.channels.cache.find();
推荐阅读
- react-native - React Native 蓝牙后台扫描
- java - 确定 Hibernate 中哪个类拥有方
- oauth - 401 Unauthorized - Chrome 应用 Oauth 调用 Google Cloud Functions
- c++ - 在匿名命名空间中定义模板特化(并编译错误 C2888)
- sql - 替代 CASE WHEN 从列创建 bin
- python - 如何为以下代码使用比 iterrows 更快的循环?
- git - 将 httpd.conf 放在存储库的哪个位置以创建 docker 映像
- php - php列出表中的所有类别
- arrays - 在 Go 中调用 WebAssembly 代码时如何使用 Go slice?
- android - 在约束布局内的线性布局中将元素置于其他元素之下