当前位置: 首页 > 知识库问答 >
问题:

等待dTypeError[ERR_INVALID_ARG_TYPE]:id参数必须是字符串类型。收到未定义

贝研
2023-03-14

我正在使用discord.jsv12.2.0库编写一个discord bot,出现以下错误:

等待dTypeError[ERR_INVALID_ARG_TYPE]:id参数必须是字符串类型。收到未定义

这是我的代码:

const { MessageEmbed } = require("discord.js");
const { VultrexDB } = require("vultrex.db");
const messageData = new VultrexDB({
    name: "messages"
})

module.exports.run = (client, message, args) => {
    const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member;
    const messages = messageData.get(`${message.guild.id}-${member.id}`, 0);

    message.chanel.send(new MessageEmbed()
        .setColor("E67E22")
        .setAuthor(`Data | ${member.user.username}`, member.user.displayAvatarURL())
        .addField("Messages Sent:", messages, true)
    );
}

module.exports.help = {
    name: "messages",
    description: "view the amount of messages sent by a member"
}

module.exports.requirements = {
    clientPerms: ["EMBED_LINKS"],
    userPerms: [],
    ownerOnly: false
}

共有1个答案

贝浩歌
2023-03-14

您应该学习调试,特别是因为这个错误实际上告诉您答案。它告诉你是哪一行了吗?如果有,你的答案是:

  1. 告诉您无效的参数,这意味着您调用了一个函数(包括一个新类),并且传入的参数无效
  2. 参数未定义

new VultrexDBmessage.mentions.members.firstmessage.mentions.members.cache.getMessageData.getnew MessageEmbedsetColorset作者,<代码>addField

您可以排除MessageEmbed和message.notices.members。首先,因为它们不需要任何参数,setColorsetAuthoraddField`都提供参数

这就剩下了新的VultrexDB消息.提及.成员.缓存.获取消息数据.获取

对于message.mentions.members.cache.get,它只需要一个参数,id,并通过args[0]传递它,所以要检查是否有问题,只需检查是否有args

对于new VultrexDBMessageData.get,这些都是基于VultrexDB并idk它,所以只要看看指南或留档,如果他们有一个。

 类似资料: