mirror of
https://github.com/kirameki-cafe/Yumi.git
synced 2026-09-13 10:49:20 +00:00
🐛 fix: Music skip and loop messages
This commit is contained in:
+1
-1
Submodule NekoMelody updated: 3fbaf7a7b4...738a9b710b
@@ -224,7 +224,7 @@ export async function joinVoiceChannelProcedure(
|
|||||||
|
|
||||||
if (!instance) return;
|
if (!instance) return;
|
||||||
|
|
||||||
let previousTrack: ValidTracks | undefined;
|
let previousTrack: AudioInformation | null;
|
||||||
let isLoopMessageSent = false;
|
let isLoopMessageSent = false;
|
||||||
|
|
||||||
// Register Event Listeners
|
// Register Event Listeners
|
||||||
@@ -233,10 +233,10 @@ export async function joinVoiceChannelProcedure(
|
|||||||
if (!current) return;
|
if (!current) return;
|
||||||
|
|
||||||
const locale = await Locale.getGuildLocale(guild.id);
|
const locale = await Locale.getGuildLocale(guild.id);
|
||||||
previousTrack = event.instance.getPreviousTrack();
|
previousTrack = event.instance.nekoPlayer.getPreviousAudioInformation();
|
||||||
|
|
||||||
//if (current !== previousTrack) isLoopMessageSent = false;
|
if (current !== previousTrack) isLoopMessageSent = false;
|
||||||
//else if (current === previousTrack && isLoopMessageSent) return;
|
else if (current === previousTrack && isLoopMessageSent) return;
|
||||||
|
|
||||||
const row = new ActionRowBuilder<ButtonBuilder>();
|
const row = new ActionRowBuilder<ButtonBuilder>();
|
||||||
// if (event.instance.queue.track[0] instanceof SpotifyTrack)
|
// if (event.instance.queue.track[0] instanceof SpotifyTrack)
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ export default class Skip extends DiscordModule {
|
|||||||
embeds: [EMBEDS.NO_MUSIC_PLAYING(data, locale)]
|
embeds: [EMBEDS.NO_MUSIC_PLAYING(data, locale)]
|
||||||
});
|
});
|
||||||
|
|
||||||
instance.skipTrack();
|
instance.skip();
|
||||||
|
|
||||||
if (!instance.nekoPlayer.getCurrentAudioInformation())
|
if (!instance.nekoPlayer.getCurrentAudioInformation())
|
||||||
return await sendHybridInteractionMessageResponse(data, {
|
return await sendHybridInteractionMessageResponse(data, {
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ export class DiscordMusicPlayerInstance {
|
|||||||
public textChannel?: BaseGuildTextChannel | BaseGuildVoiceChannel;
|
public textChannel?: BaseGuildTextChannel | BaseGuildVoiceChannel;
|
||||||
public voiceChannel: VoiceChannel | StageChannel;
|
public voiceChannel: VoiceChannel | StageChannel;
|
||||||
public voiceConnection?: VoiceConnection;
|
public voiceConnection?: VoiceConnection;
|
||||||
public previousTrack?: ValidTracks;
|
public previousTrack?: AudioInformation;
|
||||||
|
|
||||||
public paused: boolean = false;
|
public paused: boolean = false;
|
||||||
|
|
||||||
@@ -209,38 +209,6 @@ export class DiscordMusicPlayerInstance {
|
|||||||
this.voiceChannel = voiceChannel;
|
this.voiceChannel = voiceChannel;
|
||||||
this.events = new EventEmitter();
|
this.events = new EventEmitter();
|
||||||
|
|
||||||
// this.player.on(AudioPlayerStatus.Idle, async (oldStage, newStage) => {
|
|
||||||
// //The player stopped
|
|
||||||
// if (newStage.status === AudioPlayerStatus.Idle && oldStage.status !== AudioPlayerStatus.Idle) {
|
|
||||||
// // Loop mode is set to current song
|
|
||||||
// if (this.loopMode === DiscordMusicPlayerLoopMode.Current) {
|
|
||||||
// if (this.queue.track.length !== 0) {
|
|
||||||
// this.previousTrack = this.queue.track[0];
|
|
||||||
// this.playTrack(this.queue.track[0]);
|
|
||||||
// }
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // There are more songs in the queue, remove finished song and play the next one
|
|
||||||
// if (this.queue.track.length !== 0) {
|
|
||||||
// let previousTrack = this.queue.track.shift();
|
|
||||||
// if (previousTrack) this.previousTrack = previousTrack;
|
|
||||||
|
|
||||||
// if (this.queue.track.length > 0) {
|
|
||||||
// this.playTrack(this.queue.track[0]);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
|
|
||||||
// this.player.on(AudioPlayerStatus.Playing, (oldState: any, newState: any) => {
|
|
||||||
// this.events.emit('playing', new PlayerPlayingEvent(this));
|
|
||||||
// });
|
|
||||||
|
|
||||||
// this.player.on('error', (error: Error) => {
|
|
||||||
// this.events.emit('error', new PlayerErrorEvent(this, error));
|
|
||||||
// });
|
|
||||||
|
|
||||||
this.nekoPlayer.on('play', (information: AudioInformation) => {
|
this.nekoPlayer.on('play', (information: AudioInformation) => {
|
||||||
if (!this.nekoPlayer.stream) throw new Error('No input stream');
|
if (!this.nekoPlayer.stream) throw new Error('No input stream');
|
||||||
|
|
||||||
@@ -329,17 +297,14 @@ export class DiscordMusicPlayerInstance {
|
|||||||
this.paused = false;
|
this.paused = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async addTrackToQueue(track: ValidTracks) {
|
public async skip() {
|
||||||
return await this.nekoPlayer.enqueue(track.url);
|
if (!this.voiceConnection) throw new Error('No voice connection');
|
||||||
|
this.discordPlayer.pause(true);
|
||||||
|
this.nekoPlayer.skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async skipTrack() {
|
public async addTrackToQueue(track: ValidTracks) {
|
||||||
if (!this.voiceConnection) throw new Error('No voice connection');
|
return await this.nekoPlayer.enqueue(track.url);
|
||||||
|
|
||||||
if (this.nekoPlayer.getQueue().length === 0) return;
|
|
||||||
|
|
||||||
await this.nekoPlayer.skip();
|
|
||||||
if (this.paused) this.paused = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public clearQueue() {
|
public clearQueue() {
|
||||||
@@ -367,7 +332,7 @@ export class DiscordMusicPlayerInstance {
|
|||||||
this.queue.track = shuffleFixedFirst(this.queue.track);
|
this.queue.track = shuffleFixedFirst(this.queue.track);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getPreviousTrack(): ValidTracks | undefined {
|
public getPreviousTrack(): AudioInformation | undefined {
|
||||||
return this.previousTrack;
|
return this.previousTrack;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user