discord.js - 当所有者不可见时无法读取未定义的属性“用户”,导致 BOT 崩溃
问题描述
我的 BOT 中有这件事。使用此代码,我可以从用户所在的服务器获取一些信息:
if (command === `server`) {
message.react("");
const owner = message.guild.owner.user.tag;
const embedServer = new Discord.MessageEmbed()
.setTitle(`**:books: Server Info: ${message.guild.name}**`)
.setDescription(`Some information about the server you're on.`)
.addFields(
{ name: ':person_raising_hand: ・ Member Count', value: message.guild.memberCount, inline: true },
{ name: ':calendar_spiral: ・ Creation Date', value: message.guild.createdAt, inline: true },
{ name: ':globe_with_meridians: ・ Server Region', value: (message.guild.region).toUpperCase(), inline: true },
{ name: ':crown: ・ Server Owner', value: owner, inline: true },
)
.setFooter(`${botnv}`)
.setColor('#f04747')
message.channel.send(embedServer).catch(err => message.channel.send(":warning: Error!"));
};
它在我的私人服务器上工作得很好,但是一旦我在 BOT 无法看到所有者是谁的服务器上测试它,它就会崩溃。我希望它发送一条消息说它找不到它们。我尝试过的一切都没有奏效。if(!user) return 在 const 下不起作用, .catch(err) 也不起作用。我被困住了。
解决方案
您可以使用 try/catch 语句并获取错误并将消息发送到通道
if (command === `server`) {
message.react("");
try {
const owner = message.guild.owner.user.tag;
const embedServer = new Discord.MessageEmbed()
.setTitle(`**:books: Server Info: ${message.guild.name}**`)
.setDescription(`Some information about the server you're on.`)
.addFields({
name: ':person_raising_hand: ・ Member Count',
value: message.guild.memberCount,
inline: true
}, {
name: ':calendar_spiral: ・ Creation Date',
value: message.guild.createdAt,
inline: true
}, {
name: ':globe_with_meridians: ・ Server Region',
value: (message.guild.region).toUpperCase(),
inline: true
}, {
name: ':crown: ・ Server Owner',
value: owner,
inline: true
}, )
.setFooter(`${botnv}`)
.setColor('#f04747')
message.channel.send(embedServer);
} catch (error) {
console.log(error); //Console Log Error
return message.channel.send(":warning: Error!");
};
};
在此处了解有关 try/catch的更多信息
推荐阅读
- html - 网页抓取覆盖框
- asp.net - 哪个用户在aspx文件所在的服务器上运行cmd
- c# - C# DataAnnotations 正则表达式不正确匹配
- java - NDK 解析结果:项目设置:Gradle 模型版本=5.1.1,NDK 版本为 UNKNOWN
- html - 在具有不同数字的新 div 上应用 css 类
- c# - 在运行时访问对象数组 - System.NullReferenceException
- java - 黄瓜 AmbiguousStepDefinitionsException
- html - 我的代码中有可在 FF 中使用但在 Chrome 中不可用的锚点
- excel - Excel:如果另一列有重复,则只计算一次
- regex - 使用 re.sub 清理嵌套列表