【问题标题】:DiscordJS Incorrect fetch userDiscordJS 获取用户不正确
【发布时间】:2021-03-13 18:48:57
【问题描述】:

编辑 我想我的问题可以归结为discord js有时在获取时会返回错误的用户。

client.users.fetch(args[0]).then(user => message.reply(user.id));

谁是 187548574697914368

277199585372274689

机器人返回了错误的用户。我认为它与一些奇怪的缓存问题有关,但将 force 参数设置为 true 仍然返回错误的用户。

client.users.fetch(args[0], false, true).then(...);

我不明白这个错误来自哪里。有没有办法刷新缓存,所以我可以正确获取用户?

原帖

我的机器人遇到了一个非常奇怪的问题。 有时,我不明白之后发生了什么,但是当有些人使用机器人时,他们可以切换 id。 机器人开始从 message.author.id 读取错误的值,并将一些消息解释为其他人发送的消息。当某人被“窃听”时,他的 id 总是被另一个值误读(UserA.id 将始终被读取为用户 b 的 id)我不知道用户 A 和用户 B 之间的链接是什么(用户 B 的 id 可以有时还可以,而用户A切换到用户B)

client.on('message', message => {
    console.log("Message recieved : <#" + message.channel.id + "> <@" + message.author.id + "> : " + message.content);
    ...
});

Message recieved : #general @UserB : I'm user A

似乎这个函数是错误的来源(我不确定)

async execute(messageReaction, arg) {

    let users = await messageReaction.users.fetch();
    console.log("Looting gift : " + users.map(user => user.username + ' '));
    users.delete(messageReaction.message.client.user.id);

    Doing stuff ....

    await messageReaction.message.reactions.removeAll();
},

似乎机器人在某些时候损坏了缓存数据,并不断从中加载用户 ID(我不知道是否可能) 所以我尝试在函数末尾添加这个:

    messageReaction.message.guild.members.fetch(users.map(user => user.id))
        .catch(err => console.log('Erreur while fetching members : ' + users.map(user => user.id) + ' : \n ' + err ));

    for(user of messageReaction.message.client.inventory.inventory.keys()) {
        messageReaction.message.client.users.fetch(user).catch(err => console.log('Erreur while fetching user : ' + users.id + ' : \n ' + err ));
    }

但问题仍然存在,我不明白为什么。到目前为止,我发现的唯一解决方案是注销机器人并重新启动它。它不是很方便,我还能做些什么来理解该错误或将其删除。

【问题讨论】:

    标签: node.js discord discord.js


    【解决方案1】:

    您是否偶然将user.id 作为整数存储在您的表中?我遇到了你的帖子,因为我遇到了类似的问题,storing it as a string solved it for me.

    【讨论】:

      【解决方案2】:

      如果您在使用 .fetch() 时遇到问题,请尝试使用 .cache.get()。例如,在您的情况下,您会执行 await client.users.cache.get(args[0]) 之类的操作。

      【讨论】:

        猜你喜欢
        • 2021-03-27
        • 2023-01-12
        • 2021-11-19
        • 1970-01-01
        • 2021-10-25
        • 2021-04-15
        • 2021-07-07
        • 1970-01-01
        • 2021-04-28
        相关资源
        最近更新 更多