Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 Bot | Discord.js |类型错误:无法读取属性';长度';未定义的_Javascript_Node.js_Discord_Discord.js_Bots - Fatal编程技术网

Javascript Discord Bot | Discord.js |类型错误:无法读取属性';长度';未定义的

Javascript Discord Bot | Discord.js |类型错误:无法读取属性';长度';未定义的,javascript,node.js,discord,discord.js,bots,Javascript,Node.js,Discord,Discord.js,Bots,我正在制作一个Discord机器人,我正在使用CodeLyon的视频作为参考 错误在my message.js文件中,该文件包含以下内容: require('dotenv').config(); //创建冷却地图 常数冷却=新映射(); module.exports=(不一致、客户端、消息)=>{ 常量前缀=process.env.prefix; 如果(!message.content.startsWith(prefix)| | message.author.bot)返回; const args

我正在制作一个Discord机器人,我正在使用CodeLyon的视频作为参考

错误在my message.js文件中,该文件包含以下内容:

require('dotenv').config();
//创建冷却地图
常数冷却=新映射();
module.exports=(不一致、客户端、消息)=>{
常量前缀=process.env.prefix;
如果(!message.content.startsWith(prefix)| | message.author.bot)返回;
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));
常量有效权限=[
“创建即时邀请”,
“踢腿队员”,
“班尤成员”,
“管理员”,
“管理_频道”,
“管理公会”,
“添加反应”,
“查看审核日志”,
“优先发言人”,
“流”,
“查看频道”,
“发送消息”,
“发送消息”,
“管理邮件”,
“嵌入链接”,
“附加文件”,
“读取消息和历史记录”,
“提到每个人”,
“使用外部表情符号”,
“查看行业协会洞察”,
“连接”,
“说”,
“哑巴联盟成员”,
“聋哑会员”,
“移动成员”,
“使用_-VAD”,
“更改昵称”,
“管理您的昵称”,
“管理_角色”,
“管理网络钩子”,
“管理表情符号”,
]
if(command.permissions.length){
设invalidPerms=[]
for(const perm of command.permissions){
如果(!validPermissions.includes(perm)){
返回console.log(`Invalid Permissions${perm}`);
}
如果(!message.member.hasPerm)){
无效项推送(perm);
}
}
if(无效术语长度){
返回message.channel.send(`Missing Permissions:\`${invalidPerms}\`);
}
}
//如果冷却地图没有command.name键,则创建一个。
试一试{
如果(!cooldowns.has(command.name)){
set(command.name,new Discord.Collection());
}
}捕捉(错误){
返回消息。回复(“我的命令有限。我找不到该命令!”);
}
const current_time=Date.now();
const time_stamps=cooldowns.get(command.name);
常数冷却\u数量=(命令冷却)*1000;
//如果time_stamps有一个带有作者id的密钥,则检查过期时间以向用户发送消息。
if(time_stamps.has(message.author.id)){
const expiration\u time=时间戳.get(message.author.id)+冷却量;
如果(当前时间<到期时间){
const time_left=(到期时间-当前时间)/1000;
返回message.reply(`Please wait${time_left.toFixed(1)}秒,然后再使用${command.name}`);
}
}
//如果作者的id不在时间戳中,则将其与当前时间一起添加。
时间戳.set(message.author.id,当前时间);
//冷却结束后删除用户id。
setTimeout(()=>时间戳.delete(message.author.id),冷却量);
试一试{
执行(客户端、消息、cmd、args、Discord);
}捕捉(错误){
reply(“尝试执行此命令时出错!”);
控制台日志(err);
}
}
我在message.js中添加了一些“权限代码”,但它表示
command.permissions.length
的长度无效

我是否需要更改或更新任何软件包?如果我需要澄清什么,请在评论中告诉我


编辑:已解决!在我的
模块.exports
对象中,我忘记输入权限值@伊瓦尔说了一些关于这件事的话,但当时我没有经验,也不太清楚他在说什么。

我不知道是否有人回答了,但你只需要 如果(!命令)返回;在12号线上,你会很好的。
如果有人发出您尚未定义的命令,则会出现错误!在我的module.exports对象中,我忘记输入权限值@Ivar谈到了这一点,但当时我没有经验,也不太清楚他在说什么。

command.permissions.length的长度无效是什么意思。您是否收到任何错误消息?“无法读取未定义的属性'length'”表示它无法从
未定义的对象中读取
长度
。因此,如果在
command.permissions.length
上引发此错误,则
command.permissions
的值为
undefined
。换句话说,
命令
存在,但没有
权限
属性。好吧,在视频中它说它可以工作,但我该如何解决这个问题?恐怕我不能告诉你比我在上一次评论中说的更多。我对Discord.js不是很熟悉。我看了文档,但也找不到任何
命令。没关系,我解决了。我意识到在我的命令文件中,我没有输入权限值,所以权限值没有定义。不过,谢谢!