-
Notifications
You must be signed in to change notification settings - Fork 0
/
voice.js
32 lines (28 loc) · 954 Bytes
/
voice.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const { createAudioResource, StreamType, entersState, AudioPlayerStatus, VoiceConnectionStatus, joinVoiceChannel } = require("@discordjs/voice")
const { Collection } = require("discord.js")
const { createDiscordJSAdapter } = require("./adapter")
module.exports = {
voiceConnections: new Collection(),
voicePlayers: new Collection(),
playFile: (file, player) => {
const resource = createAudioResource(file, {
inputType: StreamType.Arbitrary,
})
player.play(resource)
return entersState(player, AudioPlayerStatus.Playing, 5e3)
},
connectToChannel: async (channel) => {
const connection = joinVoiceChannel({
channelId: channel.id,
guildId: channel.guild.id,
adapterCreator: createDiscordJSAdapter(channel),
})
try {
await entersState(connection, VoiceConnectionStatus.Ready, 30e3)
return connection
} catch (error) {
connection.destroy()
throw error
}
}
}