問題描述
我的機器人在加入時不發送消息.
client.on('guildMemberAdd', member => {常量 linkId = pool.createLink(client.id);const embed = new Discord.MessageEmbed().setTitle('reCAPTCHA 驗證').setDescription(`要訪問此服務器,您必須解決驗證碼.鏈接將在 15 分鐘后過期.
http://${domain == '' ? 'localhost:8050' : domain}/verify/${鏈接ID}`).setColor('藍色')成員.發送(嵌入)})
鑒于您的代碼中沒有出現任何錯誤,我假設 guildMemberAdd
事件不會為您觸發一點也不.這可以通過在當前代碼中的 guildMemberAdd
事件處理程序中添加 console.log
語句并讓成員加入公會來快速確認.
我能想到會發生這種情況的唯一原因是 Discord API 相對較新的 intents
功能.您需要訂閱特定的意圖才能可靠地接收關聯事件.guildMemberAdd
位于
相關資源:
意圖和相關事件列表
有關意圖的一般信息
My bot doesn't send the message on join.
client.on('guildMemberAdd', member => {
const linkId = pool.createLink(client.id);
const embed = new Discord.MessageEmbed()
.setTitle('reCAPTCHA Verification')
.setDescription(`To gain access to this server you must solve a captcha. The link will expire in 15 minutes.
http://${domain == '' ? 'localhost:8050' : domain}/verify/${linkId}`)
.setColor('BLUE')
member.send(embed)
})
Given that you aren't getting any errors in your code, I'm assuming the guildMemberAdd
event isn't triggering for you at all. This could be quickly confirmed by putting a console.log
statement inside of your guildMemberAdd
event handler in your current code, and having a member join the guild.
The only reason I can think of that this would occur, is the Discord API's relatively new intents
feature. You need to subscribe to specific intents in order to reliably receive the affiliated events. guildMemberAdd
is on the list of events that may require subscription to an intent.
Here's one possible fix you'll need to implement wherever you are defining client
:
const intents = ["GUILDS", "GUILD_MEMBERS"];
const client = new Discord.Client({intents: intents, ws:{intents: intents}});
If you are already properly using intents, then I would recommend using console.log
as aforementioned to ensure the guildMemberAdd
event is triggering. If not, then this is the answer. Note that you must use discord.js v12.x.x to use intents, so if you're using an older version you'll need to update to fix your issue.
You may also need to enable the below setting for your bot on its discord developers page, as I think guildMemberAdd
is part of a privileged intent:
Relevant resources:
List of intents and associated events
General info about intents
這篇關于Bot 不會在加入時發送消息(djs)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!