javascript - 为什么我的机器人的 message.js 一直向我发送相同的错误,我该如何解决?
问题描述
所以我目前正在使用 Discord.js 开发一个 Discord 机器人,出于某种原因,我不断收到与以前从未遇到过的错误完全相同的错误,而且我对 Discord.js 还比较陌生。这是错误:
无法读取未定义的属性“startsWith”
这是我正在使用的代码:
require('dotenv').config();
module.exports = (client, message, Discord) => {
const prefix = (process.env.PREFIX);
if(!message.content.startsWith(prefix) || message.author.bot) return; // The line I get the error on.
const args = message.content.slice(prefix.length).split(/ +/);
const cmd = args.shift().toLowerCase();
const command = client.commands.get(cmd) ||
client.commands.find(a => a.aliases && a.aliases.includes(cmd));
try{
command.execute(client, message, args, Discord);
} catch(err){
const ErrorEmbed = new Discord.MessageEmbed()
.setColor('#e6b981')
.setTitle(`There was an error trying to execute this command!`);
message.reply(ErrorEmbed);
console.log(err);
}
}
代码应 MrMythical 的要求放置
const fs = require('fs');
module.exports = (client, message, Discord) =>{
const load_dir = (dirs) =>{
const event_files = fs.readdirSync(`./events/${dirs}`).filter(file => file.endsWith('.js'));
for(const file of event_files){
const event = require(`../events/${dirs}/${file}`);
const eventName = file.split('.')[0];
client.on(eventName, event(client, message, Discord));
}
}
['client', 'guild'].forEach(e => load_dir(e));
}
如果可以请帮忙!
解决方案
您执行此功能的方式不正确。在您执行 message.js 的文件(可能是 index.js)中,您很可能错误地传递了参数。
确保像这样传递它们:
(client, message, Discord)
client 是Client
您的 index.js 中的实例,message 是Message
您的消息侦听器中最有可能的实例,而 Discord 是模块 discord.js。
我是怎么想出来的?每条消息都有content
一个字符串属性。每个字符串都有一个startsWith
函数但message.content
未定义。这意味着message
不是Message
推荐阅读
- javascript - Bootstrap datepicker“下一个”箭头在月份选择视图中被禁用
- android - 要求用户输入并基于它给出输出,但所有输出都从可以远程更新的文件中获取?
- php - 发布到 PHP 时出现 HttpErrorResponse - SyntaxError:JSON 中第 41 位的意外标记 a
- openstack - OpenStack 集群事件通知
- reactjs - 映射 2 种不同类型的 TypeScript 数组,其条件为仅存在于一种类型上的属性?
- c++ - 为什么只调用派生类成员函数?
- java - 为什么它不能从文本文件中读取用户输入的名称和显示信息
- powershell - Powershell类方法返回被强制转换为新类型
- pandas - 通过字典将 pyspark 行列表转换为 pandas 数据框
- c++ - 如何使用 cmake 生成可运行的共享库