簡體   English   中英

ReferenceError:成員未在 Discord 機器人中定義

[英]ReferenceError: member is not defined in Discord bot

const { MessageEmbed} = require('discord.js')

module.exports = {
  
      name: 'guildMemberAdd',
      execute(message, Discord, client, guild) {
      const channelId = '918746332435468288' // welcome channel
      const embed = new MessageEmbed()
      .setTitle(`Welcome ${member.user.username}`)
        .setColor(`EEA83B`)
        .setDescription(`Welcome \`${member.username}\` To The Floppacord! Have Fun And Be Sure To Follow The Rules In <#860428690034917406>`)
        .setThumbnail(guild.avatarURL)
        .setFooter({ text: member.name + "#" + member.discriminator, iconURL: member.avatarURL})
  channel.send(member.tag)
  channel.send(embed)
      }}

嘿,抱歉編碼不好,我對這種事情很陌生。 但是當我嘗試在我的機器人中使用它時,我收到了這個錯誤: [Bot] ReferenceError: member is not defined 任何幫助,將不勝感激 :)

Ps 如果那很重要,我正在使用 discord.js v12.5.3

在為guildMemberAdd事件創建事件監聽器時,您將獲得一個參數,該參數是默認加入服務器的成員。 所以如果你有一個像這樣的事件監聽器,你可以只使用該member而不在任何地方定義它:

client.on('guildMemberAdd', (member) => {
    // ...
})

查看您的代碼,您似乎有一個命令處理程序並試圖在其中放置一個事件,我認為它不會起作用。 您可以這樣做的另一種方法是,如果您在主文件(例如: index.js )中創建了事件偵聽器,然后在事件運行時執行一段代碼。 一個例子:

index.js:

import guildMemberFunctionFile from 'your/file/path/tothecommand'
\\ ...

client.on('guildMemberAdd', (member) => {
    guildMemberFunctionFile.execute(member)
})

\\ ...

您的事件代碼:

function execute(member) {
    // Execute something
}
exports.execute = execute
const { MessageEmbed } = require('discord.js');

module.exports = {
  name: 'guildMemberAdd',
  execute(message, Discord, client, guild, member) {
    const channelId = '918746332435468288' // welcome channel

    const embed = new MessageEmbed()
      .setTitle(`Welcome ${member.user.username}`)
      .setColor(`EEA83B`)
      .setDescription(`Welcome \`${member.username}\` To The Floppacord! Have Fun And Be Sure To Follow The Rules In <#860428690034917406>`)
      .setThumbnail(guild.avatarURL)
      .setFooter({ text: member.name + "#" + member.discriminator, iconURL: member.avatarURL });

    channel.send(member.tag);
    channel.send(embed);
  }
}

我希望你的代碼是一個事件而不是一個命令

暫無
暫無

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

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