Javascript Discord.js-有没有办法设置单击事件处理程序?
我有一个机器人,它用命令Javascript Discord.js-有没有办法设置单击事件处理程序?,javascript,ecmascript-6,discord.js,Javascript,Ecmascript 6,Discord.js,我有一个机器人,它用命令列出一堆音频剪辑!音频 exports.run = (client, message, args) => { const audioFolder = './audio/'; const fs = require('fs'); fs.readdir(audioFolder, (err, files) => { let filelist = ''; files.length && files.
列出一堆音频剪辑!音频
exports.run = (client, message, args) => {
const audioFolder = './audio/';
const fs = require('fs');
fs.readdir(audioFolder, (err, files) => {
let filelist = '';
files.length && files.forEach(file => {
const audioFile = file.replace('.mp3', '');
filelist += `${audioFile}\n`;
});
message.channel.send(`${filelist}`);
});
}
另一个命令是!播放文件名
exports.run = (client, message, args) => {
const audioFolder = './audio/';
const fs = require('fs');
const fileName = args.join(' ');
if( !fileName ) {
message.channel.send(`Please request a filename. Example: !play filename`);
return;
}
fs.readdir(audioFolder, (err, files) => {
if( !files.includes(`${fileName}.mp3`) ) {
message.channel.send(`File '${fileName}' does not exist, use !audio to see the full list of audio files.`);
return;
}
const voiceChannel = message.member.voice.channel;
if( !voiceChannel ) {
message.channel.send(`You must be in a voice channel to use this command.`);
return;
}
voiceChannel.join()
.then(connection => {
const dispatcher = connection.play(`./audio/${fileName}.mp3`);
dispatcher.on('finish', () => {
voiceChannel.leave();
});
})
.catch(console.error);
});
}
我想要的是不必使用!播放
命令。当使用时音频文件列表出现时!音频
我想让用户点击单个文件,它会根据点击的文件运行与播放命令类似的功能
我在discordjs中找不到任何有关单击事件的信息
有什么想法吗?我认为这是不可能的(如果我正确理解了你的问题),我认为一个可能的创造性解决方案是使用反应。除此之外,您可能还需要使用web服务器和链接。