【问题标题】:discord.js | Putting a role in quick.db不和谐.js |在 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。

标签: javascript discord.js quick.db


【解决方案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 函数来获取该值。

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

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 2020-03-14
      • 2019-06-25
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多