如何使用命令在discord.js中获取服务器ID和通道ID?

时间:2020-05-30 07:05:07

标签: discord.js var

因此,我再次有一个关于discord.js的下一个问题,因此我试图使用一个命令使用lowdb保存公会ID和频道ID,但是当我使用var server = client.guilds.get(message.guild.id).id;时出现错误,无法读取未定义的属性“ get”。而且我不知道为什么。

我还要说我是机器人开发的新手,而且我还在学习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)

如果您知道怎么了,请帮忙

2 个答案:

答案 0 :(得分:1)

如果您使用discord.js@v12,则应记住应该通过.cache属性来使代码正常工作。您可以通过查看http://localhost:8080/auth/admin/master/console/的文档来自己检查。
另外,您不需要从它们的ID中获取频道和行会,因为您已经将它们存储为消息属性。
这是我的处理方式:

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

为了公平起见,我无法解释为什么会出现该错误。

答案 1 :(得分:0)

好的,所以你得到的“get”不是一个函数,因为在 v12 中它必须是 client.guilds.cache.get(whatever you wanna put here)