javascript - 带有distube 的discord 音乐机器人| 高分辨率照片| CLIPARTO 不和谐.js
问题描述
我的代码有问题,我尝试编写一个不和谐的音乐机器人,但我总是在 Visual Studio 代码中显示错误消息。我尝试了多种方法,但都没有奏效。我将 distube 用于机器人,因为它更容易。
我的代码:
const Discord = require('discord.js')
DisTube = require('distube')
module.exports = {
execute: async (client, message, args) => {
const distube = new DisTube(client, { searchSongs: false, emitNewSongOnly: false });
client.on("message", async (message) => {
if (message.author.bot) return;
if (!message.content.startsWith(config.prefix)) return;
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift();
if (command == "play")
distube.play(message, args.join(" "));
if (command == "stop") {
distube.stop(message);
message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Stopped the music!**
> If you want me to rejoin, type m!play.`);
}
if (command == "queue") {
let queue = distube.getQueue(message);
message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Current queue**:
> ` + queue.songs.map((song, id) => `**${id + 1}**. ${song.name} - \`${song.formattedDuration}\``
).slice(0, 10).join("\n"));
}
if ([`3d`, `bassboost`, `echo`, `karaoke`, `nightcore`, `vaporwave`].includes(command)) {
let filter = distube.setFilter(message, command);
message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Added filter: **
> ` + (filter || "off"));
}
}
);
// DisTube event listeners, more in the documentation page
distube
.on("playSong", (message, queue, song) => message.channel.send(
`**<:miraimusic:828978156512739378> ⁓ Playing now:**
> ${song.name}\` - \`${song.formattedDuration}\``
))
.on("addSong", (message, queue, song) => message.channel.send(
`**<:miraimusic:828978156512739378> ⁓ Added: **
> ${song.name} - \`${song.formattedDuration}\` **to the queue.**`
))
.on("playList", (message, queue, playlist, song) => message.channel.send(
`**<:miraimusic:828978156512739378> ⁓ Playing now:**
>` `${song.name}\` - \`${song.formattedDuration}\``
))
.on("addList", (message, queue, playlist) => message.channel.send(
`**<:miraimusic:828978156512739378> ⁓ Added: **
> ${song.name} - \`${song.formattedDuration}\` **to the queue.**`
))
// DisTubeOptions.searchSongs = true
.on("searchResult", (message, result) => {
let i = 0;
message.channel.send(`**Choose an option from below**\n${result.map(song => `**${++i}**. ${song.name} - \`${song.formattedDuration}\``).join("\n")}\n*Enter anything else or wait 60 seconds to cancel*`);
})
// DisTubeOptions.searchSongs = true
.on("searchCancel", (message) => message.channel.send(`Searching canceled`))
.on("error", (message, e) => {
console.error(e)
message.channel.send("An error encountered: " + e);
}
错误:
music.js(64, 34): The parser expected to find a '}' to match the '{' token here. music.js(5, 51): The parser expected to find a '}' to match the '{' token here. music.js(4, 22): The parser expected to find a '}' to match the '{' token here
我不知道是什么问题,所以是的,请帮助我!
解决方案
关闭“)”和“}”有一些问题。尝试保持您的代码格式正确并具有良好的标识,以便更容易发现这些问题。
这是正确的代码:
const Discord = require('discord.js')
DisTube = require('distube')
module.exports = {
execute: async (client, message, args) => {
const distube = new DisTube(client, { searchSongs: false, emitNewSongOnly: false });
client.on("message", async (message) => {
if (message.author.bot) return;
if (!message.content.startsWith(config.prefix)) return;
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const command = args.shift();
if (command == "play")
distube.play(message, args.join(" "));
if (command == "stop") {
distube.stop(message);
message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Stopped the music!**
> If you want me to rejoin, type m!play.`);
}
if (command == "queue") {
let queue = distube.getQueue(message);
message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Current queue**:
> ` + queue.songs.map((song, id) => `**${id + 1}**. ${song.name} - \`${song.formattedDuration}\``
).slice(0, 10).join("\n"));
}
if ([`3d`, `bassboost`, `echo`, `karaoke`, `nightcore`, `vaporwave`].includes(command)) {
let filter = distube.setFilter(message, command);
message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Added filter: **
> ` + (filter || "off"));
}
});
// DisTube event listeners, more in the documentation page
distube
.on("playSong", (message, queue, song) => message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Playing now:**> ${song.name}\` - \`${song.formattedDuration}\``))
.on("addSong", (message, queue, song) => message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Added: **> ${song.name} - \`${song.formattedDuration}\` **to the queue.**`))
.on("playList", (message, queue, playlist, song) => message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Playing now:**>` `${song.name}\` - \`${song.formattedDuration}\``))
.on("addList", (message, queue, playlist) => message.channel.send(`**<:miraimusic:828978156512739378> ⁓ Added: **> ${song.name} - \`${song.formattedDuration}\` **to the queue.**`))
// DisTubeOptions.searchSongs = true
.on("searchResult", (message, result) => {
let i = 0;
message.channel.send(`**Choose an option from below**\n${result.map(song => `**${++i}**. ${song.name} - \`${song.formattedDuration}\``).join("\n")}\n*Enter anything else or wait 60 seconds to cancel*`);
})
// DisTubeOptions.searchSongs = true
.on("searchCancel", (message) => message.channel.send(`Searching canceled`))
.on("error", (message, e) => {
console.error(e)
message.channel.send("An error encountered: " + e);
})
}
}
推荐阅读
- ios - 我如何从函数中调用检查值
- spring-webflux - 使用 RouterFunction 处理 WebFlux 中的错误
- android - 匕首自定义范围,如何?
- tree - Angular Material 6.0.1:如何扩展 Angular mat-tree 中的任何节点?
- git - 解决git中的合并冲突更改并提交后,它使用另一个用户作为作者
- javascript - 如何将数组放入数组
- c++ - 单个 cpp 文件的 Visual Studio 编译选项灰显
- java - 如何从 ProcessInstance 中检索执行
- python - 带有大量查询的 Django 内存泄漏
- reactjs - 未使用的表达式,期望赋值或函数调用