【问题标题】:discord.js 'guildMemberAdd' Event not working despite turning on Intentsdiscord.js 'guildMemberAdd' 尽管打开了 Intents,但事件仍然不起作用
【发布时间】:2021-03-01 15:45:36
【问题描述】:

这是我在这里的第一个问题,所以如果我做错了什么,我提前道歉。

您可能知道,Discord 最近实施了一些更改,因此有必要激活 Privileged Gateway Intents,以便机器人可以继续欢迎新成员并赋予他们角色。

我的机器人位于单个服务器中,因此我授予它 PRESENCE INTENT 和 SERVER MEMBERS INTENT。我的印象是这应该足以让机器人重新开始正常工作,但遗憾的是它仍然不欢迎新成员,也没有赋予它自定义角色。其他一切都正常工作(它响应!nameofthebot),并且机器人在线。我还在我希望它们处于活动状态的频道中手动为其授予了所有必要的权限。

我对代码不是很了解,并且由于阅读了这里和其他网站上的讨论,我构建了这个机器人。因此,我想知道在这个级别上是否也有需要更新的东西。这是有问题的代码:

require('dotenv').config()

const Discord = require('discord.js');
const client = new Discord.Client();

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});


client.on('guildMemberAdd', function(member) {
  member.guild.channels.get("539191415624826903").send(`Welcome to our server <@${member.user.id}>. Please do not forget to read the rules, and if you have time, don't hesitate to tell us a little about yourself.<:__:551298213622317066>`)
 var role = member.guild.roles.get("549670094079524867");
 member.addRole(role)
});

client.login(process.env.BOT_TOKEN);

我仔细检查了频道和会员 ID,它们应该没问题。以防万一这可以提供帮助,代码托管在 GitHub 上,并且由于 Heroku,机器人可以运行。

提前感谢任何能够帮助我弄清楚我缺少什么的人。

【问题讨论】:

    标签: javascript discord bots


    【解决方案1】:

    对于 guildMemberAdd、guildMemberRemove、guildMemberUpdate 事件,您需要启用“GUILD_MEMBERS”意图

    请查看this link

    这就是我创建机器人客户端的方式:

    const Discord = require("discord.js");  
    const { Client, Intents } = require("discord.js");
    
    client = new BotClient({
      ws: { intents: [Intents.NON_PRIVILEGED, "GUILD_MEMBERS"] },
    });
    

    const Discord = require("discord.js");  
    const { Client, Intents } = require("discord.js");
    
    client = new BotClient({
      ws: { intents: Intents.ALL },
    });
    

    还请确保您已在您的 Discord Developer Portal 上启用了 PRIVILEGED Intents

    【讨论】:

    • 谢谢你!我确实在 Developer Portal 上启用了所有 Privileged Intent,但是当我尝试您的代码时,它告诉我“ReferenceError: Intents is not defined”。
    • 我试图定义意图,但机器人仍然没有对新成员的加入做出反应。这是我的新代码:
    • const Discord = require("discord.js"); const { Client, Intents } = require("discord.js"); const client = new Client({ ws: { intents: Intents.ALL }}); client.on("ready", () =&gt; { console.log("I am ready"); }); client.on('guildMemberAdd', function(member) { member.guild.channels.get("636919952787374092").send(Welcome to our server .) var role = member.guild.roles.get("637288616057503749"); member.addRole(role) });
    猜你喜欢
    • 2022-06-25
    • 2023-03-14
    • 2022-01-09
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    相关资源
    最近更新 更多