Pequenos problemas

Bom, eu queria usar o evento EndTrack para desconectar o bot do chat de voz após acabar todas as musicas, sabe como é, deixar ele sozinho la pela eternidade nao é muito legal, ai tentei usar o Player.Disconnect e ate o Player.Destroy, porem retornou erro, ai pensei q podia ter feito errado no evento , então decidi testar em comando, ja que consegui fazer comandos tipo o skip e o stop, porem também não funcionou. Provavelmente isso esta acontecendo por alguma bobagem minha, então ja peço desculpas pelo transtorno.
61 Replies
1Lucas1.apk
1Lucas1.apk3y ago
Só que não é bom você usar o track end para destruir o player Me manda o eventi Pra eu analisar 😌
continuing-cyan
continuing-cyanOP3y ago
client.moon.on('trackEnd', async (player) => { client.channels.cache.get(player.textChannel).send('a faixa acabou'); player.destroy(); }); de primeira eu tentei assim pq eu vi que o player tava sendo usado na linha que manda a mensagem da faixa acabar
1Lucas1.apk
1Lucas1.apk3y ago
Qual erro que apareceu?
continuing-cyan
continuing-cyanOP3y ago
C:\Users\T-Gamer\Desktop\discord-bot\index.js:49 player.destroy(); ^ TypeError: player.destroy is not a function at MoonlinkManager.<anonymous> (C:\Users\T-Gamer\Desktop\discord-bot\index.js:49:9) at MoonlinkManager.emit (node:events:513:28) at WebSocket.<anonymous> (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\moonlink.js@Moonlink\MoonlinkNodes.js:135:32) at WebSocket.emit (node:events:513:28) at Receiver.receiverOnMessage (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\websocket.js:1178:20) at Receiver.emit (node:events:513:28) at Receiver.dataMessage (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:528:14) at Receiver.getData (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:446:17) at Receiver.startLoop (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:148:22) at Receiver._write (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:83:10)
1Lucas1.apk
1Lucas1.apk3y ago
?play all i want
Blobit - Moonlink.js
added track in queue Olivia Rodrigo - All I Want (Official Video) is playing now
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.author.id).destroy()
Blobit - Moonlink.js
TypeError: Cannot read properties of undefined (reading 'guildId')
TypeError: Cannot read properties of undefined (reading 'guildId')
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.guild.id).destroy()
Blobit - Moonlink.js
true
true
1Lucas1.apk
1Lucas1.apk3y ago
@SuperPlayerBots você atualizou moonlink.js?
continuing-cyan
continuing-cyanOP3y ago
ue tinha atualizado naquela hora q voce tinha falado vou tentar denovo é dei agora npm update moonlink.js pra conferir mas ainda da erro C:\Users\T-Gamer\Desktop\discord-bot\index.js:49 player.destroy(); ^ TypeError: player.destroy is not a function at MoonlinkManager.<anonymous> (C:\Users\T-Gamer\Desktop\discord-bot\index.js:49:9) at MoonlinkManager.emit (node:events:513:28) at WebSocket.<anonymous> (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\moonlink.js@Moonlink\MoonlinkNodes.js:135:32)
at WebSocket.emit (node:events:513:28) at Receiver.receiverOnMessage (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\websocket.js:1178:20) at Receiver.emit (node:events:513:28) at Receiver.dataMessage (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:528:14) at Receiver.getData (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:446:17) at Receiver.startLoop (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:148:22) at Receiver._write (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:83:10)
1Lucas1.apk
1Lucas1.apk3y ago
Pera aí rapidinho Deixa me lembrar dos parâmetros do trackEnd
continuing-cyan
continuing-cyanOP3y ago
tranquilo
1Lucas1.apk
1Lucas1.apk3y ago
Tenta
client.moon.on('trackEnd', async (player, track) => { client.channels.cache.get(player.textChannel).send('a faixa acabou');
console.log(player)
player.destroy();
});
client.moon.on('trackEnd', async (player, track) => { client.channels.cache.get(player.textChannel).send('a faixa acabou');
console.log(player)
player.destroy();
});
@SuperPlayerBots
continuing-cyan
continuing-cyanOP3y ago
ok [ Moonlink.js ]: connection process started [ Moonlink.js ]: a node is being configured lavalink.joshsevero.dev:80 is online, and has also been connected [ @Moonlink.js ]: sending voiceUpdate to lavalink (992231462101323808) [ Moonlink.Js ]: MoonLink just sent a request to lavalink [ MoonLink.Js ]: searching songs [ Moonlink.Js ]: MoonLink just sent a request to lavalink 997410601288605736 997410601288605736 { guildId: '992231462101323808', voiceChannel: '997410601288605736', textChannel: '1067967254337179678', playing: true, paused: false, loop: false, connected: true } C:\Users\T-Gamer\Desktop\discord-bot\index.js:50 player.destroy(); ^ TypeError: player.destroy is not a function at MoonlinkManager.<anonymous> (C:\Users\T-Gamer\Desktop\discord-bot\index.js:50:9) at MoonlinkManager.emit (node:events:513:28) at WebSocket.<anonymous> (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\moonlink.js@Moonlink\MoonlinkNodes.js:135:32)
at WebSocket.emit (node:events:513:28) at Receiver.receiverOnMessage (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\websocket.js:1178:20) at Receiver.emit (node:events:513:28) at Receiver.dataMessage (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:528:14) at Receiver.getData (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:446:17) at Receiver.startLoop (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:148:22) at Receiver._write (C:\Users\T-Gamer\Desktop\discord-bot\node_modules\ws\lib\receiver.js:83:10) Node.js v19.2.0
1Lucas1.apk
1Lucas1.apk3y ago
Ae, pelo que eu me lembro player retorna os status do player Então faz assim client.moon.on('trackEnd', async (player, track) => { client.channels.cache.get(player.textChannel).send('a faixa acabou'); client.moon.players.get(player.guildId).destroy(); }); @SuperPlayerBots Não sei se tu tá online kskssksk (nunca sei na verdade)
continuing-cyan
continuing-cyanOP3y ago
kkk to aqui ainda ta falando que o track nunca foi usado apago ele dentro do parenteses?
1Lucas1.apk
1Lucas1.apk3y ago
Track pega também kkks
client.moon.on('trackEnd', async (player, track) => {
client.channels.cache.get(player.textChannel).send(`${track.title} acabou de ser tocado`);
client.moon.players.get(player.guildId).destroy();
});
client.moon.on('trackEnd', async (player, track) => {
client.channels.cache.get(player.textChannel).send(`${track.title} acabou de ser tocado`);
client.moon.players.get(player.guildId).destroy();
});
continuing-cyan
continuing-cyanOP3y ago
saquei kkk parece q agr funfou deixa eu confirmar aeeeee ta funfando 100% mano outro problema q to tendo é q nao descobri um jeito bom ainda de como verificar se a pessoa ta na mesma call que o bot ta sabe algum jeito bom?
1Lucas1.apk
1Lucas1.apk3y ago
Pode usar evento ou usar em no comando de play mesmo if(interaction.guild.members.me.voice.channelId !== interaction.member.voice.channelId) { interaction.reply('você está em um canal de voz diferente') } Atá Isso é quando estiver em um canal de voz diferente e estiver tocando Ele vai responder
continuing-cyan
continuing-cyanOP3y ago
è minha ideia é de fazer um if pra avisar ou ate barrar os comandos se o bot tiver tocando e a pessoa tiver em canal diferente
1Lucas1.apk
1Lucas1.apk3y ago
Assem Mais exato 😏👌 Faz assim então
if(player && player.voiceChannel !== interaction.member.voice.channeId && player.playing) return interaction.reply('estou tocando em um canal de voz, conecte-se a ele e use comando novamente, e espere sua musica')
if(interaction.guild.members.me.voice.channelId !== interaction.member.voice.channelId) return interaction.reply(' você não está no mesmo canal que eu estou')
if(player && player.voiceChannel !== interaction.member.voice.channeId && player.playing) return interaction.reply('estou tocando em um canal de voz, conecte-se a ele e use comando novamente, e espere sua musica')
if(interaction.guild.members.me.voice.channelId !== interaction.member.voice.channelId) return interaction.reply(' você não está no mesmo canal que eu estou')
@SuperPlayerBots Pode fazer assem Primeiro if e pra quando player existir E se o usuário for diferente do player E se tiver tocando nesse player Ele vai avisar Que tem um player existente e ele está tocando agora O segundo E quando bot é diferente do member Se ele estiver em um canal diferente ele vai avisar
continuing-cyan
continuing-cyanOP3y ago
blz, vou ter q dirigir agr, mas hj mais tarde testo
1Lucas1.apk
1Lucas1.apk3y ago
Tenha uma ótima noite
continuing-cyan
continuing-cyanOP3y ago
tenha uma otima noite voce tambem não consegui achar no site do moonlink se tem algum evento que detecta quando o bot é desconectado da call
MEE6
MEE63y ago
GG @SuperPlayerBots, you just advanced to level 6!
continuing-cyan
continuing-cyanOP3y ago
existe algum? a esqueci de agradecer isso funcionou, ajudou bastante , vlw tipo se alguem deconecta o bot sem querer, ele nao se da um alto player.destroy();, oque gera um problema se o bot tiver uma trava nos comandos para que se use somente se o bot tiver na call, porque ai ele nao tem como voltar pra call e nem como dar um stop para acabar a queue
1Lucas1.apk
1Lucas1.apk3y ago
Pra isso você pode usar eventos do próprio discord Vou fazer aqui pra você Depois implemento um evento na moonlink
client.on('voiceStateUpdate', async(oldState, newState) => {
if(client.moon.players.has(oldState.guild.id) && !oldState.guild.members.me.voice.channel) client.moon.players.get(oldState.guild.id).destroy()
})
client.on('voiceStateUpdate', async(oldState, newState) => {
if(client.moon.players.has(oldState.guild.id) && !oldState.guild.members.me.voice.channel) client.moon.players.get(oldState.guild.id).destroy()
})
continuing-cyan
continuing-cyanOP3y ago
deu erro por causa do evento evento de stop ser ativado depois q esse evento novo destroy o play
1Lucas1.apk
1Lucas1.apk3y ago
Não entendi ksk
continuing-cyan
continuing-cyanOP3y ago
pra resolver troque nele de destroy(), pra stop(), sei la pode ser util pros procimos perdidos q tao começando que nem eu kkk parece que ao desconectar o bot por ele dar um destroy ele ativa o evento de endtrack q tambem ja tava com um destroy e como nao tem mais play criado pra destruir da erro
1Lucas1.apk
1Lucas1.apk3y ago
Por isso que eu disse ontem que não é bom usar destroy no trackend Porque se você destruir A queue Não vai funcionar
continuing-cyan
continuing-cyanOP3y ago
sim , tem desvantagem mas tambem vantagem mas so de trocar pra stop aqui o erro que falei é resolvido
1Lucas1.apk
1Lucas1.apk3y ago
Internamente eu posso fazer uma solução mais prática, como usar utils pra não executar o trackEnd, superficial tem que ter maior cuidado
continuing-cyan
continuing-cyanOP3y ago
entendo agora outro problema que to tendo é em acessar a array pra criar um /queue, tem como eu acessar ela usando o Queue.All?
1Lucas1.apk
1Lucas1.apk3y ago
tem sim
continuing-cyan
continuing-cyanOP3y ago
mas com eu faria pra pegar por exemplo com ele o tracks[2] tipo queue.all(tracks[2].title)?
1Lucas1.apk
1Lucas1.apk3y ago
Deixa me lembrar Que faz um tempinho que não tou usando os bots ?play all i want
Blobit - Moonlink.js
added track in queue Olivia Rodrigo - All I Want (Official Video) is playing now
1Lucas1.apk
1Lucas1.apk3y ago
?play happy
Blobit - Moonlink.js
added track in queue
1Lucas1.apk
1Lucas1.apk3y ago
?play lovely
Blobit - Moonlink.js
added track in queue
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.guild.id).queue.all
Blobit - Moonlink.js
[
MoonTrack {
position: 0,
title: 'Pharrell Williams - Happy (Video)',
author: 'Pharrell Williams',
url: 'https://www.youtube.com/watch?v=ZbZSe6N_BXs',
identifier: 'ZbZSe6N_BXs',
duration: 241000,
isSeekable: true,
track: 'QAAAjAIAIVBoYXJyZWxsIFdpbGxpYW1zIC0gSGFwcHkgKFZpZGVvKQARUGhhcnJlbGwgV2lsbGlhbXMAAAAAAAOtaAALWmJaU2U2Tl9CWHMAAQAraHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1aYlpTZTZOX0JYcwAHeW91dHViZQAAAAAAAAAA',
source: 'youtube',
requester: undefined
},
MoonTrack {
position: 0,
title: 'Billie Eilish, Khalid - lovely',
author: 'Billie Eilish',
url: 'https://www.youtube.com/watch?v=V1Pl8CzNzCw',
identifier: 'V1Pl8CzNzCw',
duration: 201000,
isSeekable: true,
track: 'QAAAhQIAHkJpbGxpZSBFaWxpc2gsIEtoYWxpZCAtIGxvdmVseQANQmlsbGllIEVpbGlzaAAAAAAAAxEoAAtWMVBsOEN6TnpDdwABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVYxUGw4Q3pOekN3AAd5b3V0dWJlAAAAAAAAAAA=',
source: 'youtube',
requester: undefined
}
]
[
MoonTrack {
position: 0,
title: 'Pharrell Williams - Happy (Video)',
author: 'Pharrell Williams',
url: 'https://www.youtube.com/watch?v=ZbZSe6N_BXs',
identifier: 'ZbZSe6N_BXs',
duration: 241000,
isSeekable: true,
track: 'QAAAjAIAIVBoYXJyZWxsIFdpbGxpYW1zIC0gSGFwcHkgKFZpZGVvKQARUGhhcnJlbGwgV2lsbGlhbXMAAAAAAAOtaAALWmJaU2U2Tl9CWHMAAQAraHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1aYlpTZTZOX0JYcwAHeW91dHViZQAAAAAAAAAA',
source: 'youtube',
requester: undefined
},
MoonTrack {
position: 0,
title: 'Billie Eilish, Khalid - lovely',
author: 'Billie Eilish',
url: 'https://www.youtube.com/watch?v=V1Pl8CzNzCw',
identifier: 'V1Pl8CzNzCw',
duration: 201000,
isSeekable: true,
track: 'QAAAhQIAHkJpbGxpZSBFaWxpc2gsIEtoYWxpZCAtIGxvdmVseQANQmlsbGllIEVpbGlzaAAAAAAAAxEoAAtWMVBsOEN6TnpDdwABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVYxUGw4Q3pOekN3AAd5b3V0dWJlAAAAAAAAAAA=',
source: 'youtube',
requester: undefined
}
]
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.guild.id).queue.all?.map(a => a.title)
Blobit - Moonlink.js
[
'Pharrell Williams - Happy (Video)',
'Billie Eilish, Khalid - lovely'
]
[
'Pharrell Williams - Happy (Video)',
'Billie Eilish, Khalid - lovely'
]
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.guild.id).queue.all?.map(a => a.title[1])
Blobit - Moonlink.js
[ 'h', 'i' ]
[ 'h', 'i' ]
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.guild.id).queue.all?.map(a => a[0].title)
Blobit - Moonlink.js
TypeError: Cannot read properties of undefined (reading 'title')
TypeError: Cannot read properties of undefined (reading 'title')
1Lucas1.apk
1Lucas1.apk3y ago
?eval client.moon.players.get(message.guild.id).queue.all?.map(a => a.title)[1]
Blobit - Moonlink.js
'Billie Eilish, Khalid - lovely'
'Billie Eilish, Khalid - lovely'
1Lucas1.apk
1Lucas1.apk3y ago
Me esqueci as vezes ?eval client.moon.players.get(message.guild.id).queue.all[1]
Blobit - Moonlink.js
MoonTrack {
position: 0,
title: 'Billie Eilish, Khalid - lovely',
author: 'Billie Eilish',
url: 'https://www.youtube.com/watch?v=V1Pl8CzNzCw',
identifier: 'V1Pl8CzNzCw',
duration: 201000,
isSeekable: true,
track: 'QAAAhQIAHkJpbGxpZSBFaWxpc2gsIEtoYWxpZCAtIGxvdmVseQANQmlsbGllIEVpbGlzaAAAAAAAAxEoAAtWMVBsOEN6TnpDdwABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVYxUGw4Q3pOekN3AAd5b3V0dWJlAAAAAAAAAAA=',
source: 'youtube',
requester: undefined
}
MoonTrack {
position: 0,
title: 'Billie Eilish, Khalid - lovely',
author: 'Billie Eilish',
url: 'https://www.youtube.com/watch?v=V1Pl8CzNzCw',
identifier: 'V1Pl8CzNzCw',
duration: 201000,
isSeekable: true,
track: 'QAAAhQIAHkJpbGxpZSBFaWxpc2gsIEtoYWxpZCAtIGxvdmVseQANQmlsbGllIEVpbGlzaAAAAAAAAxEoAAtWMVBsOEN6TnpDdwABACtodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVYxUGw4Q3pOekN3AAd5b3V0dWJlAAAAAAAAAAA=',
source: 'youtube',
requester: undefined
}
1Lucas1.apk
1Lucas1.apk3y ago
@SuperPlayerBots
continuing-cyan
continuing-cyanOP3y ago
oi
1Lucas1.apk
1Lucas1.apk3y ago
Queue.all retorna uma array você pode manipular as informações
continuing-cyan
continuing-cyanOP3y ago
hum calma ae deu vlw
1Lucas1.apk
1Lucas1.apk3y ago
Tenha um ótimo dia 🙂

Did you find this page helpful?