当前位置: 首页 > 知识库问答 >
问题:

音乐机器人使用discord时出现问题。js

杜思远
2023-03-14

我在创建一个基本的discord机器人(用于播放音乐)时遇到了一些错误。我主要依赖于文档——我想我复制并粘贴了discord中的某些代码行。“断章取义”的js文档示例。但我不知道它们可能是什么,因为我对编程还是很陌生。

我安装并导入了所有必要的依赖项,所以这不是问题所在。我的机器人工作正常(收听和回复MSG)。

这是与音乐功能相关的代码

  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.

难道是:

  1. 机器人需要先进入通道?(这意味着我需要编写一个连接通道函数?)

共有1个答案

谷星文
2023-03-14

用这边解释和显示的代码试试:
https://discordjs.guide/voice/
首先,你需要创建一个语音频道连接,然后你可以播放东西...
一切都应该在网站上解释。
希望我能帮忙;)
ShadowLp174

 类似资料:
  • 我是一个初学者程序员(或者在我看来是这样),我需要帮助在音乐机器人中实现一个队列。 目前,只有当队列中有一首歌时,队列才能正常工作。如果有更多的歌曲,那么递归开始(在=wait serverQueue(语音,消息)之后从def play开始并等待play(queue.pop(0),语音,消息)从队列开始),并且所有歌曲只是跳过。 我试图以不同的方式解决这个问题,例如,引入了第二个变量,但这并没有带

  • 我对Javascript了解不多,所以请耐心听我说。 所以,我想为我的不和谐机器人发出命令。基本上,我想发生的是,当你发布“!记录”,我想让机器人发送一个RichEmbed与2个选项,你可以选择。 我已经把那部分搞定了。这正是我想要的。它发送带有两个选项的RichEmbed。 接下来我想做的是,当您发送“1”或“2”时,我希望Bot回复正确的记录。这是我不能理解的部分。以下是所有代码: 有人能概括

  • 问题内容: 我想知道这里是否有人知道如何将NAO机器人音频流传输到python中的远程模块,以及您是否有示例。我想直接在笔记本电脑上获取NAO音频缓冲区以进行处理,因此无需录制和scp或其他操作。 现在我的问题是这样的:aldebaran网站说,为了远程(在我的笔记本电脑上)接收音频,我必须编写一个继承自ALSoundExtractor的模块。事实是,此类未包含在python SDK中,因此,如果

  • 我刚开始用node学习javascript。js和我正在尝试创建一个音乐机器人,我已经设置了命令处理程序和所有东西,但是,当我尝试运行play命令时,我一直会遇到这个错误 错误:未找到FFmpeg/avconv!在功能上。getInfo(C:\Users\johnd\OneDrive\Desktop\discordBot\node\u modules\prism media\src\core\FF

  • 我想制作一个可分页队列命令,这样我就可以用反应控制整个队列。但是,每当我运行命令时,总是会出现错误。因此,我希望每当消息作者对⏹" 反应。这是我的密码: 但是,即使在机器人对停止反应作出反应时删除它。我从bot收到一条消息,说发生了一个错误。我无法理解为什么,也无法理解如何解决它。你能帮我吗?提前谢谢!

  • 尝试制作一个简单的音乐机器人,只播放一个链接,但它不连接到语音通道,因此不会出现任何错误,所以我只能放入所有代码。这是我的主要内容。js公司 这是我的音乐机器人命令,我认为它是正确的,因为我已经在这里请求了一些人的帮助。