GuildMember не определен

Я пытался сделать приветственное сообщение, когда кто-то заходит на мой сервер, но я пытаюсь сделать так, чтобы он встраивался из другого файла. Он говорит, что guildMember не определен, и я это понимаю, но не знаю, как его определить.

Обратите внимание, что я использую discord.js версии 12.

Вот мой index.js:

const express = require('express');
const app = express();
const port = 8080;
app.get('/', (req, res) => res.send('Hello World!'));
app.listen(port, () => console.info('Hosted site'));

const { Client, Intents } = require('discord.js');
const Discord = require('discord.js');
const variable = require('./commands/variable');
const welcome = require('./commands/welcome');

const mongoose = require('mongoose');
mongoose.connect(process.env['mongo'], { useNewUrlParser: true, useUnifiedTopology: true }).then(console.info('Mongo is connected!'))

const fs = require('fs');
const prefix =  ('m?');

const client = new Client({
    intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MESSAGE_REACTIONS],
    partials: ['MESSAGE', 'CHANNEL', 'REACTION'],
});



client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands/').filter(File => File.endsWith('.js'));
for (const file of commandFiles) {
  const command = require(`./commands/${file}`);
  client.commands.set(command.name, command)
}

client.once('ready', async () => {
  console.info('MBot is ready!');
  
client.user.setActivity("Vedad", {
  type: "LISTENING"
});
});

client.on('guildMemberAdd', guildMember => {

guildMember.guild.channels.cache.get('975033510186324069').send(welcome.wlc)
  
})


client.on('message', message => {

  if (!message.content.startsWith(prefix) || message.author.bot) return;

  const args = message.content.slice(prefix.length).split(/ +/);
  const command = args.shift().toLowerCase();

   if (command === 'wlcmsgid') {
    client.commands.get('wlcmsgid').execute(message, args, Discord, client);}
     
    else if (command === 'ping') {
    client.commands.get('ping').execute(message, args, Discord, client);}
  
})

client.login(process.env['token']);

вот файл welcome.js:

const Discord = require('discord.js');
const variable = require('./variable');

module.exports.wlc = new Discord.MessageEmbed()
        .setColor('#000000')
.setDescription(`━━━━━━━━━━━━━━━━━━━━━━━━
        
        Welcome <@${guildMember.user.id}> to **GhostCommunity!** 
        
        ━━━━━━━━━━━━━━━━━━━━━━━━`)

Вот моя консольная ошибка:

ReferenceError: guildMember is not defined
    at Object.<anonymous> (/home/runner/MBot-1/commands/welcome.js:8:21)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/home/runner/MBot-1/index.js:10:17)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)

Я просто не могу понять, как определить guildMember в welcome.js. Пожалуйста, помогите, спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У вас есть доступ к guildMember в обработчике событий guildMemberAdd, поэтому вам следует изменить welcome.wlc на функцию, которая возвращает Discord.MessageEmbed() и получает guildMember в качестве аргумента.

добро пожаловать.js

module.exports.wlc = (member) => {
 return new Discord.MessageEmbed().setColor('#000000')
.setDescription(`━━━━━━━━━━━━━━━━━━━━━━━━
        
        Welcome <@${member.user.id}> to **GhostCommunity!** 
        
        ━━━━━━━━━━━━━━━━━━━━━━━━`)
}

index.js

client.on('guildMemberAdd', guildMember => {

guildMember.guild.channels.cache.get('975033510186324069').send(welcome.wlc(guildMember))
  
})

Спасибо за ответ, но я все еще немного запутался. Можете ли вы показать это с примером кода, пожалуйста?

veedoni 14.05.2022 18:57

ну, я не совсем знаком с SO, но это будет что-то вроде этого:

Shahryar_Jahanshahloo 14.05.2022 19:01

Хорошо, спасибо, все равно попробую это решение

veedoni 14.05.2022 19:13

Я попробовал, и это работает! Большое спасибо!

veedoni 14.05.2022 21:33

Другие вопросы по теме