【发布时间】:2021-07-25 04:05:44
【问题描述】:
我在创建基本的不和谐机器人(用于播放音乐)时遇到了一些错误。我一直主要依赖文档 - 我想我从 discord.js 文档示例中复制并粘贴了“脱离上下文”的某些代码行。但我不知道它们可能是什么,因为我对编程还是很陌生。
我安装并导入了所有必要的依赖项,所以这不是问题。 我的机器人工作正常(收听和回复消息)。
这是音乐功能相关的代码
client.on("message", async message => {
const prefix = '?'
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if (command === 'play') {
let track = await client.player.play(message.member.voice.channel, args[0],
message.member.user.tag);
message.channel.send(`Currently playing ${track.name} as requested by
${track.requestedBy}`);
}
if (command === 'stop') {
let track = await client.player.stop(message.guild.id);
message.channel.send('Stopped.')
}
})
这是我得到的错误:
(node:436) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'play' of undefined
(node:436) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated
either by throwing inside of an async function without a catch block, or by rejecting a promise
which was not handled with .catch(). To terminate the node process on unhandled promise
rejection, use the CLI flag `--unhandled-rejections=strict` (see
https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:436) [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.
可能是:
- 机器人需要先在频道中? (这意味着我需要编写一个加入频道的函数?)
- 前缀有问题?我的 config.json 文件中定义的前缀是
"prefix": ";;ntek ",我确实尝试将前缀更改为该前缀,将其完全删除,以及一堆其他的东西,但似乎没有任何东西可以使机器人工作。 - 异步函数中存在语法错误(或缺少某些内容)?
【问题讨论】:
-
client.player不是一个东西。
标签: javascript node.js discord discord.js bots