Discord Bot 无法按名称获取频道
Discord Bot Can't Get Channel by Name
我一直在制作一个不和谐的机器人,并想让它向特定的 "Welcome" 频道发送消息。不幸的是,我一直无法这样做。我试过了。
const welcomeChannel = bot.channels.get("name", "welcome")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);
然而在这个"welcomeChannel is undefined".
编辑:
我尝试使用
const welcomeChannel = bot.channels.get("id", "18NUMBERIDHERE")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);
但这仍然是未定义的,奇怪的是
您应该使用频道 ID 而不是频道名称。
如何获取频道的频道ID:
打开您的 Discord 设置
转到Advanced
勾选Developer Mode
(并关闭 Discord 设置)
右键单击您想要的频道
现在有一个选项Copy ID
来复制频道 ID
同时查看 discord.js documentation 的(频道)合集
此外,您的方法行不通,因为 .get
需要频道 ID(请参阅上面的链接文档)。如果您真的想要通过名称获取频道,请使用.find
代替。
但是,如果您的机器人在多个服务器上运行,这是一个非常糟糕的主意,因为频道名称现在可以出现多次。
您也可以使用
bot.channels.find("name","welcome").send("Welcome!")
您的错误可能是因为您正在使用 bot.channels.get()
,这不是最好的主意,因为 discord.js 在使用 [=11 时不是很友好=] 在多个项目上。
相反,如果可能,请尝试使用 member.guild.channels.find("name", "channel").send();
。如果这是在 client.on("message")
中,则只需使用 message.member.channels.find("name", "channel").send();
旁注:我的记忆很混乱,所以如果这不起作用,请尝试 .get()
而不是 find
。
我尝试了很多次都出现了同样的错误,这就是我修复它的方法。我使用 client 作为我的 Client()。
client.channels.cache.get("18NUMBERIDHERE").send("Welcome!");
我一直在制作一个不和谐的机器人,并想让它向特定的 "Welcome" 频道发送消息。不幸的是,我一直无法这样做。我试过了。
const welcomeChannel = bot.channels.get("name", "welcome")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);
然而在这个"welcomeChannel is undefined".
编辑:
我尝试使用
const welcomeChannel = bot.channels.get("id", "18NUMBERIDHERE")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);
但这仍然是未定义的,奇怪的是
您应该使用频道 ID 而不是频道名称。
如何获取频道的频道ID:
打开您的 Discord 设置
转到
Advanced
勾选
Developer Mode
(并关闭 Discord 设置)右键单击您想要的频道
现在有一个选项
Copy ID
来复制频道 ID
同时查看 discord.js documentation 的(频道)合集
此外,您的方法行不通,因为 .get
需要频道 ID(请参阅上面的链接文档)。如果您真的想要通过名称获取频道,请使用.find
代替。
但是,如果您的机器人在多个服务器上运行,这是一个非常糟糕的主意,因为频道名称现在可以出现多次。
您也可以使用
bot.channels.find("name","welcome").send("Welcome!")
您的错误可能是因为您正在使用 bot.channels.get()
,这不是最好的主意,因为 discord.js 在使用 [=11 时不是很友好=] 在多个项目上。
相反,如果可能,请尝试使用 member.guild.channels.find("name", "channel").send();
。如果这是在 client.on("message")
中,则只需使用 message.member.channels.find("name", "channel").send();
旁注:我的记忆很混乱,所以如果这不起作用,请尝试 .get()
而不是 find
。
我尝试了很多次都出现了同样的错误,这就是我修复它的方法。我使用 client 作为我的 Client()。
client.channels.cache.get("18NUMBERIDHERE").send("Welcome!");