消息在 guildMemberAdd discord.js 中不起作用

时间:2021-06-19 19:16:36

标签: javascript discord.js

我正在尝试创建一个 autorole 事件,该事件在用户加入时为用户提供成员角色。 但是我不明白如果我不能在 guildMemberAdd 事件中使用 message.guild.id 函数,我不明白如何获取公会 ID。我需要它来从数据库中获取 memberRoleID 属性。

这是我的代码:

#10/19/2012 11:34:06 AM#

1 个答案:

答案 0 :(得分:0)

guildMemberAdd 事件不会发出 message 对象。您可以从 guildMember.guild 中检索公会,就像您在定义 role

时所做的那样
const mongoose = require('mongoose');
const Guild = require('../database/models/guildSchema');

module.exports = {
    name: 'guildMemberAdd',
    async execute(guildMember){
        let guildProfile = await Guild.findOne({ guildID: guildMember.guild.id});
        if(!guildProfile){
            guildProfile = await new Guild({
                _id: mongoose.Types.ObjectId(),
                guildID: guildMember.guild.id
            });
            await guildProfile.save().catch(err => console.log(err));
        }
        const role = guildMember.guild.roles.cache.get(guildProfile.memberRoleID);
        guildMember.roles.add(role.id);
    }
}

Client#guildMemberAdd 上的文档