Discord Bot Node JS简单错误.send
在学习本教程时,我遇到了一个奇怪的问题 . 构建一个JS Discord bot,实际上只有33行,并且它的抛出错误是关于.send未定义的 . 我已经四处搜索了,我找不到任何有助于更接近解决问题的方法 .
const fs = require("fs");
const Discord = require("discord.js");
const client = new Discord.Client();
const config = require("./config.json");
client.login(config.token);
client.on("ready", () => {
client.user.setGame(`on ${client.guilds.size} servers`);
console.log(`Ready to serve on ${client.guilds.size} servers, for ${client.users.size} users.`);
});
client.on("guildMemberAdd", (member) => {
console.log(`New User ${member.user.username} has joined ${member.guild.name}` );
member.guild.defaultChannel.send(`${member.user} has joined this server`);
});
client.on("message", (message) => {
if (!message.content.startsWith(config.prefix) || message.author.bot) return;
if (message.content.startsWith(config.prefix + "ping")) {
message.channel.send("pong!");
} else
if (message.content.startsWith(config.prefix + "foo")) {
message.channel.send("bar!");
}
});
client.on("error", (e) => console.error(e));
client.on("warn", (e) => console.warn(e));
client.on("debug", (e) => console.info(e));
运行时,console.log可以毫不费力地工作,但是默认通道的消息会在PowerShell中引发以下错误
C:\Users\super\Desktop\autoslap\mybot.js:18
member.guild.defaultChannel.send(`${member.user} has joined this server`);
^
TypeError: Cannot read property 'send' of undefined
任何帮助将不胜感激,对可能是如此简单的东西感到沮丧 .
2 years ago
我知道这是一个迟到的回复你可能已经知道如何做到这一点,但我仍然会向那些可能需要帮助的人解释 .
如果你想要一个替代方案,https://anidiots.guide/frequently-asked-questions.html的代码可以解决问题 . 只需进入网站并向下滚动,直到看到默认 Channels !
如果你的机器人有管理员权限,它的“第一个可写通道”就是顶部的通道 . 它可以是任何 Channels ,所以如果他们的默认 Channels 被删除,你可能会惹恼很多人 .
希望这可以帮助!