首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ID获取行会返回discord.js中的每个可用行会

问使用ID获取行会返回discord.js中的每个可用行会
EN

Stack Overflow用户
提问于 2022-01-16 17:23:29
回答 1查看 1K关注 0票数 2

我试图用机器人的ID来获取一个公会,但它似乎不起作用。每当我运行这个程序时,它都会输出客户机所在的每个公会的集合。

e是从JSON文件中读取的,id属性是来自服务器的直接副本。

代码语言:javascript
复制
client.guilds.fetch(e.id).then((guild) => {
  // logs every available guild instead of the one where id is e.id
  console.log(guild)
})

这是我的意图和部分

代码语言:javascript
复制
const client = new Discord.Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.DIRECT_MESSAGES, 
    Intents.FLAGS.GUILD_MESSAGE_REACTIONS, 
    Intents.FLAGS.DIRECT_MESSAGE_REACTIONS
  ],
  partials: ['MESSAGE', 'CHANNEL', 'REACTION'], 
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-16 18:41:35

有两个选项;要么是id是undefined,要么是数字。

因为fetch只接受GuildResolvable或FetchGuildOptions/FetchGuildsOptions对象作为其参数。如果你传递其他的东西,它就会被忽略,所有可用的公会都会被获取(就像你提到的那样)。

我认为您的id是块雪花,正如您提到的,它来自一个JSON文件。雪花should always be strings。如果将这些If存储为数字,JS很难解释它们。任何大于MAX_SAFE_INTEGER的数字都会变成不同的数字,如果您提供了不同的ID,那么每个可用的行会都会被获取。

例如,如果你的雪花是921423246421811231,它就变成了921423246421811200。尝试运行下面的代码段,您将看到它记录了第二个数字,而不是e.id的值。

​

代码语言:javascript
复制
let e = {
  id: 921423246421811231
}

console.log(e.id)

​

要解决这个问题,请确保将id作为字符串存储在JSON文件中:

代码语言:javascript
复制
{
  "id": "921423246421811231"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70732419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档