Javascript 邀请频道通知Discord.js
因此,我正在用Visual Studio代码在Node.js中编写一个机器人。我想有一个渠道,当用户加入公会时,将发送“欢迎用户和thisuserTotal邀请:5 代码是:Javascript 邀请频道通知Discord.js,javascript,node.js,discord,discord.js,bots,Javascript,Node.js,Discord,Discord.js,Bots,因此,我正在用Visual Studio代码在Node.js中编写一个机器人。我想有一个渠道,当用户加入公会时,将发送“欢迎用户和thisuserTotal邀请:5 代码是: module.exports = (client) => { const invites = {} // { guildId: { memberId: count } } const getInviteCounts = async (guild) => { return await new P
module.exports = (client) => {
const invites = {} // { guildId: { memberId: count } }
const getInviteCounts = async (guild) => {
return await new Promise((resolve) => {
guild.fetchInvites().then((invites) => {
const inviteCounter = {} // { memberId: count }
invites.forEach((invite) => {
const { uses, inviter } = invite
const { username, discriminator } = inviter
const name = `${username}#${discriminator}`
inviteCounter[name] = (inviteCounter[name] || 0) + uses
})
resolve(inviteCounter)
})
})
}
client.guilds.cache.forEach(async (guild) => {
invites[guild.id] = await getInviteCounts(guild)
})
client.on('guildMemberAdd', async (member) => {
const { guild, id } = member
const invitesBefore = invites[guild.id]
const invitesAfter = await getInviteCounts(guild)
console.log('BEFORE:', invitesBefore)
console.log('AFTER:', invitesAfter)
for (const inviter in invitesAfter) {
if (invitesBefore[inviter] === invitesAfter[inviter] - 1) {
const channelId = '731801004462571602'
const channel = guild.channels.cache.get(channelId)
const count = invitesAfter[inviter]
channel.send(
`Please welcome <@${id}> to the Discord! Invited by ${inviter} (${count} invites)`
)
invites[guild.id] = invitesAfter
return
}
}
})
}
这段代码与控制台完美配合,但我面临一个问题,永远不要在频道中发布消息 由于频道ID,消息可能无法发送。请仔细检查您是否使用了正确的频道ID,并尝试更改 const channel=guild.channels.cache.getchannelId到此
const channel=client.channels.cache.getchannelId我已经试过了,但没有成功!试一试,我已经在我的应用程序中使用了它,它似乎很有效。Client.channels.cache.get'ChannelID'。发送消息!我做到了,也是一样!