Exzotic
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