我正在尝试创建一个 autorole 事件,该事件在用户加入时为用户提供成员角色。 但是我不明白如果我不能在 guildMemberAdd 事件中使用 message.guild.id 函数,我不明白如何获取公会 ID。我需要它来从数据库中获取 memberRoleID 属性。
这是我的代码:
#10/19/2012 11:34:06 AM#
答案 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);
}
}