問題描述
所以當一個新成員加入 Guild
[discord 服務器].Bot應該在某個頻道(ID = 766716351007686696)中發送消息,向他們發送直接消息,然后添加角色(人豆).這是我現在擁有的代碼,它不起作用,底部有錯誤
client.on('guildMemberAdd', member =>{const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")const channelwelcomeEmbed = new Discord.MessageEmbed().setColor('#ffd6d6').setTitle('歡迎!').setDescription(`${member} 剛剛加入不和諧!請務必閱讀#rules!`).setTimestamp();channel.send(channelwelcomeEmbed);const dmwelcomeEmbed = new Discord.MessageEmbed().setColor('#ffd6d6').setTitle('歡迎!').setDescription("For Help Using @Pro Bot#7903, Send the command `!help` In Server").setTimestamp();member.send(dmwelcomeEmbed);let role6 = message.guild.roles.cache.find(role => role.name == "Human Bean");//基本角色,每個人都明白if(!role6) return message.reply(找不到那個角色.")member.roles.add(role6);});
錯誤信息是;
const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")^ReferenceError:消息未定義
你的代碼看起來很好,問題是事件沒有被觸發.那是因為不和諧關閉了特權意圖".默認情況下.
某些意圖被定義為特權";由于數據的敏感性.這些意圖是:
GUILD_PRESENCES
GUILD_MEMBERS
其中一個影響是您正在經歷的,即不工作的 guildMemberAdd
事件.
好消息是您可以通過一個簡單的步驟解決此問題.只需在
如果您想了解更多信息
- Discord.js 官方指南 - 網關意圖
- Discord 開發者文檔 - 網關意圖
- 網關更新常見問題解答
- Discord API Github - 第 1363 期 - 特權意圖李>
- Discord 博客 - Discord 上機器人的未來一個>
- 無我的 discord.js 公會成員事件正在發出,我的用戶緩存基本上是空的,我的函數正在超時?
So When A New Member Joins The Guild
[the discord server]. The Bot Should Send A Message In a certain Channel (ID = 766716351007686696), Send Them A Direct Message, And Then Add A Role (Human Bean). This Is The code I Have Now and it isn't working, error at the bottom
client.on('guildMemberAdd', member =>{
const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")
const channelwelcomeEmbed = new Discord.MessageEmbed()
.setColor('#ffd6d6')
.setTitle('Welcome!')
.setDescription(`${member} just joined the discord! Make sure to read #rules!`)
.setTimestamp();
channel.send(channelwelcomeEmbed);
const dmwelcomeEmbed = new Discord.MessageEmbed()
.setColor('#ffd6d6')
.setTitle('Welcome!')
.setDescription("For Help Using @Pro Bot#7903, Send The Command `!help` In Server")
.setTimestamp();
member.send(dmwelcomeEmbed);
let role6 = message.guild.roles.cache.find(role => role.name == "Human Bean"); //BASIC ROLE, EVERYONE GETS IT
if(!role6) return message.reply("Couldn't find that Role .")
member.roles.add(role6);
});
Error Message is;
const channel = message.guild.channels.cache.find(c => c.id === "766716351007686696")
^
ReferenceError: message is not defined
Your code looks fine, the problem is that the event isn't triggered. Thats because discord turned off "privileged intents" by default.
Some intents are defined as "Privileged" due to the sensitive nature of the data. Those intents are:
GUILD_PRESENCES
GUILD_MEMBERS
One effect of that is what you are experiencing, the not working guildMemberAdd
event.
The good news is that you can fix this with one easy step. Simply enable Privileged Gateway Intents in the discord developer portal and it should work just fine.
If you want to read more about it
- Discord.js Official Guide - Gateway Intents
- Discord Developer Documentation - Gateway Intents
- Gateway Update FAQ
- Discord API Github - Issue 1363 - Priviledged Intents
- Discord Blog - The Future of Bots on Discord
- None of my discord.js guildmember events are emitting, my user caches are basically empty, and my functions are timing out?
這篇關于Discord.js 機器人歡迎會員,分配角色并向他們發送 DM的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!