Discord.js 机器人“未处理的承诺拒绝类型错误:无法读取未定义的属性 255890520990154752”
Posted
技术标签:
【中文标题】Discord.js 机器人“未处理的承诺拒绝类型错误:无法读取未定义的属性 255890520990154752”【英文标题】:Discord.js Bot "Unhanded Promised Rejection Type Error: Cannot Read Property 255890520990154752 of undefined" 【发布时间】:2020-02-06 13:05:52 【问题描述】:const commando = require('discord.js-commando');
const ytdl = require('ytdl-core');
function Play(connection, message)
var servers = servers[message.guild.id];
server.dispatcher = connection.playStream(ytdl(`$server.queue[0]`, filter: "audioonly"));
server.queue.shift();
server.dispatcher.on("end", function()
if(server.queue[0])
Play(connection, message);
else
connection.disconnect();
);
class PlayCommand extends commando.Command
constructor(client)
super(client,
name: 'play',
group: 'music',
memberName: 'play',
description: 'Plays music!'
);
async run(message, args)
if (!permissions.has('CONNECT') || !permissions.has('SPEAK'))
return message.channel.send('I need the permissions to join and speak in your voice channel!');
if(message.member.voiceChannel)
if(!message.guild.voiceConnection)
if(!servers[message.guild.id])
var server = servers[message.guild.id];
servers[message.guild.id] = queue: []
message.member.voiceChannel.join()
.then(connection =>
var servers = servers[message.guild.id];
message.reply("Sucessfully Joined Channel!");
let validate = await ytdl.validateURL(args);
if(!validate) return message.channel.send('Sorry, Please input a **valid** url.');
server.queue.push(args);
Play(connection, message);
)
else
message.reply("You must be in a voice channel to use that command! ")
console.log(message.author.username + ' Used a ' + 'music' + ' command \n');
module.exports = PlayCommand;
这是机器人上“播放”命令的代码。 机器人的工作是使用 ytdl 库播放音乐。
我不确定问题出在哪里;起初,我认为它可能没有找到库或安装错误,所以我重新安装了所有库(ytdl-core、discord.js、discord.js-commando...)
还是什么都没有!
我对 javascript 尤其是错误代码不是很流利,因此非常感谢任何有助于解决问题的正确方向的帮助或指导!
这是我在这里提出的第一个问题,因此对于任何不一致之处,我深表歉意。
完整的错误代码:
(node:18216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
【问题讨论】:
【参考方案1】:您的 servers
变量似乎从未初始化过。确保它实际上包含正确的公会。
【讨论】:
以上是关于Discord.js 机器人“未处理的承诺拒绝类型错误:无法读取未定义的属性 255890520990154752”的主要内容,如果未能解决你的问题,请参考以下文章
我将如何使用两个不同版本的 discord.js | Discord.js 机器人
(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?
Discord.js - Discord 机器人停止响应命令
Discord.JS - Hypixel Discord 机器人