// index.js
const { getTranslations } = require('./utils/langUtil');
const { LavalinkAPIClient } = require('lavalink-api-client');
const { lava_host, lava_pass, userID } = require('./config.json');
const { Client, GatewayIntentBits, GatewayDispatchEvents } = require('discord.js');
const { Node } = require('lavaclient');
const client = new Client({
intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildVoiceStates ],
});
const lavaclient = new Node({
info: {
auth: lava_pass,
host: lava_host,
port: 2333
},
rest: {
},
ws: {
reconnecting: {
tries: Infinity
},
},
discord: {
sendGatewayCommand: (id, data) => client.guilds.cache.get(id)?.shard?.send(data),
userId: userID
},
});
module.exports = lavaclient;
client.ws.on(GatewayDispatchEvents.VoiceStateUpdate, (u) => lavaclient.players.handleVoiceUpdate(u));
client.ws.on(GatewayDispatchEvents.VoiceServerUpdate, (u) => lavaclient.players.handleVoiceUpdate(u));
// play.js
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
const { getTranslations } = require('./utils/langUtil');
const { QueueTrackMessageIdsMap } = require('./utils/sharedData');
let query = interaction.options.get('query').value;
const player = lavaclient.players.resolve(interaction.guildId);
const results = await lavaclient.api.loadTracks(`ytsearch:${query}`);
if(results.loadType === "search") {
const track = results.data[0];
const tracks = [track];
if (!player) {
const player = lavaclient.createPlayer(interaction.guildId);
player.channel = interaction.channel;
console.log(interaction.channel.id);
await player.voice.connect(voiceChannel.id);
}
console.log(`Track: ${track.info.uri} / Track.name: ${track.info.title}`);
if (!QueueTrackMessageIdsMap.has(interaction.guildId)) {
QueueTrackMessageIdsMap.set(interaction.guildId, []);
}
QueueTrackMessageIdsMap.get(interaction.guildId).push(queueMessage.id);
player.queue.add(tracks, {
requester: interaction.user.id
});
await player.setVolume(50);
await player.queue.start();
console.log('Playing track');
player.queue.on('trackStart', async (queue, { title, uri, length, isSeekable, requester }) => {
// Send a message to user - bericht naar gebruiker
});
}
// index.js
const { getTranslations } = require('./utils/langUtil');
const { LavalinkAPIClient } = require('lavalink-api-client');
const { lava_host, lava_pass, userID } = require('./config.json');
const { Client, GatewayIntentBits, GatewayDispatchEvents } = require('discord.js');
const { Node } = require('lavaclient');
const client = new Client({
intents: [ GatewayIntentBits.Guilds, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildMessages, GatewayIntentBits.GuildVoiceStates ],
});
const lavaclient = new Node({
info: {
auth: lava_pass,
host: lava_host,
port: 2333
},
rest: {
},
ws: {
reconnecting: {
tries: Infinity
},
},
discord: {
sendGatewayCommand: (id, data) => client.guilds.cache.get(id)?.shard?.send(data),
userId: userID
},
});
module.exports = lavaclient;
client.ws.on(GatewayDispatchEvents.VoiceStateUpdate, (u) => lavaclient.players.handleVoiceUpdate(u));
client.ws.on(GatewayDispatchEvents.VoiceServerUpdate, (u) => lavaclient.players.handleVoiceUpdate(u));
// play.js
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
const { getTranslations } = require('./utils/langUtil');
const { QueueTrackMessageIdsMap } = require('./utils/sharedData');
let query = interaction.options.get('query').value;
const player = lavaclient.players.resolve(interaction.guildId);
const results = await lavaclient.api.loadTracks(`ytsearch:${query}`);
if(results.loadType === "search") {
const track = results.data[0];
const tracks = [track];
if (!player) {
const player = lavaclient.createPlayer(interaction.guildId);
player.channel = interaction.channel;
console.log(interaction.channel.id);
await player.voice.connect(voiceChannel.id);
}
console.log(`Track: ${track.info.uri} / Track.name: ${track.info.title}`);
if (!QueueTrackMessageIdsMap.has(interaction.guildId)) {
QueueTrackMessageIdsMap.set(interaction.guildId, []);
}
QueueTrackMessageIdsMap.get(interaction.guildId).push(queueMessage.id);
player.queue.add(tracks, {
requester: interaction.user.id
});
await player.setVolume(50);
await player.queue.start();
console.log('Playing track');
player.queue.on('trackStart', async (queue, { title, uri, length, isSeekable, requester }) => {
// Send a message to user - bericht naar gebruiker
});
}