Discord.js播放命令报错:Cannot read properties of undefined (reading 'reply')
Discord.js音乐机器人playyoutube命令报错排查
我在开发Discord.js音乐机器人的playyoutube命令时遇到问题,最初提示'member'未定义,调整后现在出现新错误:TypeError: Cannot read properties of undefined (reading 'reply')。我尝试将await interaction.reply("message content")改为await interaction.reply({ content: "message content" }),但问题仍未解决。
play-youtube.js 代码
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js') const { QueryType } = require('discord-player') module.exports = { data: new SlashCommandBuilder() .setName("playyoutube") .setDescription("Play's a song from youtube.") .addSubcommand(subcommand => subcommand .setName("search") .setDescription("Search for a song on youtube") .addStringOption(option => option .setName("searchterms") .setDescription("Search Keywords") .setRequired(true) ) ) .addSubcommand(subcommand => subcommand .setName("playlist") .setDescription("Pulls a playlist from Youtube. MAKE SURE IT'S PUBLIC!!") .addStringOption(option => option .setName("url") .setDescription("Playlist URL") .setRequired(true) ) ) .addSubcommand(subcommand => subcommand .setName("song") .setDescription("Play's a song from Youtube from URL.") .addStringOption(option => option .setName("url") .setDescription("URL of the song/video") .setRequired(true) ) ), execute: async ({client, interaction}) => { if (!interaction.member.voice.channel) { await interaction.reply({ content: "You must be in a vc to run this command!" }) return; } const queue = await client.player.createQueue(interaction.guild); if (!queue.connection) await queue.connect(interaction.member.voice.channel) let embed = new EmbedBuilder() if (interaction.options.getSubcommand() === "song") { let url = interaction.options.getString("url"); const result = await client.player.search(url, { requestedBy: interaction.user, searchEngine: QueryType.YOUTUBE_VIDEO }); if (result.tracks.length === 0) { await interaction.reply({ content: "No results found. Maybe the video doesn't exist anymore." }) return; } const song = result.tracks[0] await queue.addTrack(song); embed .setDescription(`Added **[${song.title}](${song.url})** to the queue`) .setThumbnail(song.thumbnail) .setFooter({text: `Duration: ${song.duration}`}) } else if (interaction.options.getSubcommand() === "playlist") { let url = interaction.options.getString("url"); const result = await client.player.search(url, { requestedBy: interaction.user, searchEngine: QueryType.YOUTUBE_PLAYLIST }); if (result.tracks.length === 0) { await interaction.reply({ content: "No Results Found! Try putting the playlist to public" }) return; } const playlist = result.playlist; await queue.addTracks(playlist); embed .setDescription(`Added **[${playlist.title}](${playlist.url})** to the queue`) .setThumbnail(song.thumbnail) .setFooter({text: `Duration: ${playlist.duration}`}) } else if (interaction.options.getSubcommand() === "search") { let url = interaction.options.getString("url"); const result = await client.player.search(url, { requestedBy: interaction.user, searchEngine: QueryType.AUTO }); if (result.tracks.length === 0) { await interaction.reply({ content: "No results found! Try a different keyword." }) return; } const song = result.tracks[0] await queue.addTrack(song); embed .setDescription(`Added **[${song.title}](${song.url})** to the queue`) .setThumbnail(song.thumbnail) .setFooter({text: `Duration: ${song.duration}`}) } if (!queue) await queue.play(); await interaction.reply({ embeds: [embed] }) } }
修改前错误栈
D:\Coding Projects\h3lper-refreshed\commands\Music\play-youtube.js:43 await interaction.reply("You must be in a vc to run this command!") ^ TypeError: Cannot read properties of undefined (reading 'reply') at Object.execute (D:\Coding Projects\h3lper-refreshed\commands\Music\play-youtube.js:43:31) at Object.execute (D:\Coding Projects\h3lper-refreshed\events\interaction\interactionCreate.js:14:15) at Client.<anonymous> (D:\Coding Projects\h3lper-refreshed\handlers\eventHandler.js:27:63) at Client.emit (node:events:549:35) at InteractionCreateAction.handle (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12) at module.exports [as INTERACTION_CREATE] (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36) at WebSocketManager.handlePacket (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) at WebSocketShard.onPacket (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22) at WebSocketShard.onMessage (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10) at WebSocket.onMessage (D:\Coding Projects\h3lper-refreshed\node_modules\ws\lib\event-target.js:199:18)
修改后错误栈
D:\Coding Projects\h3lper-refreshed\commands\Music\play-youtube.js:43 await interaction.reply({ content: "You must be in a vc to run this command!" }) ^ TypeError: Cannot read properties of undefined (reading 'reply') at Object.execute (D:\Coding Projects\h3lper-refreshed\commands\Music\play-youtube.js:43:31) at Object.execute (D:\Coding Projects\h3lper-refreshed\events\interaction\interactionCreate.js:14:15) at Client.<anonymous> (D:\Coding Projects\h3lper-refreshed\handlers\eventHandler.js:27:63) at Client.emit (node:events:549:35) at InteractionCreateAction.handle (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\actions\InteractionCreate.js:81:12) at module.exports [as INTERACTION_CREATE] (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\handlers\INTERACTION_CREATE.js:4:36) at WebSocketManager.handlePacket (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\WebSocketManager.js:352:31) at WebSocketShard.onPacket (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\WebSocketShard.js:480:22) at WebSocketShard.onMessage (D:\Coding Projects\h3lper-refreshed\node_modules\discord.js\src\client\websocket\WebSocketShard.js:320:10) at WebSocket.onMessage (D:\Coding Projects\h3lper-refreshed\node_modules\ws\lib\event-target.js:199:18)
希望有人能帮忙解决该报错问题!
内容的提问来源于stack exchange,提问作者h3lped
相关产品推荐
相关产品推荐

