【问题标题】:Why doesn't my welcome message work(discord.js)为什么我的欢迎信息不起作用(discord.js)
【发布时间】:2021-12-06 11:40:21
【问题描述】:

我正在尝试制作一个机器人,它赋予用户成员角色并向聊天发送简单的欢迎消息。但是,当有人加入时,什么也没有发生(甚至没有错误)。这是我的代码:

client.on('guildMemberAdd', guildMember => {
        console.log(guildMember);
        let role = guildMember.guild.roles.cache.find(role => role.name == 'member');
        guildMember.roles.add(role);
    
        member.guild.channels.get('channelID').send(`welcome <@${guildMember.id}> dont forget to 
        check the rules`);
    });

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    您是否激活了必要的标志?客户端需要以下意图才能在有人加入机器人所在的服务器时收到警报

    const client = new Discord.Client({intents : ["GUILD_MEMBERS"]})
    

    the official documentation中查看更多意图

    最后,它看起来像:

    const Discord = require('discord.js')
    const client = new Discord.Client({intents : ["GUILD_MEMBERS"]})
    
    client.on('guildMemberAdd', guildMember => {
            console.log(guildMember);
            let role = guildMember.guild.roles.cache.find(role => role.name == 'member');
            guildMember.roles.add(role.id);
        
            guildMember.guild.channels.get('the channel id')).send(`welcome <@${guildMember.id}> dont forget to 
            check the rules`);
        });
    

    还要确保您没有将client.on('guildMemberAdd',...) 放在client.on('message',..) 中,它们需要分开。

    【讨论】:

    • 我忘了添加 guild_members 意图,但现在有人加入服务器时会出错:TypeError: "899366272100339752".send is not a function
    • 你得到一个ID,确保它是Channel
    • 这是一个与问题无关的不同问题。如果此答案解决了相关问题,请打勾
    猜你喜欢
    • 2022-08-17
    • 2021-09-23
    • 2020-07-11
    • 2021-12-24
    • 2021-01-25
    • 2021-10-12
    • 2021-04-11
    • 1970-01-01
    • 2022-11-20
    相关资源
    最近更新 更多