微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Discord.js 中使用超时

如何解决如何在 Discord.js 中使用超时

我正在开发一个 discord bot,需要 update 某人的昵称,然后在 2 小时后将其恢复正常。

当超时设置为几秒钟时,我已经设置好所有代码并开始工作,但是当我将超时时间推到 2 小时时,我会收到一个 Failed requestdiscord 服务器。我认为这是因为该频道没有保持连接那么长时间 - 不确定。

这里是错误

UnhandledPromiseRejectionWarning: FetchError: request to https://discord.com/api/v7/guilds/297251675616444416/members/711322838556213319 Failed,reason: getaddrinfo ENOTFOUND discord.com
        at RequestHandler.execute (C:\Users\japhy\projects\enhanced\node_modules\discord.js\src\rest\RequestHandler.js:93:15)
        at runMicrotasks (<anonymous>)
        at processticksAndRejections (internal/process/task_queues.js:93:5)
        at async RequestHandler.push (C:\Users\japhy\projects\enhanced\node_modules\discord.js\src\rest\RequestHandler.js:39:14)
        at async GuildMember.edit (C:\Users\japhy\projects\enhanced\node_modules\discord.js\src\structures\GuildMember.js:312:5)

这是代码本身:

function nicknameTimeout(memberID,memberGuildID) {
    guildVar = client.guilds.cache.get(memberGuildID);
    member = guildVar.members.cache.get(memberID);

    setTimeout(() => {
        guildVar = client.guilds.cache.get(memberGuildID);
        member = guildVar.members.cache.get(memberID);
        nickname = member.nickname;
        
        if (typeof nickname === "object") {
            nickname = member.user.username;
        }
        if (nickname.endsWith("UPDATED***")) {
            nickname = nickname.slice(0,-11);
            member.setNickname(nickname,"");
        }
    },7200000);
}

有关如何在超时后强制重新连接到客户端的任何想法或任何其他解决方法将不胜感激。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。