Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 邀请频道通知Discord.js_Javascript_Node.js_Discord_Discord.js_Bots - Fatal编程技术网

Javascript 邀请频道通知Discord.js

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

因此,我正在用Visual Studio代码在Node.js中编写一个机器人。我想有一个渠道,当用户加入公会时,将发送“欢迎用户和thisuserTotal邀请:5

代码是:

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'。发送消息!我做到了,也是一样!