所以我尝试为我的不和谐机器人使用斜杠命令,我复制并更改了旧机器人的警告命令的一点点,警告命令在没有斜杠命令的情况下工作。
我的代码是
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 并阅读提及,我们将不胜感激。
答案 0 :(得分:0)
我认为问题出在您的 JS 代码中:
callback: async ({ message, args }) => {
应该是:
callback: async ({ message, args }) {
没有 =>
因为 => 和 {} 在这种情况下是互斥的。
如果这不能解决它,它可能是与线:
const [mention, reason] = args
你能告诉我们args是什么吗?我猜它是一个对象,但我不确定。