不和谐.js |在 quick.db 中扮演一个角色

Posted

技术标签:

【中文标题】不和谐.js |在 quick.db 中扮演一个角色【英文标题】:discord.js | Putting a role in quick.db 【发布时间】:2020-10-06 06:06:34 【问题描述】:

基本上我尝试了一个命令来设置一个muterole,它正在使用quick.db。基本上使用 o.set muterole @role 应该将角色放入数据库并显示在设置面板中。

而不是在设置面板中显示:

let muterole = await db.fetch(`muterole_$message.guild.id`)

它只会在该部分中显示 [ object Object ]。

所以我试着做

let mrdb = await db.fetch(`muterole_$message.guild.id`)

let muterole = message.guild.roles.cache.get(mrdb)

然后它显示为未定义。

这是第二次尝试。

我怎样才能做到这一点,所以使用 quick.db 我可以正确地通过数据库进行 muterole 进程。

(如果不清楚,请见谅)

【问题讨论】:

您没有显示设置角色的代码。我假设问题是当你设置它时你正在设置一个对象,而不是尝试将它设置为一个 id。 【参考方案1】:

从您描述的方式来看,您似乎将角色本身存储在数据库中,而不是 ID,因此调用 message.guild.roles.cache.get() 返回未定义。

不是将角色本身存储到数据库中,而是存储角色的 ID。

【讨论】:

【参考方案2】:

您的 muterrole 是您第一次尝试中指出的对象。这意味着当您将字段设置为该值时,它将显示为 [Object object]。这是无效对象分配的 javascript 表示。要解决此问题,您可能希望 console.log() 您的 muter 角色:

console.log(muterrole)

找出对象的结构。下面是一个例子:

example_role = name: "Anonymous", date: "25th April 2020";
console.log(example_role)         // name: "Anonymous", date: "25th April 2020"
console.log(example_role.name)    // Anonymous

使用上面提到的代码,您可以 console.log() 您的对象来查找您需要的元素并使用其上的 .x 函数来获取该值。

希望对你有帮助,欢迎评论。

【讨论】:

以上是关于不和谐.js |在 quick.db 中扮演一个角色的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 错误:它正在删除整个数组。 Quick.db 和 discord.js

quick.db 调平系统 - database.updateValue 不是函数

如何检查 quick.db 中是不是存在特定的东西?

Quick.db unwarn 命令取消警告成员中的所有警告

如何修复该 quick.db 不会产生负面输出

如何检查用户是不是在不和谐中扮演角色