refactor: folder structure ≤5 файлов на папку

- counter/ → counter/service/ (5 файлов)
- entertainment/commands/ → random/ (5) + rating/ (удалена)
- rating/commands/ (7 meter команд), rating/config/ (2)
- profile/ → command/, model/, service/, render/
- role/ → command/, validation/ + repository/
- voice/ → service/, listener/, handler/
- level/ → commands/, service/, listener/
- Исправлены все imports и package declarations
This commit is contained in:
loki5512344 2026-07-04 19:31:29 +02:00
parent f6b037921b
commit 6aa0d81dc6
72 changed files with 147 additions and 100 deletions

View file

@ -5,7 +5,7 @@ import java.util.List;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.config.BotConfig; import creator.loki.config.BotConfig;
import creator.loki.core.registry.PrefixCommandRegistrar; import creator.loki.core.registry.PrefixCommandRegistrar;
import creator.loki.feature.counter.MemberCounterListener; import creator.loki.feature.counter.service.MemberCounterListener;
import creator.loki.feature.metrics.HealthHttpServer; import creator.loki.feature.metrics.HealthHttpServer;
import creator.loki.feature.moderation.MuteScheduler; import creator.loki.feature.moderation.MuteScheduler;
import creator.loki.feature.music.core.LavalinkManager; import creator.loki.feature.music.core.LavalinkManager;

View file

@ -3,19 +3,19 @@ package creator.loki.core;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.bootstrap.ReadyListener; import creator.loki.bootstrap.ReadyListener;
import creator.loki.feature.counter.MemberCounterListener; import creator.loki.feature.counter.service.MemberCounterListener;
import creator.loki.feature.economy.FishMessageListener; import creator.loki.feature.economy.FishMessageListener;
import creator.loki.feature.help.HelpMenuHandler; import creator.loki.feature.help.HelpMenuHandler;
import creator.loki.feature.leaderboard.LeaderboardButtonListener; import creator.loki.feature.leaderboard.LeaderboardButtonListener;
import creator.loki.feature.level.MessageListener; import creator.loki.feature.level.listener.MessageListener;
import creator.loki.feature.level.ResetLevelsButtonHandler; import creator.loki.feature.level.listener.ResetLevelsButtonHandler;
import creator.loki.feature.level.VoiceTracker; import creator.loki.feature.level.service.VoiceTracker;
import creator.loki.feature.moderation.log.ModerationLogger; import creator.loki.feature.moderation.log.ModerationLogger;
import creator.loki.feature.music.MusicSlashCommands; import creator.loki.feature.music.MusicSlashCommands;
import creator.loki.feature.voice.VoiceButtonHandler; import creator.loki.feature.voice.handler.VoiceButtonHandler;
import creator.loki.feature.voice.VoiceChannelListener; import creator.loki.feature.voice.listener.VoiceChannelListener;
import creator.loki.feature.voice.VoiceModalHandler; import creator.loki.feature.voice.handler.VoiceModalHandler;
import creator.loki.feature.voice.VoiceSyncListener; import creator.loki.feature.voice.listener.VoiceSyncListener;
import creator.loki.feature.welcome.WelcomeListener; import creator.loki.feature.welcome.WelcomeListener;
@Singleton @Singleton

View file

@ -7,8 +7,8 @@ import com.google.inject.Singleton;
import creator.loki.core.security.CooldownManager; import creator.loki.core.security.CooldownManager;
import creator.loki.core.security.RateLimiter; import creator.loki.core.security.RateLimiter;
import creator.loki.database.Database; import creator.loki.database.Database;
import creator.loki.feature.counter.MemberCounterListener; import creator.loki.feature.counter.service.MemberCounterListener;
import creator.loki.feature.level.VoiceTracker; import creator.loki.feature.level.service.VoiceTracker;
import creator.loki.feature.metrics.HealthHttpServer; import creator.loki.feature.metrics.HealthHttpServer;
import creator.loki.feature.moderation.MuteScheduler; import creator.loki.feature.moderation.MuteScheduler;
import creator.loki.feature.radio.RadioManager; import creator.loki.feature.radio.RadioManager;

View file

@ -20,7 +20,7 @@ import creator.loki.feature.counter.CounterModule;
import creator.loki.feature.economy.EconomyCommandRegistrar; import creator.loki.feature.economy.EconomyCommandRegistrar;
import creator.loki.feature.economy.EconomyModule; import creator.loki.feature.economy.EconomyModule;
import creator.loki.feature.entertainment.EntertainmentCommandRegistrar; import creator.loki.feature.entertainment.EntertainmentCommandRegistrar;
import creator.loki.feature.level.LevelCommandRegistrar; import creator.loki.feature.level.commands.LevelCommandRegistrar;
import creator.loki.feature.level.LevelModule; import creator.loki.feature.level.LevelModule;
import creator.loki.feature.metrics.HealthHttpServer; import creator.loki.feature.metrics.HealthHttpServer;
import creator.loki.feature.metrics.MetricsCollector; import creator.loki.feature.metrics.MetricsCollector;

View file

@ -6,6 +6,7 @@ import com.google.inject.Singleton;
import creator.loki.database.Database; import creator.loki.database.Database;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.counter.repository.CounterStatsRepository; import creator.loki.feature.counter.repository.CounterStatsRepository;
import creator.loki.feature.counter.service.CounterManager;
public class CounterModule extends AbstractModule { public class CounterModule extends AbstractModule {

View file

@ -8,7 +8,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import creator.loki.database.Database; import creator.loki.database.Database;
import creator.loki.feature.counter.DailyStats; import creator.loki.feature.counter.service.DailyStats;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.counter; package creator.loki.feature.counter.service;
import java.awt.Color; import java.awt.Color;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.counter; package creator.loki.feature.counter.service;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.counter; package creator.loki.feature.counter.service;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.counter; package creator.loki.feature.counter.service;
import java.time.LocalDate; import java.time.LocalDate;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.counter; package creator.loki.feature.counter.service;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledExecutorService;

View file

@ -5,19 +5,19 @@ import creator.loki.config.BotConfig;
import creator.loki.core.registry.CommandRegistrar; import creator.loki.core.registry.CommandRegistrar;
import creator.loki.core.registry.CommandRegistry; import creator.loki.core.registry.CommandRegistry;
import creator.loki.core.security.CooldownManager; import creator.loki.core.security.CooldownManager;
import creator.loki.feature.entertainment.commands.CoinCommand; import creator.loki.feature.entertainment.commands.random.CoinCommand;
import creator.loki.feature.entertainment.commands.DiceCommand; import creator.loki.feature.entertainment.commands.random.DiceCommand;
import creator.loki.feature.entertainment.commands.EightBallCommand; import creator.loki.feature.entertainment.commands.random.EightBallCommand;
import creator.loki.feature.entertainment.commands.GlazbobaCommand; import creator.loki.feature.entertainment.commands.GlazbobaCommand;
import creator.loki.feature.entertainment.commands.MemeCommand; import creator.loki.feature.entertainment.commands.MemeCommand;
import creator.loki.feature.entertainment.commands.RandomChoiceCommand; import creator.loki.feature.entertainment.commands.random.RandomChoiceCommand;
import creator.loki.feature.entertainment.commands.rating.BoykisserCommand; import creator.loki.feature.rating.commands.BoykisserCommand;
import creator.loki.feature.entertainment.commands.rating.FatCommand; import creator.loki.feature.rating.commands.FatCommand;
import creator.loki.feature.entertainment.commands.rating.GayCommand; import creator.loki.feature.rating.commands.GayCommand;
import creator.loki.feature.entertainment.commands.rating.IqCommand; import creator.loki.feature.rating.commands.IqCommand;
import creator.loki.feature.entertainment.commands.rating.MustacheCommand; import creator.loki.feature.rating.commands.MustacheCommand;
import creator.loki.feature.entertainment.commands.rating.PpCommand; import creator.loki.feature.rating.commands.PpCommand;
import creator.loki.feature.entertainment.commands.rating.RateCommand; import creator.loki.feature.rating.commands.RateCommand;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.ship.ShipCommand; import creator.loki.feature.ship.ShipCommand;
import creator.loki.feature.ship.repository.ShipPairRepository; import creator.loki.feature.ship.repository.ShipPairRepository;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands.random;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -11,7 +11,7 @@ import java.util.function.Predicate;
import java.util.regex.Pattern; import java.util.regex.Pattern;
/** Разбор хвоста сообщения и строки вариантов для {@link RandomChoiceCommand}. */ /** Разбор хвоста сообщения и строки вариантов для {@link RandomChoiceCommand}. */
final class ChoiceOptionParser { final public class ChoiceOptionParser {
private static final Pattern OR_SPLIT = Pattern.compile("(?i)\\s+или\\s+"); private static final Pattern OR_SPLIT = Pattern.compile("(?i)\\s+или\\s+");
@ -28,7 +28,7 @@ final class ChoiceOptionParser {
private ChoiceOptionParser() {} private ChoiceOptionParser() {}
static String tailAfterCommand(String raw, String prefix, String commandName) { public static String tailAfterCommand(String raw, String prefix, String commandName) {
String t = raw.trim(); String t = raw.trim();
if (!t.startsWith(prefix)) { if (!t.startsWith(prefix)) {
return ""; return "";
@ -45,7 +45,7 @@ final class ChoiceOptionParser {
return rest.substring(sp).trim(); return rest.substring(sp).trim();
} }
static List<String> parseOptions(String tail) { public static List<String> parseOptions(String tail) {
String t = tail.strip(); String t = tail.strip();
for (SplitRule rule : RULES) { for (SplitRule rule : RULES) {
if (rule.when.test(t)) { if (rule.when.test(t)) {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands.random;
import java.awt.Color; import java.awt.Color;
import java.util.Random; import java.util.Random;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands.random;
import java.awt.Color; import java.awt.Color;
import java.util.Random; import java.util.Random;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands.random;
import java.awt.Color; import java.awt.Color;
import java.util.Random; import java.util.Random;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands.random;
import java.awt.Color; import java.awt.Color;
import java.util.List; import java.util.List;

View file

@ -9,9 +9,14 @@ import creator.loki.feature.config.repository.GuildConfigRepository;
import creator.loki.feature.level.domain.XpFormula; import creator.loki.feature.level.domain.XpFormula;
import creator.loki.feature.level.repository.SqlUserStatsRepository; import creator.loki.feature.level.repository.SqlUserStatsRepository;
import creator.loki.feature.level.repository.UserStatsRepository; import creator.loki.feature.level.repository.UserStatsRepository;
import creator.loki.feature.level.commands.ResetLevelsCommand;
import creator.loki.feature.level.listener.ResetLevelsButtonHandler;
import creator.loki.feature.level.service.LeaderboardService; import creator.loki.feature.level.service.LeaderboardService;
import creator.loki.feature.level.service.LevelRoleService;
import creator.loki.feature.level.service.LevelService; import creator.loki.feature.level.service.LevelService;
import creator.loki.feature.level.service.LevelUpNotifier;
import creator.loki.feature.level.service.MessageCooldownService; import creator.loki.feature.level.service.MessageCooldownService;
import creator.loki.feature.level.service.VoiceTracker;
public class LevelModule extends AbstractModule { public class LevelModule extends AbstractModule {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.commands;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.core.registry.CommandRegistrar; import creator.loki.core.registry.CommandRegistrar;
@ -7,8 +7,9 @@ import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.leaderboard.LeaderboardCommand; import creator.loki.feature.leaderboard.LeaderboardCommand;
import creator.loki.feature.level.commands.LevelRoleCommand; import creator.loki.feature.level.commands.LevelRoleCommand;
import creator.loki.feature.level.service.LeaderboardService; import creator.loki.feature.level.service.LeaderboardService;
import creator.loki.feature.profile.ProfileCommand; import creator.loki.feature.level.service.LevelRoleService;
import creator.loki.feature.profile.ProfileService; import creator.loki.feature.profile.command.ProfileCommand;
import creator.loki.feature.profile.service.ProfileService;
public class LevelCommandRegistrar implements CommandRegistrar { public class LevelCommandRegistrar implements CommandRegistrar {
private final LeaderboardService leaderboardService; private final LeaderboardService leaderboardService;

View file

@ -7,7 +7,7 @@ import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.level.LevelRoleService; import creator.loki.feature.level.service.LevelRoleService;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
public class LevelRoleCommand implements Command { public class LevelRoleCommand implements Command {

View file

@ -4,7 +4,7 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.level.LevelRoleService; import creator.loki.feature.level.service.LevelRoleService;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
public class LevelRoleFormatter { public class LevelRoleFormatter {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.commands;
import java.awt.Color; import java.awt.Color;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.commands;
import java.awt.Color; import java.awt.Color;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.listener;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
@ -8,6 +8,7 @@ import creator.loki.core.EventDispatcher;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import creator.loki.feature.level.domain.LevelUpResult; import creator.loki.feature.level.domain.LevelUpResult;
import creator.loki.feature.level.service.LevelService; import creator.loki.feature.level.service.LevelService;
import creator.loki.feature.level.service.LevelUpNotifier;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent; import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.slf4j.Logger; import org.slf4j.Logger;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.listener;
import java.awt.Color; import java.awt.Color;
@ -6,6 +6,7 @@ import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.util.LoggerDecorator; import creator.loki.util.LoggerDecorator;
import creator.loki.feature.level.commands.ResetLevelsCommand;
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent; import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;
import org.slf4j.Logger; import org.slf4j.Logger;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.service;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.service;
import java.awt.Color; import java.awt.Color;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.level; package creator.loki.feature.level.service;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View file

@ -20,10 +20,10 @@ import creator.loki.feature.moderation.repository.ActiveMuteRepository;
import creator.loki.feature.moderation.repository.ModerationCaseRepository; import creator.loki.feature.moderation.repository.ModerationCaseRepository;
import creator.loki.feature.moderation.repository.WarningRepository; import creator.loki.feature.moderation.repository.WarningRepository;
import creator.loki.feature.role.CustomRoleManager; import creator.loki.feature.role.CustomRoleManager;
import creator.loki.feature.role.DeleteRoleCommand; import creator.loki.feature.role.command.DeleteRoleCommand;
import creator.loki.feature.role.EditRoleCommand; import creator.loki.feature.role.command.EditRoleCommand;
import creator.loki.feature.role.MyRolesCommand; import creator.loki.feature.role.command.MyRolesCommand;
import creator.loki.feature.role.commands.CreateRoleCommand; import creator.loki.feature.role.command.CreateRoleCommand;
public class ModerationCommandRegistrar implements CommandRegistrar { public class ModerationCommandRegistrar implements CommandRegistrar {
private final CustomRoleManager roleManager; private final CustomRoleManager roleManager;

View file

@ -6,6 +6,7 @@ import com.google.inject.Singleton;
import creator.loki.feature.level.repository.UserStatsRepository; import creator.loki.feature.level.repository.UserStatsRepository;
import creator.loki.feature.level.service.LeaderboardService; import creator.loki.feature.level.service.LeaderboardService;
import creator.loki.feature.level.service.LevelService; import creator.loki.feature.level.service.LevelService;
import creator.loki.feature.profile.service.ProfileService;
import creator.loki.feature.reputation.repository.ReputationRepository; import creator.loki.feature.reputation.repository.ReputationRepository;
public class ProfileModule extends AbstractModule { public class ProfileModule extends AbstractModule {

View file

@ -1,7 +1,8 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.command;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.feature.profile.service.ProfileService;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.utils.FileUpload; import net.dv8tion.jda.api.utils.FileUpload;
import org.slf4j.Logger; import org.slf4j.Logger;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.model;
public class ProfileData { public class ProfileData {
private String username; private String username;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.render;
import java.awt.Color; import java.awt.Color;

View file

@ -1,6 +1,6 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.render;
import static creator.loki.feature.profile.RankCardConstants.*; import static creator.loki.feature.profile.render.RankCardConstants.*;
import java.awt.BasicStroke; import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
@ -12,6 +12,7 @@ import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.net.URI; import java.net.URI;
import creator.loki.feature.profile.model.ProfileData;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
public class RankCardGenerator { public class RankCardGenerator {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.render;
import java.awt.BasicStroke; import java.awt.BasicStroke;
import java.awt.Graphics2D; import java.awt.Graphics2D;

View file

@ -1,6 +1,6 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.render;
import static creator.loki.feature.profile.RankCardConstants.*; import static creator.loki.feature.profile.render.RankCardConstants.*;
import java.awt.BasicStroke; import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.profile; package creator.loki.feature.profile.service;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@ -9,6 +9,8 @@ import creator.loki.feature.level.domain.UserStats;
import creator.loki.feature.level.repository.UserStatsRepository; import creator.loki.feature.level.repository.UserStatsRepository;
import creator.loki.feature.level.service.LeaderboardService; import creator.loki.feature.level.service.LeaderboardService;
import creator.loki.feature.level.service.LevelService; import creator.loki.feature.level.service.LevelService;
import creator.loki.feature.profile.model.ProfileData;
import creator.loki.feature.profile.render.RankCardGenerator;
import creator.loki.feature.reputation.repository.ReputationRepository; import creator.loki.feature.reputation.repository.ReputationRepository;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;

View file

@ -1,10 +1,12 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.rating.config.RatingConfig;
import creator.loki.feature.rating.config.RatingLevel;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
public class BoykisserCommand implements Command { public class BoykisserCommand implements Command {

View file

@ -1,10 +1,12 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.rating.config.RatingConfig;
import creator.loki.feature.rating.config.RatingLevel;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
public class FatCommand implements Command { public class FatCommand implements Command {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import java.awt.Color; import java.awt.Color;

View file

@ -1,10 +1,12 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.rating.config.RatingConfig;
import creator.loki.feature.rating.config.RatingLevel;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
public class IqCommand implements Command { public class IqCommand implements Command {

View file

@ -1,10 +1,12 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.rating.config.RatingConfig;
import creator.loki.feature.rating.config.RatingLevel;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
public class MustacheCommand implements Command { public class MustacheCommand implements Command {

View file

@ -1,10 +1,12 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import com.google.inject.Inject; import com.google.inject.Inject;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.rating.config.RatingConfig;
import creator.loki.feature.rating.config.RatingLevel;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
public class PpCommand implements Command { public class PpCommand implements Command {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.commands;
import java.awt.Color; import java.awt.Color;
import java.util.HashMap; import java.util.HashMap;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.config;
import java.awt.Color; import java.awt.Color;
import java.util.Collections; import java.util.Collections;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.entertainment.commands.rating; package creator.loki.feature.rating.config;
import java.awt.Color; import java.awt.Color;
import java.util.List; import java.util.List;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.role.commands; package creator.loki.feature.role.command;
import java.awt.Color; import java.awt.Color;
@ -6,7 +6,8 @@ import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.role.CustomRoleManager; import creator.loki.feature.role.CustomRoleManager;
import creator.loki.feature.role.RoleCommandValidator; import creator.loki.feature.role.validation.RoleCommandValidator;
import creator.loki.feature.role.validation.RoleValidators;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;

View file

@ -1,10 +1,11 @@
package creator.loki.feature.role; package creator.loki.feature.role.command;
import java.util.List; import java.util.List;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.role.CustomRoleManager;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.role; package creator.loki.feature.role.command;
import java.awt.Color; import java.awt.Color;
import java.util.List; import java.util.List;
@ -7,6 +7,7 @@ import java.util.regex.Pattern;
import creator.loki.command.Command; import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.role.CustomRoleManager;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.role; package creator.loki.feature.role.command;
import java.awt.Color; import java.awt.Color;
import java.util.ArrayList; import java.util.ArrayList;
@ -8,6 +8,7 @@ import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.role.CustomRoleManager;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.role; package creator.loki.feature.role.validation;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.role.commands; package creator.loki.feature.role.validation;
import java.awt.Color; import java.awt.Color;
import java.util.regex.Pattern; import java.util.regex.Pattern;

View file

@ -11,7 +11,7 @@ import java.util.List;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import creator.loki.feature.counter.DailyStats; import creator.loki.feature.counter.service.DailyStats;
import creator.loki.feature.counter.repository.CounterStatsRepository; import creator.loki.feature.counter.repository.CounterStatsRepository;
import net.dv8tion.jda.api.OnlineStatus; import net.dv8tion.jda.api.OnlineStatus;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;

View file

@ -7,8 +7,8 @@ import creator.loki.core.registry.CommandRegistry;
import creator.loki.core.security.CooldownManager; import creator.loki.core.security.CooldownManager;
import creator.loki.feature.admin.commands.GenerateRatingsCommand; import creator.loki.feature.admin.commands.GenerateRatingsCommand;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.counter.CounterManager; import creator.loki.feature.counter.service.CounterManager;
import creator.loki.feature.counter.CounterSetupPrefixCommand; import creator.loki.feature.counter.service.CounterSetupPrefixCommand;
import creator.loki.feature.counter.repository.CounterStatsRepository; import creator.loki.feature.counter.repository.CounterStatsRepository;
import creator.loki.feature.help.commands.HelpCommand; import creator.loki.feature.help.commands.HelpCommand;
import creator.loki.feature.info.commands.AvatarCommand; import creator.loki.feature.info.commands.AvatarCommand;
@ -24,8 +24,8 @@ import creator.loki.feature.reputation.RepTopCommand;
import creator.loki.feature.reputation.repository.ReputationRepository; import creator.loki.feature.reputation.repository.ReputationRepository;
import creator.loki.feature.serverstats.ServerStatsService; import creator.loki.feature.serverstats.ServerStatsService;
import creator.loki.feature.utility.commands.PollCommand; import creator.loki.feature.utility.commands.PollCommand;
import creator.loki.feature.voice.VoiceChannelManager; import creator.loki.feature.voice.service.VoiceChannelManager;
import creator.loki.feature.voice.VoiceSetupPrefixCommand; import creator.loki.feature.voice.service.VoiceSetupPrefixCommand;
public class UtilityCommandRegistrar implements CommandRegistrar { public class UtilityCommandRegistrar implements CommandRegistrar {
private final CommandRegistry commandRegistry; private final CommandRegistry commandRegistry;

View file

@ -5,8 +5,13 @@ import com.google.inject.Provides;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.database.Database; import creator.loki.database.Database;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.voice.handler.VoiceButtonHandler;
import creator.loki.feature.voice.handler.VoiceModalHandler;
import creator.loki.feature.voice.listener.VoiceChannelListener;
import creator.loki.feature.voice.listener.VoiceSyncListener;
import creator.loki.feature.voice.repository.VoiceChannelRepository; import creator.loki.feature.voice.repository.VoiceChannelRepository;
import creator.loki.feature.voice.repository.VoicePresetRepository; import creator.loki.feature.voice.repository.VoicePresetRepository;
import creator.loki.feature.voice.service.VoiceChannelManager;
public class VoiceModule extends AbstractModule { public class VoiceModule extends AbstractModule {

View file

@ -1,7 +1,8 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.handler;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.feature.voice.service.VoiceChannelManager;
import creator.loki.util.LoggerDecorator; import creator.loki.util.LoggerDecorator;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.components.label.Label; import net.dv8tion.jda.api.components.label.Label;

View file

@ -1,7 +1,8 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.handler;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.feature.voice.service.VoiceChannelManager;
import creator.loki.util.LoggerDecorator; import creator.loki.util.LoggerDecorator;
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent; import net.dv8tion.jda.api.events.interaction.ModalInteractionEvent;

View file

@ -1,7 +1,8 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.listener;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.feature.voice.service.VoiceChannelManager;
import creator.loki.util.LoggerDecorator; import creator.loki.util.LoggerDecorator;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;

View file

@ -1,7 +1,9 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.listener;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import creator.loki.feature.voice.VoiceChannelData;
import creator.loki.feature.voice.service.VoiceChannelManager;
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
import net.dv8tion.jda.api.events.channel.update.ChannelUpdateNameEvent; import net.dv8tion.jda.api.events.channel.update.ChannelUpdateNameEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter; import net.dv8tion.jda.api.hooks.ListenerAdapter;

View file

@ -5,7 +5,7 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import creator.loki.database.Database; import creator.loki.database.Database;
import creator.loki.feature.voice.VoicePreset; import creator.loki.feature.voice.service.VoicePreset;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.service;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;

View file

@ -1,9 +1,10 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.service;
import java.awt.Color; import java.awt.Color;
import java.util.EnumSet; import java.util.EnumSet;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.voice.VoiceChannelData;
import creator.loki.feature.voice.repository.VoiceChannelRepository; import creator.loki.feature.voice.repository.VoiceChannelRepository;
import creator.loki.feature.voice.repository.VoicePresetRepository; import creator.loki.feature.voice.repository.VoicePresetRepository;
import creator.loki.util.LoggerDecorator; import creator.loki.util.LoggerDecorator;

View file

@ -1,4 +1,4 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.service;
/** Пресет настроек голосового канала с расширенными опциями */ /** Пресет настроек голосового канала с расширенными опциями */
public class VoicePreset { public class VoicePreset {

View file

@ -1,4 +1,4 @@
package creator.loki.feature.voice; package creator.loki.feature.voice.service;
import java.awt.Color; import java.awt.Color;
import java.util.List; import java.util.List;

View file

@ -10,15 +10,15 @@ import creator.loki.config.BotConfig;
import creator.loki.core.security.CooldownManager; import creator.loki.core.security.CooldownManager;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.config.repository.GuildConfigRepository; import creator.loki.feature.config.repository.GuildConfigRepository;
import creator.loki.feature.counter.CounterManager; import creator.loki.feature.counter.service.CounterManager;
import creator.loki.feature.counter.repository.CounterStatsRepository; import creator.loki.feature.counter.repository.CounterStatsRepository;
import creator.loki.feature.economy.EconomyCommandRegistrar; import creator.loki.feature.economy.EconomyCommandRegistrar;
import creator.loki.feature.economy.service.*; import creator.loki.feature.economy.service.*;
import creator.loki.feature.entertainment.EntertainmentCommandRegistrar; import creator.loki.feature.entertainment.EntertainmentCommandRegistrar;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.level.LevelCommandRegistrar; import creator.loki.feature.level.commands.LevelCommandRegistrar;
import creator.loki.feature.level.LevelRoleService; import creator.loki.feature.level.service.LevelRoleService;
import creator.loki.feature.level.ResetLevelsCommand; import creator.loki.feature.level.commands.ResetLevelsCommand;
import creator.loki.feature.level.repository.UserStatsRepository; import creator.loki.feature.level.repository.UserStatsRepository;
import creator.loki.feature.level.service.LeaderboardService; import creator.loki.feature.level.service.LeaderboardService;
import creator.loki.feature.metrics.MetricsCollector; import creator.loki.feature.metrics.MetricsCollector;
@ -29,13 +29,13 @@ import creator.loki.feature.moderation.repository.*;
import creator.loki.feature.music.MusicCommandRegistrar; import creator.loki.feature.music.MusicCommandRegistrar;
import creator.loki.feature.music.core.PlayerManager; import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.core.SearchManager; import creator.loki.feature.music.core.SearchManager;
import creator.loki.feature.profile.ProfileService; import creator.loki.feature.profile.service.ProfileService;
import creator.loki.feature.rating.repository.RatingsRepository; import creator.loki.feature.rating.repository.RatingsRepository;
import creator.loki.feature.reputation.repository.ReputationRepository; import creator.loki.feature.reputation.repository.ReputationRepository;
import creator.loki.feature.role.CustomRoleManager; import creator.loki.feature.role.CustomRoleManager;
import creator.loki.feature.ship.repository.ShipPairRepository; import creator.loki.feature.ship.repository.ShipPairRepository;
import creator.loki.feature.utility.UtilityCommandRegistrar; import creator.loki.feature.utility.UtilityCommandRegistrar;
import creator.loki.feature.voice.VoiceChannelManager; import creator.loki.feature.voice.service.VoiceChannelManager;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtendWith;

View file

@ -1,4 +1,5 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands;
import creator.loki.feature.entertainment.commands.random.ChoiceOptionParser;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;

View file

@ -1,4 +1,5 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands;
import creator.loki.feature.entertainment.commands.random.CoinCommand;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;

View file

@ -1,4 +1,5 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands;
import creator.loki.feature.entertainment.commands.random.DiceCommand;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;

View file

@ -1,4 +1,5 @@
package creator.loki.feature.entertainment.commands; package creator.loki.feature.entertainment.commands;
import creator.loki.feature.entertainment.commands.random.EightBallCommand;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;

View file

@ -5,8 +5,8 @@ import static org.junit.jupiter.api.Assertions.*;
import java.awt.Color; import java.awt.Color;
import java.util.List; import java.util.List;
import creator.loki.feature.entertainment.commands.rating.RatingConfig; import creator.loki.feature.rating.config.RatingConfig;
import creator.loki.feature.entertainment.commands.rating.RatingLevel; import creator.loki.feature.rating.config.RatingLevel;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;

View file

@ -1,4 +1,6 @@
package creator.loki.feature.profile; package creator.loki.feature.profile;
import creator.loki.feature.profile.render.RankCardGenerator;
import creator.loki.feature.profile.model.ProfileData;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;

View file

@ -1,4 +1,6 @@
package creator.loki.feature.voice; package creator.loki.feature.voice;
import creator.loki.feature.voice.service.VoicePreset;
import creator.loki.feature.voice.service.VoiceChannelManager;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;