mirror of
https://github.com/kirameki-cafe/Yumi.git
synced 2026-09-13 18:59:19 +00:00
🐛 fix: Music loop mode
This commit is contained in:
+1
-1
Submodule NekoMelody updated: 50f078ed23...3fbaf7a7b4
@@ -27,7 +27,6 @@ import DiscordMusicPlayer, {
|
||||
VoiceDisconnectedEvent,
|
||||
ValidTracks,
|
||||
DiscordMusicPlayerInstance,
|
||||
DiscordMusicPlayerLoopMode,
|
||||
TrackUtils
|
||||
} from '../../providers/DiscordMusicPlayer';
|
||||
|
||||
@@ -36,6 +35,7 @@ import Locale from '../../services/Locale';
|
||||
import { SpotifyTrack, YouTubeVideo } from 'play-dl';
|
||||
import { checkBotPermissionsInChannel } from '../../utils/DiscordPermission';
|
||||
import { AudioInformation } from '../../../NekoMelody/src/providers/base';
|
||||
import { LoopMode } from '../../../NekoMelody/src/player';
|
||||
|
||||
const EMBEDS = {
|
||||
VOICECHANNEL_JOINED: (data: HybridInteractionMessage, locale: I18n) => {
|
||||
@@ -257,7 +257,7 @@ export async function joinVoiceChannelProcedure(
|
||||
]);
|
||||
|
||||
if (event.instance.textChannel) {
|
||||
if (event.instance.getLoopMode() === DiscordMusicPlayerLoopMode.Current) {
|
||||
if (event.instance.nekoPlayer.getLoopMode() === LoopMode.Current) {
|
||||
isLoopMessageSent = true;
|
||||
await sendMessage(event.instance.textChannel, undefined, {
|
||||
embeds: [await EMBEDS.NOW_REPEATING(data, locale, current)],
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { I18n } from 'i18n';
|
||||
import { Message, CommandInteraction } from 'discord.js';
|
||||
|
||||
import DiscordMusicPlayer, { DiscordMusicPlayerLoopMode } from '../../providers/DiscordMusicPlayer';
|
||||
import DiscordMusicPlayer from '../../providers/DiscordMusicPlayer';
|
||||
import { LoopMode } from '../../../NekoMelody/src/index';
|
||||
import Locale from '../../services/Locale';
|
||||
|
||||
import DiscordModule, { HybridInteractionMessage } from '../../utils/DiscordModule';
|
||||
@@ -18,7 +19,7 @@ const EMBEDS = {
|
||||
user: data.getUser()
|
||||
});
|
||||
},
|
||||
LOOP_STATUS: (data: HybridInteractionMessage, locale: I18n, loopMode: DiscordMusicPlayerLoopMode) => {
|
||||
LOOP_STATUS: (data: HybridInteractionMessage, locale: I18n, loopMode: LoopMode) => {
|
||||
let embed = makeInfoEmbed({
|
||||
title: locale.__('musicplayer_loop.info', {
|
||||
MODE: loopMode
|
||||
@@ -28,7 +29,7 @@ const EMBEDS = {
|
||||
});
|
||||
return embed;
|
||||
},
|
||||
LOOP_SET: (data: HybridInteractionMessage, locale: I18n, loopMode: DiscordMusicPlayerLoopMode) => {
|
||||
LOOP_SET: (data: HybridInteractionMessage, locale: I18n, loopMode: LoopMode) => {
|
||||
let embed = makeSuccessEmbed({
|
||||
title: locale.__('musicplayer_loop.loop_set', {
|
||||
MODE: loopMode
|
||||
@@ -112,18 +113,15 @@ export default class Loop extends DiscordModule {
|
||||
|
||||
if (!query)
|
||||
return await sendHybridInteractionMessageResponse(data, {
|
||||
embeds: [EMBEDS.LOOP_STATUS(data, locale, instance.getLoopMode())]
|
||||
embeds: [EMBEDS.LOOP_STATUS(data, locale, instance.nekoPlayer.getLoopMode())]
|
||||
});
|
||||
|
||||
let enumKey =
|
||||
Object.keys(DiscordMusicPlayerLoopMode)[
|
||||
Object.values(DiscordMusicPlayerLoopMode).indexOf(query.toLowerCase())
|
||||
];
|
||||
let enumKey = Object.keys(LoopMode)[Object.values(LoopMode).indexOf(query.toLowerCase())];
|
||||
|
||||
if (enumKey) {
|
||||
instance.setLoopMode(DiscordMusicPlayerLoopMode[enumKey as keyof typeof DiscordMusicPlayerLoopMode]);
|
||||
instance.nekoPlayer.setLoopMode(LoopMode[enumKey as keyof typeof LoopMode]);
|
||||
return await sendHybridInteractionMessageResponse(data, {
|
||||
embeds: [EMBEDS.LOOP_SET(data, locale, instance.getLoopMode())]
|
||||
embeds: [EMBEDS.LOOP_SET(data, locale, instance.nekoPlayer.getLoopMode())]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
import { Message, CommandInteraction } from 'discord.js';
|
||||
import { I18n } from 'i18n';
|
||||
|
||||
import DiscordMusicPlayer, {
|
||||
DiscordMusicPlayerInstance,
|
||||
DiscordMusicPlayerLoopMode,
|
||||
TrackUtils
|
||||
} from '../../providers/DiscordMusicPlayer';
|
||||
import DiscordMusicPlayer, { DiscordMusicPlayerInstance, TrackUtils } from '../../providers/DiscordMusicPlayer';
|
||||
import Locale from '../../services/Locale';
|
||||
|
||||
import DiscordModule, { HybridInteractionMessage } from '../../utils/DiscordModule';
|
||||
@@ -15,6 +11,7 @@ import {
|
||||
makeSuccessEmbed,
|
||||
makeInfoEmbed
|
||||
} from '../../utils/DiscordMessage';
|
||||
import { LoopMode } from '../../../NekoMelody/src/player';
|
||||
|
||||
const EMBEDS = {
|
||||
QUEUE: (data: HybridInteractionMessage, locale: I18n, instance: DiscordMusicPlayerInstance) => {
|
||||
@@ -29,7 +26,7 @@ const EMBEDS = {
|
||||
});
|
||||
|
||||
const nowPlayingText = `${
|
||||
instance.getLoopMode() === DiscordMusicPlayerLoopMode.Current
|
||||
instance.nekoPlayer.getLoopMode() === LoopMode.Current
|
||||
? ` ${locale.__('musicplayer_queue.looping_current')}`
|
||||
: ''
|
||||
}: [${current.metadata.title}](${current.metadata.url})`;
|
||||
|
||||
@@ -182,11 +182,6 @@ export class VoiceDisconnectedEvent {
|
||||
}
|
||||
}
|
||||
|
||||
export enum DiscordMusicPlayerLoopMode {
|
||||
None = 'none',
|
||||
Current = 'current'
|
||||
}
|
||||
|
||||
export class DiscordMusicPlayerInstance {
|
||||
public queue: Queue;
|
||||
public discordPlayer: AudioPlayer;
|
||||
@@ -197,7 +192,6 @@ export class DiscordMusicPlayerInstance {
|
||||
public previousTrack?: ValidTracks;
|
||||
|
||||
public paused: boolean = false;
|
||||
public loopMode: DiscordMusicPlayerLoopMode = DiscordMusicPlayerLoopMode.None;
|
||||
|
||||
public readonly events: EventEmitter;
|
||||
|
||||
@@ -373,14 +367,6 @@ export class DiscordMusicPlayerInstance {
|
||||
this.queue.track = shuffleFixedFirst(this.queue.track);
|
||||
}
|
||||
|
||||
public setLoopMode(mode: DiscordMusicPlayerLoopMode) {
|
||||
this.loopMode = mode;
|
||||
}
|
||||
|
||||
public getLoopMode() {
|
||||
return this.loopMode;
|
||||
}
|
||||
|
||||
public getPreviousTrack(): ValidTracks | undefined {
|
||||
return this.previousTrack;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user