无法读取未定义的属性“提及”,无法读取未定义的属性“公会” | Discord.js 斜线命令

时间:2021-05-07 10:33:58

标签: discord.js

所以我尝试为我的不和谐机器人使用斜杠命令,我复制并更改了旧机器人的警告命令的一点点,警告命令在没有斜杠命令的情况下工作。

我的代码是

const { MessageEmbed } = require('discord.js')
const mongo = require('../mongo')
const warnSchema = require('../schemas/warn-schema')
const Discord = require('discord.js')

module.exports = {
  slash: 'both',
  testOnly: true,
  minArgs: 2,
  expectedArgs: '<mention> <reason>',
  description: "warns mentioned user",
  callback: async ({ message, args }) => {

const [mention, reason] = args

      const target = message.mentions.users.first()

 

    const guildId = message.guild.id
    const userId = target.id
    

    const warning = {
      author: message.member.user.tag,
      timestamp: new Date().getTime(),
      reason,
    }

const yerz = new MessageEmbed()
  .setTitle('yes')

    await mongo().then(async (mongoose) => {
      try {
        await warnSchema.findOneAndUpdate(
          {
            guildId,
            userId,
          },
          {
            guildId,
            $push: {
              warnings: warning,
            },
          },
          {
            upsert: true,
          }
        )
      } finally {
        mongoose.connection.close()
      }
    })

    return yerz
  },
}

如果有人知道我如何让机器人找到 guid id 并阅读提及,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为问题出在您的 JS 代码中:

callback: async ({ message, args }) => {

应该是:

callback: async ({ message, args }) {

没有 => 因为 => 和 {} 在这种情况下是互斥的。

如果这不能解决它,它可能是与线:

const [mention, reason] = args

你能告诉我们args是什么吗?我猜它是一个对象,但我不确定。