refactor(music): group into domain subfolders (stage 11, all <=6 files/folder)

commands -> control/filter/queue, listener -> bot/select,
manage -> player/filter, util -> embed/voice/query
This commit is contained in:
loki5512344 2026-08-19 14:36:04 +02:00
parent 2865f05fff
commit b3470a0f3d
Signed by: boba
GPG key ID: 253067914055423B
50 changed files with 84 additions and 82 deletions

View file

@ -3,7 +3,7 @@ package creator.loki.core;
import creator.loki.config.BotConfig;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.listener.MusicBotListener;
import creator.loki.feature.music.listener.bot.MusicBotListener;
import creator.loki.feature.music.repository.QueueRepository;
import creator.loki.feature.radio.listener.RadioBotListener;
import creator.loki.feature.radio.service.RadioManager;

View file

@ -15,7 +15,7 @@ import creator.loki.feature.level.service.tracker.VoiceTracker;
import creator.loki.feature.moderation.commands.utils.ClearSlashCommands;
import creator.loki.feature.moderation.log.ModerationLogger;
import creator.loki.feature.music.MusicSlashCommands;
import creator.loki.feature.music.listener.PlaySelectHandler;
import creator.loki.feature.music.listener.select.PlaySelectHandler;
import creator.loki.feature.reactroles.listener.ReactionRoleListener;
import creator.loki.feature.ticket.listener.TicketListener;
import creator.loki.feature.voice.handler.VoiceButtonHandler;

View file

@ -3,9 +3,9 @@ package creator.loki.feature.music;
import com.google.inject.Inject;
import creator.loki.core.registry.CommandRegistrar;
import creator.loki.core.registry.CommandRegistry;
import creator.loki.feature.music.commands.FilterCommands;
import creator.loki.feature.music.commands.PlayerCommands;
import creator.loki.feature.music.commands.QueueCommands;
import creator.loki.feature.music.commands.control.PlayerCommands;
import creator.loki.feature.music.commands.filter.FilterCommands;
import creator.loki.feature.music.commands.queue.QueueCommands;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.core.SearchManager;
import creator.loki.feature.music.play.PlayCommand;

View file

@ -1,11 +1,11 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.control;
import creator.loki.command.Command;
import creator.loki.command.CommandCategories;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.util.GuildAudioActions;
import creator.loki.feature.music.util.voice.GuildAudioActions;
final class LeaveCommand implements Command {
private final PlayerManager playerManager;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.control;
import creator.loki.command.Command;
import creator.loki.feature.music.core.PlayerManager;

View file

@ -1,11 +1,11 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.control;
import creator.loki.command.Command;
import creator.loki.command.CommandCategories;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
final class SkipCommand implements Command {
private final PlayerManager playerManager;

View file

@ -1,11 +1,11 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.control;
import creator.loki.command.Command;
import creator.loki.command.CommandCategories;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.util.GuildAudioActions;
import creator.loki.feature.music.util.voice.GuildAudioActions;
final class StopCommand implements Command {
private final PlayerManager playerManager;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.filter;
import creator.loki.command.Command;
import creator.loki.command.CommandCategories;

View file

@ -1,10 +1,10 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.filter;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
public class FilterCommands {
private FilterCommands() {}

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.filter;
import creator.loki.command.Command;
import creator.loki.command.CommandCategories;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.queue;
import static creator.loki.embed.EmbedTemplates.error;
import static creator.loki.embed.EmbedTemplates.info;
@ -6,8 +6,8 @@ import static creator.loki.embed.EmbedTemplates.info;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.util.QueueView;
import creator.loki.feature.music.util.VolumeControl;
import creator.loki.feature.music.util.embed.QueueView;
import creator.loki.feature.music.util.voice.VolumeControl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.commands;
package creator.loki.feature.music.commands.queue;
import java.util.function.BiConsumer;

View file

@ -2,7 +2,7 @@ package creator.loki.feature.music.core;
import java.util.Map;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.util.LoggerDecorator;
import dev.arbjerg.lavalink.client.LavalinkClient;
import dev.arbjerg.lavalink.client.event.ReadyEvent;

View file

@ -8,7 +8,7 @@ import com.google.inject.Inject;
import com.google.inject.Singleton;
import creator.loki.config.BotConfig;
import creator.loki.config.LavalinkConfig;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.repository.QueueRepository;
import creator.loki.util.LoggerDecorator;
import dev.arbjerg.lavalink.client.Helpers;

View file

@ -2,7 +2,7 @@ package creator.loki.feature.music.core;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
@Singleton
public class PlayerManager {

View file

@ -1,11 +1,11 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.bot;
import java.util.List;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.play.TrackLoader;
import creator.loki.feature.music.util.MusicEmbeds;
import creator.loki.feature.music.util.TrackFormatter;
import creator.loki.feature.music.util.embed.MusicEmbeds;
import creator.loki.feature.music.util.embed.TrackFormatter;
import dev.arbjerg.lavalink.client.player.LoadFailed;
import dev.arbjerg.lavalink.client.player.PlaylistLoaded;
import dev.arbjerg.lavalink.client.player.Track;

View file

@ -1,9 +1,9 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.bot;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.util.GuildAudioActions;
import creator.loki.feature.music.util.MusicEmbeds;
import creator.loki.feature.music.util.VoiceCheck;
import creator.loki.feature.music.util.embed.MusicEmbeds;
import creator.loki.feature.music.util.voice.GuildAudioActions;
import creator.loki.feature.music.util.voice.VoiceCheck;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.bot;
import java.util.Map;
import java.util.function.Consumer;

View file

@ -1,13 +1,13 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.bot;
import java.util.List;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.play.TrackLoader;
import creator.loki.feature.music.util.MusicEmbeds;
import creator.loki.feature.music.util.TrackQuery;
import creator.loki.feature.music.util.VoiceCheck;
import creator.loki.feature.music.util.embed.MusicEmbeds;
import creator.loki.feature.music.util.query.TrackQuery;
import creator.loki.feature.music.util.voice.VoiceCheck;
import creator.loki.feature.utility.VoiceHelper;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Guild;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.bot;
import java.util.HashMap;
import java.util.List;

View file

@ -1,11 +1,11 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.bot;
import java.util.List;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.util.MusicEmbeds;
import creator.loki.feature.music.util.VoiceCheck;
import creator.loki.feature.music.util.VolumeControl;
import creator.loki.feature.music.util.embed.MusicEmbeds;
import creator.loki.feature.music.util.voice.VoiceCheck;
import creator.loki.feature.music.util.voice.VolumeControl;
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.listener;
package creator.loki.feature.music.listener.select;
import com.google.inject.Inject;
import com.google.inject.Singleton;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.filter;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import java.util.Optional;
import java.util.concurrent.Executors;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import java.util.ArrayList;
import java.util.List;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import creator.loki.util.LoggerDecorator;
import dev.arbjerg.lavalink.client.player.Track;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import java.util.ArrayList;
import java.util.Collections;
@ -7,6 +7,7 @@ import java.util.List;
import java.util.Queue;
import java.util.function.Consumer;
import creator.loki.feature.music.manage.filter.FilterState;
import dev.arbjerg.lavalink.client.player.LavalinkPlayer;
import dev.arbjerg.lavalink.client.player.Track;
import dev.arbjerg.lavalink.protocol.v4.Message.EmittedEvent.TrackEndEvent.AudioTrackEndReason;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

View file

@ -10,9 +10,9 @@ import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.core.SearchManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.util.QueueNotifier;
import creator.loki.feature.music.util.TrackQuery;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.util.embed.QueueNotifier;
import creator.loki.feature.music.util.query.TrackQuery;
import creator.loki.feature.utility.VoiceHelper;
import dev.arbjerg.lavalink.client.player.Track;
import net.dv8tion.jda.api.entities.Guild;

View file

@ -4,7 +4,7 @@ import java.util.List;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import dev.arbjerg.lavalink.client.AbstractAudioLoadResultHandler;
import dev.arbjerg.lavalink.client.player.LoadFailed;
import dev.arbjerg.lavalink.client.player.PlaylistLoaded;

View file

@ -3,7 +3,7 @@ package creator.loki.feature.music.play;
import java.util.List;
import creator.loki.feature.music.core.SearchManager;
import creator.loki.feature.music.util.TrackFormatter;
import creator.loki.feature.music.util.embed.TrackFormatter;
import dev.arbjerg.lavalink.client.player.Track;
import net.dv8tion.jda.api.EmbedBuilder;

View file

@ -3,7 +3,7 @@ package creator.loki.feature.music.play;
import java.util.List;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import dev.arbjerg.lavalink.client.AbstractAudioLoadResultHandler;
import dev.arbjerg.lavalink.client.Link;
import dev.arbjerg.lavalink.client.player.LoadFailed;

View file

@ -2,7 +2,7 @@ package creator.loki.feature.music.slash;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;

View file

@ -1,10 +1,10 @@
package creator.loki.feature.music.slash;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.play.TrackLoader;
import creator.loki.feature.music.util.TrackQuery;
import creator.loki.feature.music.util.VoiceCheck;
import creator.loki.feature.music.util.query.TrackQuery;
import creator.loki.feature.music.util.voice.VoiceCheck;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;

View file

@ -4,10 +4,10 @@ import java.util.function.Consumer;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.util.GuildAudioActions;
import creator.loki.feature.music.util.QueueView;
import creator.loki.feature.music.util.VoiceCheck;
import creator.loki.feature.music.util.VolumeControl;
import creator.loki.feature.music.util.embed.QueueView;
import creator.loki.feature.music.util.voice.GuildAudioActions;
import creator.loki.feature.music.util.voice.VoiceCheck;
import creator.loki.feature.music.util.voice.VolumeControl;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
import org.slf4j.LoggerFactory;

View file

@ -3,9 +3,9 @@ package creator.loki.feature.music.slash;
import java.util.List;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.play.TrackLoader;
import creator.loki.feature.music.util.TrackFormatter;
import creator.loki.feature.music.util.embed.TrackFormatter;
import dev.arbjerg.lavalink.client.player.LoadFailed;
import dev.arbjerg.lavalink.client.player.PlaylistLoaded;
import dev.arbjerg.lavalink.client.player.Track;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.embed;
import net.dv8tion.jda.api.EmbedBuilder;

View file

@ -1,7 +1,7 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.embed;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.manage.TrackScheduler;
import creator.loki.feature.music.manage.player.TrackScheduler;
import dev.arbjerg.lavalink.client.player.Track;
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;

View file

@ -1,10 +1,10 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.embed;
import java.awt.Color;
import java.util.List;
import creator.loki.embed.EmbedFactory;
import creator.loki.feature.music.manage.TrackScheduler;
import creator.loki.feature.music.manage.player.TrackScheduler;
import dev.arbjerg.lavalink.client.Link;
import dev.arbjerg.lavalink.client.player.Track;
import net.dv8tion.jda.api.entities.MessageEmbed;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.embed;
public final class TrackFormatter {
private TrackFormatter() {}

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.query;
public final class TrackQuery {
private TrackQuery() {}

View file

@ -1,6 +1,6 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.voice;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import net.dv8tion.jda.api.entities.Guild;
public final class GuildAudioActions {

View file

@ -1,6 +1,7 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.voice;
import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.util.embed.MusicEmbeds;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.channel.middleman.MessageChannel;
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.util;
package creator.loki.feature.music.util.voice;
import java.util.function.Consumer;

View file

@ -1,7 +1,7 @@
package creator.loki.feature.radio.service;
import creator.loki.feature.music.core.LavalinkManager;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import dev.arbjerg.lavalink.client.Link;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.Permission;

View file

@ -1,6 +1,6 @@
package creator.loki.feature.radio.service;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
/** Состояние радио для одной гильдии. */
class RadioSession {

View file

@ -1,6 +1,6 @@
package creator.loki.feature.radio.service;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.util.LoggerDecorator;
import dev.arbjerg.lavalink.client.AbstractAudioLoadResultHandler;
import dev.arbjerg.lavalink.client.Link;

View file

@ -5,7 +5,7 @@ import static org.mockito.Mockito.*;
import creator.loki.config.BotConfig;
import creator.loki.config.LavalinkConfig;
import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.feature.music.manage.player.GuildMusicManager;
import creator.loki.feature.music.repository.QueueRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.music.manage;
package creator.loki.feature.music.manage.player;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Answers.RETURNS_SELF;