javascript - Discord 欢迎消息:无法读取未定义的属性“MessageEmbed”
问题描述
我正在尝试嵌入基本的欢迎信息。这是我main.js
减去登录令牌:
const Discord = require('discord.js');
const client = new Discord.Client();
const MessageEmbed = new Discord.MessageEmbed();
const prefix = 'm.';
const fs = require('fs');
client.commands = new Discord.Collection();
client.events = new Discord.Collection();
const eventFiles = fs.readdirSync('./events').filter(file => file.endsWith('.js'));
for (const file of eventFiles) {
const event = require(`./events/${file}`);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args));
} else {
client.on(event.name, (...args) => event.execute(...args));
}
}
这是welcome.js
减去 的定义channelId
:
module.exports = {
name: 'guildMemberAdd',
execute(member, Discord) {
console.log('login');
const message = `Welcome <@${member.id}> !`;
const channel = member.guild.channels.cache.get(channelId);
const joinEmbed = new Discord.MessageEmbed()
.setTitle(`New member!`)
.setDescription(message)
.setColor("#fab9c7");
channel.send({ joinEmbed });
},
};
这是完整的错误消息:
const joinEmbed = new Discord.MessageEmbed()
^
TypeError: Cannot read property 'MessageEmbed' of undefined
at Object.execute (C:\Users\Al\Desktop\MaikaBot\events\welcome.js:11:39)
at Client.<anonymous> (C:\Users\Al\Desktop\MaikaBot\main.js:17:44)
at Client.emit (events.js:400:28)
at Object.module.exports [as GUILD_MEMBER_ADD] (C:\Users\Al\Desktop\MaikaBot\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (C:\Users\Al\Desktop\MaikaBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\Al\Desktop\MaikaBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\Al\Desktop\MaikaBot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\Al\Desktop\MaikaBot\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:400:28)
at Receiver.receiverOnMessage (C:\Users\Al\Desktop\MaikaBot\node_modules\ws\lib\websocket.js:970:20)
抱歉,如果这真的很基本,我对 javascript 还不是很满意。我似乎无法理解模块语法。
解决方案
Discord
在您的模块中未定义。这是因为guildMemberAdd
事件的回调函数只有一个参数,即GuildMember
.
只需在你的模块中引入 discord.js,或者在调用时传入 Discordexecute
推荐阅读
- voltdb - VoltDB Kafka 导入器
- php - 来自 php 的 PDF 生成器
- localdb - 如果缺少,localdb 不会创建数据库文件
- regex - 正则表达式将 C 样式的多行注释转换为单个块注释
- c# - 如何解释 BenchmarkDotNet 和 dotMemory 的结果?
- php - Laravel 服务容器:父类的上下文绑定,适用于所有子类
- firebase - 在 React Native 中注册并推送数据到 Firebase
- c# - 输入文本的参数太少 - C# Discord bot
- hadoop - 来自多个列的“Hive”最大列值
- azure - 单击管理员同意的取消按钮时重定向到错误页面