discord.js |将角色放在quick.db中

时间:2020-06-16 15:11:52

标签: javascript discord.js quick.db

基本上,我尝试使用命令quick.db来设置一个互斥锁。基本上使用o.set Muterrole @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)

然后它显示为未定义。

这是第二次尝试。 This is the second attempt.

如何使用quick.db做到这一点,我可以正确地通过数据库进行互斥锁进程。

(对不起,抱歉)

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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函数以获取该值。

希望这会有所帮助,随时发表评论。