Как получить идентификатор сервера и идентификатор канала в Discord. js с помощью команды? - PullRequest
0 голосов
/ 30 мая 2020

Итак, снова у меня следующий вопрос о разногласиях. js, поэтому я пытался сохранить идентификатор гильдии и идентификатор канала с помощью одной команды, используя lowdb, но когда я использую var server = client.guilds.get(message.guild.id).id;, я получаю сообщение об ошибке: Невозможно прочитать свойство get of undefined. И я не знаю почему.

Я также скажу, что я новичок в разработке ботов и все еще учусь JS поэтому иногда я просто не знаю, что не так с моим кодом

      var server = client.guilds.get(message.guild.id).id;
        var channel = client.guilds.get(message.channel.id).id;

        db.get('posts')
  .push({ id: server, title: channel})
  .write()

    },

Там весь код, который я сделал, и я определяю все в начале кода

const client = require('<there's path but I don't want to show it cuz there's my name>/my_bot.js');
const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')

const adapter = new FileSync('db.json')
const db = low(adapter)

Если вы знаете, что не так, пожалуйста, помогите

1 Ответ

1 голос
/ 30 мая 2020

Если вы используете discord. js@v12, тогда вы должны помнить, что вы должны go через свойство .cache, чтобы ваш код работал. Вы можете проверить это самостоятельно, просмотрев документацию для Client.guilds.
Кроме того, вам не нужно получать канал и гильдию по их идентификаторам, поскольку они уже сохранены как свойства сообщения.
Вот как бы я это сделал:

let server = message.guild.id, // ID of the guild the message was sent in
  channel = message.channel.id // ID of the channel the message was sent in

Честно говоря, я не смогу объяснить, почему вы получаете эту ошибку.

...