簡體   English   中英

盡管打開了意圖,discord.js 'guildMemberAdd' 事件不起作用

[英]discord.js 'guildMemberAdd' Event not working despite turning on Intents

這是我在這里的第一個問題,所以如果我做錯了什么,我提前道歉。

如您所知,Discord 最近實施了一些更改,因此有必要激活 Privileged Gateway Intents,以便機器人可以繼續歡迎新成員並為他們分配角色。

我的機器人在一個服務器中,所以我同時授予它存在意圖和服務器成員意圖。 我的印象是這應該足以讓機器人重新開始正常工作,但遺憾的是它仍然不歡迎新成員,也沒有為其提供自定義角色。 其他一切都正常工作(它響應 !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 的幫助下運行。

提前感謝任何可能幫助我找出我遺漏的人。

對於 guildMemberAdd、guildMemberRemove、guildMemberUpdate 事件,您需要啟用“GUILD_MEMBERS”意圖

請檢查此鏈接

這就是我創建機器人客戶端的方式:

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 開發者門戶上啟用 PRIVILEGED Intents

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM