机器人 - DisTubeError [INVALID_TYPE]:预期'Discord.Message'



我制作了一个音乐机器人,但我想把它变成互动,但我在调用播放函数时遇到了问题。

用";消息";它起作用,但与";交互作用";事实并非如此。我试图传递一些信息,我搜索了一下,但没能。

我甚至找到了一种不同的方法,但没有奏效。

返回的错误是:

DisTubeError [INVALID_TYPE]: Expected 'Discord.Message' for 'message', but got undefined (undefined)

Play.js

const { SlashCommandBuilder } = require('@discordjs/builders');
module.exports = {
data: new SlashCommandBuilder()
.setName('play')
.setDescription('Play a song!')
.addStringOption(option => option.setName('song').setDescription('Enter name of the music.')),
async execute (interaction, client){
// if(!interaction.member.voice.channel) return interaction.reply("Please, join a voice channel!");
const music = interaction.options.getString('song');
if(!music) return interaction.reply("Please, provide a song!");

await client.distube.play(interaction, music);
// await client.distube.playVoiceChannel(
//   interaction.member.voice.channel,
//   music,
//   { 
//     textChannel: interaction.channel,
//     member: interaction.member
//   }
// );
}
}

DisTube在发布此问题时不支持斜杠命令,而且创建者似乎没有任何正式支持它的计划。作为一种变通方法,您可以使用Distube#playVoiceChannel方法而不是Distube#play方法,如下所示:

await client.distube.playVoiceChannel(interaction.member.voice.channel, music);

但在执行这些操作之前,看起来interaction是未定义的——这可能是命令处理程序的问题,所以请查看。

编辑:如果你对感兴趣,也可以为Distube#playVoiceChannel提供文档

最新更新