раздор. js | Ввод роли в quick.db - PullRequest
0 голосов
/ 16 июня 2020

в основном я пытался создать команду для установки muterole, которая использует quick.db. Обычно при использовании o.set muterole @role должна помещать роль в базу данных и отображаться на панели настроек.

Вместо отображения на панели настроек при выполнении:

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

Это будет просто скажите [объект Object] в разделе.

Итак, я попытался сделать

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

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

А потом оказалось как undefined.

Это вторая попытка. This is the second attempt.

Как мне сделать так, чтобы с помощью quick.db я мог правильно выполнить процесс muterole через базу данных.

(извините, если неясно)

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Ваша muterrole - это объект, указанный в вашей первой попытке. Это означает, что когда вы установите для поля это значение, оно будет отображаться как [Объект объекта] . Это Javascript представление недопустимого назначения объекта. Чтобы решить эту проблему, вы можете sh использовать 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, чтобы получить это значение.

Надеюсь, это поможет, не стесняйтесь комментировать.

0 голосов
/ 17 июня 2020

Из того, как вы это описали, похоже, что вы сохраняете в базе данных саму роль, а не идентификатор, поэтому вызов message.guild.roles.cache.get() возвращает undefined.

Вместо сохранения роли в базу данных, сохраните идентификатор роли.

...