Exzotic
MIA🎶 Moonlink.js - Imagine a Music Application
•Created by rare-sapphire on 8/8/2023 in #help
`<Player>.connect()` doesnt connect
Just trying to setup moonlink in my bot, made a quick command but it seems
player.connect(...)
doesn't connect or throw any errors?
Code:
import { ApplicationCommandOptionType, type CommandInteraction, type GuildMember } from "discord.js";
import { Discord, Slash, SlashOption } from "discordx";
import { SurgeClient } from "../structures/SurgeClient.js";
@Discord()
export class Play {
@Slash({ description: "play" })
async play(@SlashOption({
description: "Song name / url",
name: "query",
required: true,
type: ApplicationCommandOptionType.String
}) query: string, interaction: CommandInteraction, client: SurgeClient) {
if (!interaction.guild) return;
const guildMember = interaction.member as GuildMember;
if (!guildMember.voice.channel) return interaction.reply({
content: `You are not on a voice channel`,
ephemeral: true
})
const player = client.moonlink.players.create({
guildId: interaction.guild.id,
voiceChannel: guildMember.voice.channel.id,
textChannel: interaction.channel!.id
})
if (!player.connected) player.connect({
setDeaf: true,
setMute: false
})
const queryResult = await client.moonlink.search(query)
if (queryResult.loadType == "error" || queryResult.loadType == "empty") {
return interaction.reply({
content: `Failed to find / load song from query: ${query}`
})
}
if (queryResult.loadType == "search") {
return interaction.reply("Not Implemented Yet.")
}
for (const track of queryResult.tracks) {
player.queue.add(track)
}
if (!player.playing) player.play()
interaction.reply("Playing")
}
}
import { ApplicationCommandOptionType, type CommandInteraction, type GuildMember } from "discord.js";
import { Discord, Slash, SlashOption } from "discordx";
import { SurgeClient } from "../structures/SurgeClient.js";
@Discord()
export class Play {
@Slash({ description: "play" })
async play(@SlashOption({
description: "Song name / url",
name: "query",
required: true,
type: ApplicationCommandOptionType.String
}) query: string, interaction: CommandInteraction, client: SurgeClient) {
if (!interaction.guild) return;
const guildMember = interaction.member as GuildMember;
if (!guildMember.voice.channel) return interaction.reply({
content: `You are not on a voice channel`,
ephemeral: true
})
const player = client.moonlink.players.create({
guildId: interaction.guild.id,
voiceChannel: guildMember.voice.channel.id,
textChannel: interaction.channel!.id
})
if (!player.connected) player.connect({
setDeaf: true,
setMute: false
})
const queryResult = await client.moonlink.search(query)
if (queryResult.loadType == "error" || queryResult.loadType == "empty") {
return interaction.reply({
content: `Failed to find / load song from query: ${query}`
})
}
if (queryResult.loadType == "search") {
return interaction.reply("Not Implemented Yet.")
}
for (const track of queryResult.tracks) {
player.queue.add(track)
}
if (!player.playing) player.play()
interaction.reply("Playing")
}
}
26 replies