基本上,我尝试使用命令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)
然后它显示为未定义。
如何使用quick.db做到这一点,我可以正确地通过数据库进行互斥锁进程。
(对不起,抱歉)
答案 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函数以获取该值。
希望这会有所帮助,随时发表评论。