如何将错误发送到特定频道?

时间:2021-04-20 06:06:37

标签: javascript discord.js

嘿嘿, 我尝试执行一个“命令”,将错误消息发送到我的私人不和谐频道,这样我就可以看到它运行的对象和时间。这是我的代码!

client.on('error', async guild => {
  let errorchannel = await client.channels.fetch('ID');
  if(!guild.available) return
  if(!guild.owner && guild.ownerID) await guild.members.fetch(guild.ownerID);
if(!deleteChannel) return;

  const embed = new Discord.MessageEmbed()
.setTitle(`Error!`)
.setDescription(`${guild.name}`)
.setColor("BLACK")
.setThumbnail(guild.iconURL())
.addField(`Owner`, `${guild.owner.user.tag}`)
.addField(`Error`, error)
.addField(`Member Count`, `${guild.memberCount}`)
.setFooter(`${guild.id}`)
errorchannel.send(embed);
});

来自评论的代码:

client.on('error', async (err) => {
  let errormsg = await client.channels.fetch('ID')

  const embed = new Discord.MessageEmbed()
    .setTitle(`Error!`)
    .setDescription(`${err.guild.name}`)
    .setColor("BLACK")
    .setThumbnail(err.guild.iconURL())
    .addField(`Owner`, `${err.guild.owner.user.tag}`)
    .addField(`Error`, err.message)
    .addField(`Member Count`, `${err.guild.memberCount}`)
    .setFooter(`${err.guild.id}`)
errormsg.send(embed);
});

1 个答案:

答案 0 :(得分:1)

你好像有点糊涂了,client.on("error")确实存在,但是你的函数是错误的。

client.on('error', async (err) => {
  let errorchannel = await client.channels.fetch('ID');
  //if(!guild.available) return
  //if(!guild.owner && guild.ownerID) await guild.members.fetch(guild.ownerID);
  //if(!deleteChannel) return; these lines need to be re-written, they do not work

  const embed = new Discord.MessageEmbed()
    .setTitle(`Error!`)
    .setDescription(`${err.guild.name}`)
    .setColor("BLACK")
    .setThumbnail(err.guild.iconURL())
    .addField(`Owner`, `${err.guild.owner.user.tag}`)
    .addField(`Error`, err.message)
    .addField(`Member Count`, `${err.guild.memberCount}`)
    .setFooter(`${err.guild.id}`)
  errorchannel.send(embed);
});

这应该有效,您混淆了 guilderror 的语法

没有发送任何内容的原因是您使用 return 语句捕获错误 - 由于 guild.available 从未作为函数存在,因此每次运行命令时它都会返回。