Files
Discord-Audio-Stream/src/Methods/StartMethod.ts
T
2024-11-13 18:25:29 +01:00

51 lines
1.5 KiB
TypeScript

const { joinVoiceChannel, createAudioPlayer, createAudioResource } = require("@discordjs/voice");
const { join } = require("node:path");
import {startMethodOptions} from "../Utils/Options/StartMethodOptions";
export function startAudio({
VoiceChannelID,
GuildID,
VoiceAdapter,
ResourceType,
Resource
}: startMethodOptions) {
try {
const AudioPlayer = createAudioPlayer();
function streamFile(file: string) {
let audioResource = createAudioResource(join(__dirname, file), { inlineVolume: true });
AudioPlayer.play(audioResource);
joinVoiceChannel({
channelId: VoiceChannelID,
guildId: GuildID,
adapterCreator: VoiceAdapter
}).subscribe(AudioPlayer);
}
function streamLink(link: string) {
let audioResource = createAudioResource(link);
AudioPlayer.play(audioResource);
joinVoiceChannel({
channelId: VoiceChannelID,
guildId: GuildID,
adapterCreator: VoiceAdapter
}).subscribe(AudioPlayer)
}
switch (ResourceType) {
case "Link":
streamLink(Resource);
break;
case "File":
streamFile(Resource);
break;
default:
throw new TypeError("Audio type isn't valid.");
}
} catch (err) {
console.error(err);
}
}