【问题标题】:Discord JS TypeError: Cannot read properties of undefined (reading 'roles')Discord JS TypeError:无法读取未定义的属性(读取“角色”)
【发布时间】:2022-01-14 00:13:10
【问题描述】:

我正在创建一个事件,它会在设定的时间间隔内检查 monogodatabase 以查看它们是否是任何过期的键,然后从该成员中删除角色。

const mongoose = require("mongoose")
const { Discord, GuildMemberRoleManager, GuildMember, Guild, Client, Message } = require("discord.js");
const { Database } = require("../../Structures/config.json");
const { count, key } = require("../../Structures/Schemas/keys");
const keys = require('../../Structures/Schemas/keys');

module.exports = {
    name: "ready",
    permission: "ADMINISTRATOR",
    /**
     * @param {Message} oldMessage
    * @param {GuildMemberRoleManager} 
    * @param {GuildMember} member
    * @param {Guild} guild
    * @param {Client} client
    */
    async execute(client, member, guild) {
        setInterval(() => {
                keys.count({ redeemed: true }, async function( err, results ){
                console.log(results)
                console.log("Number of keys:", results);
                const counts = results;
                const keyfind = await keys.findOne({ redeemed: true });
                    for(let i = 0; i < counts; i++){
                        keys.findOne({ redeemed: true }, 'redeemedAt expiryAt userid', async function (err, keys){
                            if (err) return handleError(err);
                            const currentTime = new Date(Date.now()) 
                            const expirationDate = keys.expiryAt;
                            const timeout = currentTime - expirationDate;
                            const role = guild.roles.cache.get('924064535663480922');
                            const member = await guild.members.fetch(keys.userid);
                            console.log(timeout)
                            if (timeout < -1){
                                await keys.then(keyfind.delete());
                                member.roles.remove(role);
                                
                            }
                        })
                    }
                });
                
            }, 3500); 
}
}

每当事件运行时,我都会不断收到此错误 “TypeError:无法读取未定义的属性(正在读取'角色')”。

【问题讨论】:

    标签: javascript node.js discord bots


    【解决方案1】:

    很遗憾,您提供的详细信息很难给您一个结论性的答案。

    我们知道您正在尝试访问未定义的内容。您确定 guild 已正确传递给您的函数,并且您检查过您对 member 的获取是否正常工作?

    最好的问候

    【讨论】:

      【解决方案2】:

      我会做这样的事情(如果您定义了消息):

      const role = message.guild.roles.cache.get(r =&gt; r.I’d ==='924064535663480922');

      【讨论】:

        猜你喜欢
        • 2020-08-17
        • 2021-03-29
        • 2021-01-19
        • 2018-08-17
        • 2020-10-15
        • 2021-07-23
        • 2021-01-01
        • 2021-08-29
        • 1970-01-01
        相关资源
        最近更新 更多