refactor: add all CommandCategories constants, update HelpCategories to use them

- Add 12 constants to CommandCategories (ECONOMY, ENTERTAINMENT, SETTINGS, MODERATION,
  MUSIC, RADIO, UTILITY, INFORMATION, STATISTICS, SYSTEM, SUPER_ADMIN, ROLES)
- Replace all ~74 hardcoded getCategory() return strings with CommandCategories constants
- Update HelpCategories emojis, colors, descriptions to use constants
- Add missing HelpCategories entries for economy, music, radio, info, measurements
- Remove old rating command files (duplicated by new subpackage versions)
- Fix EntertainmentCommandRegistrar imports and remove RateCommand
This commit is contained in:
loki5512344 2026-07-29 15:22:12 +02:00
parent 604d3e59a8
commit 040870770d
Signed by: boba
GPG key ID: 253067914055423B
78 changed files with 194 additions and 1112 deletions

View file

@ -3,13 +3,20 @@ package creator.loki.command;
/** Имена категорий для {@link Command#getCategory()} (справка, селектор help). */ /** Имена категорий для {@link Command#getCategory()} (справка, селектор help). */
public final class CommandCategories { public final class CommandCategories {
/** Команды с GIF (nekos.life): hug, slap, poke и т.п. */ public static final String ECONOMY = "Экономика";
public static final String ENTERTAINMENT = "Развлечения";
public static final String SETTINGS = "Настройка";
public static final String MODERATION = "Модерация";
public static final String MUSIC = "Музыка";
public static final String RADIO = "Радио";
public static final String UTILITY = "Утилиты";
public static final String INFORMATION = "Информация";
public static final String STATISTICS = "Статистика";
public static final String SYSTEM = "Система";
public static final String SUPER_ADMIN = "Супер-Админ";
public static final String ROLES = "Роли";
public static final String GIF_INTERACTIVE = "GIF-интерактив"; public static final String GIF_INTERACTIVE = "GIF-интерактив";
/** Команды для поиска изображений (e621, gelbooru, yande.re) — только в NSFW-каналах. */
public static final String NSFW_IMAGES = "NSFW"; public static final String NSFW_IMAGES = "NSFW";
/** Команды измерений: pp, fat, aura и подобные. */
public static final String MEASUREMENTS = "Измерения"; public static final String MEASUREMENTS = "Измерения";
private CommandCategories() {} private CommandCategories() {}

View file

@ -13,46 +13,58 @@ public final class HelpCategories {
static { static {
EMOJIS = EMOJIS =
Map.ofEntries( Map.ofEntries(
Map.entry("Общие", "📋"), Map.entry(CommandCategories.ECONOMY, "💰"),
Map.entry("Роли", "🎭"), Map.entry(CommandCategories.ENTERTAINMENT, "🎮"),
Map.entry("Развлечения", "🎮"), Map.entry(CommandCategories.SETTINGS, "⚙️"),
Map.entry(CommandCategories.MODERATION, "🛡️"),
Map.entry(CommandCategories.MUSIC, "🎵"),
Map.entry(CommandCategories.RADIO, "📻"),
Map.entry(CommandCategories.UTILITY, "🔧"),
Map.entry(CommandCategories.INFORMATION, "ℹ️"),
Map.entry(CommandCategories.STATISTICS, "📊"),
Map.entry(CommandCategories.SYSTEM, "💠"),
Map.entry(CommandCategories.SUPER_ADMIN, "🔐"),
Map.entry(CommandCategories.ROLES, "🎭"),
Map.entry(CommandCategories.GIF_INTERACTIVE, "💞"), Map.entry(CommandCategories.GIF_INTERACTIVE, "💞"),
Map.entry("Модерация", "🛡️"), Map.entry(CommandCategories.NSFW_IMAGES, "🔞"),
Map.entry("Статистика", "📊"), Map.entry(CommandCategories.MEASUREMENTS, "📏"));
Map.entry("Утилиты", "🔧"),
Map.entry("Система", "💠"),
Map.entry("Настройка", "⚙️"),
Map.entry("Супер-Админ", "🔐"),
Map.entry(CommandCategories.NSFW_IMAGES, "🔞"));
COLORS = COLORS =
Map.ofEntries( Map.ofEntries(
Map.entry("Общие", new Color(52, 152, 219)), Map.entry(CommandCategories.ECONOMY, new Color(241, 196, 15)),
Map.entry("Роли", new Color(155, 89, 182)), Map.entry(CommandCategories.ENTERTAINMENT, new Color(241, 196, 15)),
Map.entry("Развлечения", new Color(241, 196, 15)), Map.entry(CommandCategories.SETTINGS, new Color(149, 165, 166)),
Map.entry(CommandCategories.MODERATION, new Color(231, 76, 60)),
Map.entry(CommandCategories.MUSIC, new Color(46, 204, 113)),
Map.entry(CommandCategories.RADIO, new Color(46, 204, 113)),
Map.entry(CommandCategories.UTILITY, new Color(52, 152, 219)),
Map.entry(CommandCategories.INFORMATION, new Color(52, 152, 219)),
Map.entry(CommandCategories.STATISTICS, new Color(46, 204, 113)),
Map.entry(CommandCategories.SYSTEM, new Color(52, 73, 94)),
Map.entry(CommandCategories.SUPER_ADMIN, new Color(113, 54, 138)),
Map.entry(CommandCategories.ROLES, new Color(155, 89, 182)),
Map.entry(CommandCategories.GIF_INTERACTIVE, new Color(233, 30, 99)), Map.entry(CommandCategories.GIF_INTERACTIVE, new Color(233, 30, 99)),
Map.entry("Модерация", new Color(231, 76, 60)), Map.entry(CommandCategories.NSFW_IMAGES, new Color(180, 0, 0)),
Map.entry("Статистика", new Color(46, 204, 113)), Map.entry(CommandCategories.MEASUREMENTS, new Color(255, 159, 67)));
Map.entry("Утилиты", new Color(52, 152, 219)),
Map.entry("Система", new Color(52, 73, 94)),
Map.entry("Настройка", new Color(149, 165, 166)),
Map.entry("Супер-Админ", new Color(113, 54, 138)),
Map.entry(CommandCategories.NSFW_IMAGES, new Color(180, 0, 0)));
DESCRIPTIONS = DESCRIPTIONS =
Map.ofEntries( Map.ofEntries(
Map.entry("Общие", "Основные команды бота"), Map.entry(CommandCategories.ECONOMY, "Экономические команды и мини-игры"),
Map.entry("Роли", "Управление кастомными ролями"), Map.entry(CommandCategories.ENTERTAINMENT, "Игры, мемы, рейтинги, текст"),
Map.entry("Развлечения", "Игры, мемы, рейтинги, текст"), Map.entry(CommandCategories.SETTINGS, "Настройка систем бота (только админы)"),
Map.entry(CommandCategories.MODERATION, "Команды модерации сервера"),
Map.entry(CommandCategories.MUSIC, "Управление музыкой и плеером"),
Map.entry(CommandCategories.RADIO, "Слушать радио в голосовом канале"),
Map.entry(CommandCategories.UTILITY, "Полезные инструменты"),
Map.entry(CommandCategories.INFORMATION, "Информация о сервере и пользователях"),
Map.entry(CommandCategories.STATISTICS, "Уровни, репутация и статистика"),
Map.entry(CommandCategories.SYSTEM, "Метрики и служебная информация для админов"),
Map.entry(CommandCategories.SUPER_ADMIN, "Сервисные команды владельца бота"),
Map.entry(CommandCategories.ROLES, "Управление кастомными ролями"),
Map.entry( Map.entry(
CommandCategories.GIF_INTERACTIVE, "Действия с участником в GIF (nekos.life)"), CommandCategories.GIF_INTERACTIVE, "Действия с участником в GIF (nekos.life)"),
Map.entry("Модерация", "Команды модерации сервера"), Map.entry(CommandCategories.NSFW_IMAGES, "Поиск изображений (только в NSFW каналах)"),
Map.entry("Статистика", "Уровни, репутация и статистика"), Map.entry(CommandCategories.MEASUREMENTS, "Забавные измерительные команды"));
Map.entry("Утилиты", "Полезные инструменты"),
Map.entry("Система", "Метрики и служебная информация для админов"),
Map.entry("Настройка", "Настройка систем бота (только админы)"),
Map.entry("Супер-Админ", "Сервисные команды владельца бота"),
Map.entry(CommandCategories.NSFW_IMAGES, "Поиск изображений (только в NSFW каналах)"));
} }
private HelpCategories() {} private HelpCategories() {}
@ -71,10 +83,10 @@ public final class HelpCategories {
public static boolean isCategoryVisible( public static boolean isCategoryVisible(
String category, boolean isAdmin, boolean isSuper, boolean isNsfwChannel) { String category, boolean isAdmin, boolean isSuper, boolean isNsfwChannel) {
if ("Настройка".equals(category) && !isAdmin) { if (CommandCategories.SETTINGS.equals(category) && !isAdmin) {
return false; return false;
} }
if ("Супер-Админ".equals(category) && !isSuper) { if (CommandCategories.SUPER_ADMIN.equals(category) && !isSuper) {
return false; return false;
} }
if (CommandCategories.NSFW_IMAGES.equals(category) && !isNsfwChannel) { if (CommandCategories.NSFW_IMAGES.equals(category) && !isNsfwChannel) {

View file

@ -12,6 +12,7 @@ import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import creator.loki.command.CommandCategories;
public class GenerateRatingsCommand implements Command { public class GenerateRatingsCommand implements Command {
private static final Logger logger = LoggerFactory.getLogger(GenerateRatingsCommand.class); private static final Logger logger = LoggerFactory.getLogger(GenerateRatingsCommand.class);
@ -41,7 +42,7 @@ public class GenerateRatingsCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Супер-Админ"; return CommandCategories.SUPER_ADMIN;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.util.GuildChannelResolve;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel; import net.dv8tion.jda.api.entities.channel.concrete.VoiceChannel;
import creator.loki.feature.counter.service.format.CounterConfigFormatter; import creator.loki.feature.counter.service.format.CounterConfigFormatter;
import creator.loki.command.CommandCategories;
public class CounterSetupPrefixCommand implements Command { public class CounterSetupPrefixCommand implements Command {
private final CounterManager counterManager; private final CounterManager counterManager;
@ -36,7 +37,7 @@ public class CounterSetupPrefixCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.domain.EconomyAccount; import creator.loki.feature.economy.domain.EconomyAccount;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import creator.loki.command.CommandCategories;
public class BankCommand implements Command { public class BankCommand implements Command {
private final EconomyService economyService; private final EconomyService economyService;
@ -34,7 +35,7 @@ public class BankCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.feature.economy.domain.EconomyAccount; import creator.loki.feature.economy.domain.EconomyAccount;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public class BalanceCommand implements Command { public class BalanceCommand implements Command {
private final EconomyService economyService; private final EconomyService economyService;
@ -34,7 +35,7 @@ public class BalanceCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -8,6 +8,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.economy.domain.EconomyAccount; import creator.loki.feature.economy.domain.EconomyAccount;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import creator.loki.command.CommandCategories;
public class BaltopCommand implements Command { public class BaltopCommand implements Command {
private final EconomyService economyService; private final EconomyService economyService;
@ -28,7 +29,7 @@ public class BaltopCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ 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.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import creator.loki.command.CommandCategories;
public class DailyCommand implements Command { public class DailyCommand implements Command {
private final EconomyService economyService; private final EconomyService economyService;
@ -27,7 +28,7 @@ public class DailyCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public class PayCommand implements Command { public class PayCommand implements Command {
private final EconomyService economyService; private final EconomyService economyService;
@ -32,7 +33,7 @@ public class PayCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -8,6 +8,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.service.game.JobService; import creator.loki.feature.economy.service.game.JobService;
import creator.loki.feature.economy.service.game.JobService; import creator.loki.feature.economy.service.game.JobService;
import creator.loki.command.CommandCategories;
public class JobCommand implements Command { public class JobCommand implements Command {
@ -34,7 +35,7 @@ public class JobCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -8,6 +8,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.service.game.JobService; import creator.loki.feature.economy.service.game.JobService;
import creator.loki.feature.economy.service.game.JobService; import creator.loki.feature.economy.service.game.JobService;
import creator.loki.command.CommandCategories;
public class WorkCommand implements Command { public class WorkCommand implements Command {
@ -29,7 +30,7 @@ public class WorkCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -11,6 +11,7 @@ import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.service.game.BlackjackService; import creator.loki.feature.economy.service.game.BlackjackService;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import net.dv8tion.jda.api.entities.MessageEmbed; import net.dv8tion.jda.api.entities.MessageEmbed;
import creator.loki.command.CommandCategories;
public class BlackjackCommand implements Command { public class BlackjackCommand implements Command {
@ -40,7 +41,7 @@ public class BlackjackCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ 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.economy.service.FishingService; import creator.loki.feature.economy.service.FishingService;
import creator.loki.command.CommandCategories;
public class FishCommand implements Command { public class FishCommand implements Command {
@ -33,7 +34,7 @@ public class FishCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -8,6 +8,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import creator.loki.feature.economy.service.game.SlotService; import creator.loki.feature.economy.service.game.SlotService;
import creator.loki.command.CommandCategories;
public class SlotCommand implements Command { public class SlotCommand implements Command {
@ -36,7 +37,7 @@ public class SlotCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -12,6 +12,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.economy.service.EconomyService; import creator.loki.feature.economy.service.EconomyService;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public class RobCommand implements Command { public class RobCommand implements Command {
private final EconomyService economyService; private final EconomyService economyService;
@ -41,7 +42,7 @@ public class RobCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Экономика"; return CommandCategories.ECONOMY;
} }
@Override @Override

View file

@ -12,20 +12,19 @@ import creator.loki.feature.entertainment.commands.random.DiceCommand;
import creator.loki.feature.entertainment.commands.random.EightBallCommand; import creator.loki.feature.entertainment.commands.random.EightBallCommand;
import creator.loki.feature.entertainment.commands.choice.RandomChoiceCommand; import creator.loki.feature.entertainment.commands.choice.RandomChoiceCommand;
import creator.loki.feature.entertainment.service.RatingService; import creator.loki.feature.entertainment.service.RatingService;
import creator.loki.feature.rating.commands.AuraCommand; import creator.loki.feature.rating.commands.body.FatCommand;
import creator.loki.feature.rating.commands.BoykisserCommand; import creator.loki.feature.rating.commands.body.MustacheCommand;
import creator.loki.feature.rating.commands.FatCommand; import creator.loki.feature.rating.commands.body.PpCommand;
import creator.loki.feature.rating.commands.GayCommand; import creator.loki.feature.rating.commands.fortune.AuraCommand;
import creator.loki.feature.rating.commands.GlazeCommand; import creator.loki.feature.rating.commands.fortune.LuckCommand;
import creator.loki.feature.rating.commands.GoonCommand; import creator.loki.feature.rating.commands.fortune.RizzCommand;
import creator.loki.feature.rating.commands.IqCommand; import creator.loki.feature.rating.commands.mind.BoykisserCommand;
import creator.loki.feature.rating.commands.LuckCommand; import creator.loki.feature.rating.commands.mind.GayCommand;
import creator.loki.feature.rating.commands.MustacheCommand; import creator.loki.feature.rating.commands.mind.IqCommand;
import creator.loki.feature.rating.commands.PpCommand; import creator.loki.feature.rating.commands.vibe.GlazeCommand;
import creator.loki.feature.rating.commands.RateCommand; import creator.loki.feature.rating.commands.vibe.GoonCommand;
import creator.loki.feature.rating.commands.RizzCommand; import creator.loki.feature.rating.commands.vibe.SimpCommand;
import creator.loki.feature.rating.commands.SimpCommand; import creator.loki.feature.rating.commands.vibe.VibeCommand;
import creator.loki.feature.rating.commands.VibeCommand;
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;
import creator.loki.feature.social.commands.ComplimentCommand; import creator.loki.feature.social.commands.ComplimentCommand;
@ -70,7 +69,6 @@ public class EntertainmentCommandRegistrar implements CommandRegistrar {
registry.register(new IqCommand(ratingService)); registry.register(new IqCommand(ratingService));
registry.register(new GayCommand(ratingService)); registry.register(new GayCommand(ratingService));
registry.register(new PpCommand(ratingService)); registry.register(new PpCommand(ratingService));
registry.register(new RateCommand(ratingService));
registry.register(new BoykisserCommand(ratingService)); registry.register(new BoykisserCommand(ratingService));
registry.register(new MustacheCommand(ratingService)); registry.register(new MustacheCommand(ratingService));
registry.register(new FatCommand(ratingService)); registry.register(new FatCommand(ratingService));

View file

@ -9,6 +9,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 net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public class GlazbobaCommand implements Command { public class GlazbobaCommand implements Command {
@ -29,7 +30,7 @@ public class GlazbobaCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -12,6 +12,7 @@ import com.google.gson.JsonParser;
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.command.CommandCategories;
public class MemeCommand implements Command { public class MemeCommand implements Command {
@ -32,7 +33,7 @@ public class MemeCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -11,6 +11,7 @@ import creator.loki.embed.EmbedTemplates;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import creator.loki.feature.utility.ChoiceOptionParser; import creator.loki.feature.utility.ChoiceOptionParser;
import creator.loki.feature.utility.ChoiceOptionParser; import creator.loki.feature.utility.ChoiceOptionParser;
import creator.loki.command.CommandCategories;
/** Случайный выбор из вариантов. Разбор строки - {@link ChoiceOptionParser}. */ /** Случайный выбор из вариантов. Разбор строки - {@link ChoiceOptionParser}. */
public class RandomChoiceCommand implements Command { public class RandomChoiceCommand implements Command {
@ -83,7 +84,7 @@ public class RandomChoiceCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -6,6 +6,7 @@ import java.util.Random;
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.command.CommandCategories;
public class CoinCommand implements Command { public class CoinCommand implements Command {
private final Random random = new Random(); private final Random random = new Random();
@ -27,7 +28,7 @@ public class CoinCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -6,6 +6,7 @@ import java.util.Random;
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.command.CommandCategories;
public class DiceCommand implements Command { public class DiceCommand implements Command {
private final Random random = new Random(); private final Random random = new Random();
@ -27,7 +28,7 @@ public class DiceCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -6,6 +6,7 @@ import java.util.Random;
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.command.CommandCategories;
public class EightBallCommand implements Command { public class EightBallCommand implements Command {
private final Random random = new Random(); private final Random random = new Random();
@ -49,7 +50,7 @@ public class EightBallCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -16,6 +16,7 @@ import net.dv8tion.jda.api.components.actionrow.ActionRow;
import net.dv8tion.jda.api.components.selections.StringSelectMenu; import net.dv8tion.jda.api.components.selections.StringSelectMenu;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import net.dv8tion.jda.api.entities.channel.attribute.IAgeRestrictedChannel; import net.dv8tion.jda.api.entities.channel.attribute.IAgeRestrictedChannel;
import creator.loki.command.CommandCategories;
public class HelpCommand implements Command { public class HelpCommand implements Command {
private final CommandRegistry registry; private final CommandRegistry registry;
@ -159,6 +160,6 @@ public class HelpCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Утилиты"; return CommandCategories.UTILITY;
} }
} }

View file

@ -8,6 +8,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import creator.loki.command.CommandCategories;
public class AvatarCommand implements Command { public class AvatarCommand implements Command {
@ -28,7 +29,7 @@ public class AvatarCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -12,6 +12,7 @@ import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
import net.dv8tion.jda.api.entities.User; import net.dv8tion.jda.api.entities.User;
import creator.loki.command.CommandCategories;
public class InfoCommand implements Command { public class InfoCommand implements Command {
@ -114,6 +115,6 @@ public class InfoCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Утилиты"; return CommandCategories.UTILITY;
} }
} }

View file

@ -5,6 +5,7 @@ import java.awt.Color;
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.command.CommandCategories;
public class PingCommand implements Command { public class PingCommand implements Command {
@ -44,6 +45,6 @@ public class PingCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Утилиты"; return CommandCategories.UTILITY;
} }
} }

View file

@ -9,6 +9,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.feature.serverstats.ServerStatsService; import creator.loki.feature.serverstats.ServerStatsService;
import net.dv8tion.jda.api.entities.Guild; import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.utils.FileUpload; import net.dv8tion.jda.api.utils.FileUpload;
import creator.loki.command.CommandCategories;
public class ServerStatsCommand implements Command { public class ServerStatsCommand implements Command {
private final ServerStatsService statsService; private final ServerStatsService statsService;
@ -34,7 +35,7 @@ public class ServerStatsCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Информация"; return CommandCategories.INFORMATION;
} }
@Override @Override

View file

@ -6,6 +6,7 @@ import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.feature.level.service.LeaderboardService; import creator.loki.feature.level.service.LeaderboardService;
import net.dv8tion.jda.api.components.actionrow.ActionRow; import net.dv8tion.jda.api.components.actionrow.ActionRow;
import creator.loki.command.CommandCategories;
/** Команда таблицы лидеров (рефакторинг: 241 → 50 строк) */ /** Команда таблицы лидеров (рефакторинг: 241 → 50 строк) */
public class LeaderboardCommand implements Command { public class LeaderboardCommand implements Command {
@ -32,7 +33,7 @@ public class LeaderboardCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Статистика"; return CommandCategories.STATISTICS;
} }
@Override @Override

View file

@ -10,6 +10,7 @@ import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.feature.level.service.LevelRoleService; import creator.loki.feature.level.service.LevelRoleService;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.feature.level.commands.util.LevelRoleFormatter; import creator.loki.feature.level.commands.util.LevelRoleFormatter;
import creator.loki.command.CommandCategories;
public class LevelRoleCommand implements Command { public class LevelRoleCommand implements Command {
private final LevelRoleService levelRoleService; private final LevelRoleService levelRoleService;
@ -37,7 +38,7 @@ public class LevelRoleCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override

View file

@ -14,6 +14,7 @@ import net.dv8tion.jda.api.components.actionrow.ActionRow;
import net.dv8tion.jda.api.components.buttons.Button; import net.dv8tion.jda.api.components.buttons.Button;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import creator.loki.command.CommandCategories;
/** /**
* Одноразовая команда для сброса уровней и XP всех пользователей Сохраняет время в войсе и * Одноразовая команда для сброса уровней и XP всех пользователей Сохраняет время в войсе и
@ -48,7 +49,7 @@ public class ResetLevelsCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
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;
import creator.loki.command.CommandCategories;
public class StatsCommand implements Command { public class StatsCommand implements Command {
@ -27,7 +28,7 @@ public class StatsCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Статистика"; return CommandCategories.STATISTICS;
} }
@Override @Override

View file

@ -10,6 +10,7 @@ import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.util.GuildChannelResolve; import creator.loki.util.GuildChannelResolve;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import creator.loki.command.CommandCategories;
/** Настройка каналов логирования через префиксную команду {@code log-setup}. */ /** Настройка каналов логирования через префиксную команду {@code log-setup}. */
public class LogSetupPrefixCommand implements Command { public class LogSetupPrefixCommand implements Command {
@ -36,7 +37,7 @@ public class LogSetupPrefixCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.config.BotConfig;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.metrics.MetricsCollector; import creator.loki.feature.metrics.MetricsCollector;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.command.CommandCategories;
public class MetricsCommand implements Command { public class MetricsCommand implements Command {
private final MetricsCollector metrics; private final MetricsCollector metrics;
@ -82,6 +83,6 @@ public class MetricsCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Система"; return CommandCategories.SYSTEM;
} }
} }

View file

@ -8,6 +8,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.feature.moderation.repository.ModerationCaseRepository; import creator.loki.feature.moderation.repository.ModerationCaseRepository;
import creator.loki.feature.moderation.util.ModerationHelper; import creator.loki.feature.moderation.util.ModerationHelper;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.command.CommandCategories;
public class CaseLookupCommand implements Command { public class CaseLookupCommand implements Command {
private final ModerationCaseRepository cases; private final ModerationCaseRepository cases;
@ -33,7 +34,7 @@ public class CaseLookupCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -17,6 +17,7 @@ import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
import creator.loki.command.CommandCategories;
public class MuteCommand implements Command { public class MuteCommand implements Command {
private static final int MAX_REASON_LENGTH = 500; private static final int MAX_REASON_LENGTH = 500;
@ -57,7 +58,7 @@ public class MuteCommand implements Command {
} }
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.feature.moderation.util.ModerationHelper;
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.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public final class PunishCommand { public final class PunishCommand {
private PunishCommand() {} private PunishCommand() {}
@ -58,7 +59,7 @@ public final class PunishCommand {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -16,6 +16,7 @@ import creator.loki.feature.moderation.repository.ModerationCaseRepository;
import creator.loki.feature.moderation.util.ModerationHelper; import creator.loki.feature.moderation.util.ModerationHelper;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.command.CommandCategories;
public class UnmuteCommand implements Command { public class UnmuteCommand implements Command {
private final ModerationCaseRepository cases; private final ModerationCaseRepository cases;
@ -54,7 +55,7 @@ public class UnmuteCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.moderation.util.ModerationHelper; import creator.loki.feature.moderation.util.ModerationHelper;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.command.CommandCategories;
public class SwapCommand implements Command { public class SwapCommand implements Command {
private final Random random = new Random(); private final Random random = new Random();
@ -28,7 +29,7 @@ public class SwapCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -11,6 +11,7 @@ import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; import net.dv8tion.jda.api.entities.channel.concrete.TextChannel;
import creator.loki.command.CommandCategories;
public class ClearCommand implements Command { public class ClearCommand implements Command {
@Override @Override
@ -30,7 +31,7 @@ public class ClearCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -5,6 +5,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.channel.attribute.ISlowmodeChannel; import net.dv8tion.jda.api.entities.channel.attribute.ISlowmodeChannel;
import creator.loki.command.CommandCategories;
public class SlowmodeCommand implements Command { public class SlowmodeCommand implements Command {
@Override @Override
@ -24,7 +25,7 @@ public class SlowmodeCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -5,6 +5,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.moderation.repository.WarningRepository; import creator.loki.feature.moderation.repository.WarningRepository;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.command.CommandCategories;
public class UnwarnCommand implements Command { public class UnwarnCommand implements Command {
private final WarningRepository warnings; private final WarningRepository warnings;
@ -30,7 +31,7 @@ public class UnwarnCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -19,6 +19,7 @@ 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.Member; import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Role; import net.dv8tion.jda.api.entities.Role;
import creator.loki.command.CommandCategories;
public class WarnCommand implements Command { public class WarnCommand implements Command {
private static final long AUTO_MUTE_HOURS = 1; private static final long AUTO_MUTE_HOURS = 1;
@ -62,7 +63,7 @@ public class WarnCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.feature.moderation.repository.WarningRepository;
import net.dv8tion.jda.api.EmbedBuilder; import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public class WarningsHistoryCommand implements Command { public class WarningsHistoryCommand implements Command {
private final WarningRepository warnings; private final WarningRepository warnings;
@ -34,7 +35,7 @@ public class WarningsHistoryCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Модерация"; return CommandCategories.MODERATION;
} }
@Override @Override

View file

@ -5,6 +5,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager; import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.manage.GuildMusicManager; import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.command.CommandCategories;
public class FilterCommands { public class FilterCommands {
private FilterCommands() {} private FilterCommands() {}
@ -69,7 +70,7 @@ public class FilterCommands {
@Override @Override
public String getCategory() { public String getCategory() {
return "Музыка"; return CommandCategories.MUSIC;
} }
@Override @Override
@ -154,7 +155,7 @@ public class FilterCommands {
@Override @Override
public String getCategory() { public String getCategory() {
return "Музыка"; return CommandCategories.MUSIC;
} }
@Override @Override

View file

@ -5,6 +5,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.music.core.PlayerManager; import creator.loki.feature.music.core.PlayerManager;
import creator.loki.feature.music.manage.GuildMusicManager; import creator.loki.feature.music.manage.GuildMusicManager;
import creator.loki.command.CommandCategories;
public class PlayerCommands { public class PlayerCommands {
@ -46,7 +47,7 @@ public class PlayerCommands {
@Override @Override
public String getCategory() { public String getCategory() {
return "Музыка"; return CommandCategories.MUSIC;
} }
@Override @Override
@ -106,7 +107,7 @@ public class PlayerCommands {
@Override @Override
public String getCategory() { public String getCategory() {
return "Музыка"; return CommandCategories.MUSIC;
} }
@Override @Override
@ -147,7 +148,7 @@ public class PlayerCommands {
@Override @Override
public String getCategory() { public String getCategory() {
return "Музыка"; return CommandCategories.MUSIC;
} }
@Override @Override

View file

@ -14,6 +14,7 @@ import creator.loki.feature.utility.VoiceHelper;
import dev.arbjerg.lavalink.client.player.Track; import dev.arbjerg.lavalink.client.player.Track;
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;
import creator.loki.command.CommandCategories;
public class PlayCommand implements Command { public class PlayCommand implements Command {
private static final Set<String> SOURCES = Set.of("yt", "sc", "list"); private static final Set<String> SOURCES = Set.of("yt", "sc", "list");
@ -42,7 +43,7 @@ public class PlayCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Музыка"; return CommandCategories.MUSIC;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ 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;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import creator.loki.command.CommandCategories;
/** Команда для просмотра профиля с красивой карточкой */ /** Команда для просмотра профиля с красивой карточкой */
public class ProfileCommand implements Command { public class ProfileCommand implements Command {
@ -34,7 +35,7 @@ public class ProfileCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Статистика"; return CommandCategories.STATISTICS;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.radio.service.RadioManager; import creator.loki.feature.radio.service.RadioManager;
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;
import creator.loki.command.CommandCategories;
public class RadioCommand implements Command { public class RadioCommand implements Command {
private final RadioManager radioManager; private final RadioManager radioManager;
@ -35,7 +36,7 @@ public class RadioCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Радио"; return CommandCategories.RADIO;
} }
@Override @Override

View file

@ -1,88 +0,0 @@
package creator.loki.feature.rating.commands;
import java.awt.Color;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService;
import net.dv8tion.jda.api.entities.Member;
public class AuraCommand implements Command {
private final RatingService ratingService;
@Inject
public AuraCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "aura";
}
@Override
public String getDescription() {
return "Проверить свою ауру (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "aura [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "aura")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int aura = ratingService.getDeterministicValue(target.getId(), 999, -50, 100);
String emoji;
Color color;
if (aura >= 80) {
emoji = "🌟";
color = new Color(255, 215, 0);
} else if (aura >= 50) {
emoji = "✨";
color = new Color(100, 255, 150);
} else if (aura >= 20) {
emoji = "😐";
color = new Color(52, 152, 219);
} else if (aura >= 0) {
emoji = "💫";
color = new Color(128, 128, 128);
} else if (aura >= -25) {
emoji = "🌑";
color = new Color(231, 76, 60);
} else {
emoji = "💀";
color = new Color(100, 0, 0);
}
StringBuilder bar = new StringBuilder();
int filled = Math.max(0, Math.min(10, (aura + 50) / 15));
for (int i = 0; i < filled; i++) bar.append("✧");
for (int i = filled; i < 10; i++) bar.append("◇");
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("✨ Аура")
.withDescription(target.getAsMention())
.addField("Сила", emoji + " **" + aura + "**\n" + bar, false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(color)
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,72 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class BoykisserCommand implements Command {
private final RatingService ratingService;
@Inject
public BoykisserCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "boykisser";
}
@Override
public String getDescription() {
return "На сколько ты boykisser (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "boykisser [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "boykisser")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
if (target.getUser().isBot()) {
context.getChannel().sendMessage("❌ Боты не целуют мальчиков!").queue();
return;
}
int boykisserLevel = ratingService.getDeterministicValue(target.getId(), 777, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = boykisserLevel / 10;
for (int i = 0; i < filled; i++) bar.append("💋");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel level = RatingLevel.findLevel(boykisserLevel, RatingConfig.getBoykisserLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("💋 Boykisser Метр")
.withDescription(target.getAsMention())
.addField(
"Уровень", bar + "\n**" + boykisserLevel + "%** - " + level.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,68 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class FatCommand implements Command {
private final RatingService ratingService;
@Inject
public FatCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "fat";
}
@Override
public String getDescription() {
return "Проверка на жирность (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "fat [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "fat")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int fatLevel = ratingService.getDeterministicValue(target.getId(), 999, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = fatLevel / 10;
for (int i = 0; i < filled; i++) bar.append("🟩");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel level = RatingLevel.findLevel(fatLevel, RatingConfig.getFatLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🐷 Fat Метр")
.withDescription(target.getAsMention())
.addField(
"Жирность", bar + "\n**" + fatLevel + "%** - " + level.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,71 +0,0 @@
package creator.loki.feature.rating.commands;
import java.awt.Color;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService;
import net.dv8tion.jda.api.entities.Member;
public class GayCommand implements Command {
private final RatingService ratingService;
@Inject
public GayCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "gay";
}
@Override
public String getDescription() {
return "Гей-метр (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "gay [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "gay")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
if (target.getUser().isBot()) {
context.getChannel().sendMessage("❌ Боты не имеют ориентации!").queue();
return;
}
int gayLevel = ratingService.getDeterministicValue(target.getId(), 456, 0, 100);
String[] rainbow = {"🟥", "🟧", "🟨", "🟩", "🟦", "🟪"};
StringBuilder bar = new StringBuilder();
int filled = Math.min(gayLevel / 17 + 1, 6);
for (int i = 0; i < filled; i++) bar.append(rainbow[i]);
for (int i = filled; i < 6; i++) bar.append("⬜");
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🏳️‍🌈 Гей-метр")
.withDescription(target.getAsMention())
.addField("Уровень", bar + "\n**" + gayLevel + "%**", false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(new Color(255, 0, 255))
.withFooter("💡 Это просто мем, не воспринимайте серьезно")
.build())
.queue();
}
}

View file

@ -1,64 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class GlazeCommand implements Command {
private final RatingService ratingService;
@Inject
public GlazeCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "glaze";
}
@Override
public String getDescription() {
return "На сколько ты глазированный (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "glaze [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "glaze")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int level = ratingService.getDeterministicValue(target.getId(), 333, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = level / 10;
for (int i = 0; i < filled; i++) bar.append("🍩");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel rl = RatingLevel.findLevel(level, RatingConfig.getGlazeLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🍩 Глазурь-метр")
.withDescription(target.getAsMention())
.addField("Глазурь", bar + "\n**" + level + "%** - " + rl.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(rl.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,67 +0,0 @@
package creator.loki.feature.rating.commands;
import java.awt.Color;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService;
import net.dv8tion.jda.api.entities.Member;
public class GoonCommand implements Command {
private final RatingService ratingService;
@Inject
public GoonCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "goon";
}
@Override
public String getDescription() {
return "Гуон-детектор (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "goon [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "goon")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int level = ratingService.getDeterministicValue(target.getId(), 444, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = level / 10;
for (int i = 0; i < filled; i++) bar.append("💀");
for (int i = filled; i < 10; i++) bar.append("⬜");
Color color =
level >= 70
? new Color(180, 0, 0)
: level >= 40 ? new Color(128, 0, 128) : new Color(100, 100, 100);
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("💀 Goon-детектор")
.withDescription(target.getAsMention())
.addField("Уровень", bar + "\n**" + level + "%**", false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(color)
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,70 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class IqCommand implements Command {
private final RatingService ratingService;
@Inject
public IqCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "iq";
}
@Override
public String getDescription() {
return "Тест IQ (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "iq [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "iq")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int iq;
if (target.getUser().isBot()) {
iq = 9000;
} else if (target.getId().equals("1414975197269987471")) {
iq = 1000;
} else {
iq = ratingService.getDeterministicValue(target.getId(), 123, 0, 140);
}
RatingLevel level = RatingConfig.findLevel(iq, "iq");
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🧠 Тест IQ")
.withDescription("Результат для " + target.getAsMention())
.addField("IQ Уровень", "**" + iq + "** - " + level.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Научно доказано вашим ID")
.build())
.queue();
}
}

View file

@ -1,67 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class LuckCommand implements Command {
private final RatingService ratingService;
@Inject
public LuckCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "luck";
}
@Override
public String getDescription() {
return "Проверить свою удачу (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "luck [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "luck")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int luck = ratingService.getDeterministicValue(target.getId(), 777, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = luck / 10;
for (int i = 0; i < filled; i++) bar.append("🍀");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel level = RatingLevel.findLevel(luck, RatingConfig.getLuckLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🍀 Удача")
.withDescription(target.getAsMention())
.addField("Везение", bar + "\n**" + luck + "%** - " + level.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,76 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class MustacheCommand implements Command {
private final RatingService ratingService;
@Inject
public MustacheCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "mustache";
}
@Override
public String getDescription() {
return "Проверка на усатость (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "mustache [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "mustache")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int mustacheLevel;
if (target.getUser().isBot() || target.getId().equals("1414975197269987471")) {
mustacheLevel = 0;
} else if (target.getId().equals("678283217094180915")) {
mustacheLevel = 1000;
} else {
mustacheLevel = ratingService.getDeterministicValue(target.getId(), 888, 0, 100);
}
StringBuilder bar = new StringBuilder();
int filled = Math.min(mustacheLevel / 10, 10);
for (int i = 0; i < filled; i++) bar.append("🧔");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel level = RatingConfig.findLevel(mustacheLevel, "mustache");
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🧔 Mustache Метр")
.withDescription(target.getAsMention())
.addField(
"Усатость", bar + "\n**" + mustacheLevel + "%** - " + level.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,79 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class PpCommand implements Command {
private final RatingService ratingService;
@Inject
public PpCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "pp";
}
@Override
public String getDescription() {
return "Измеритель pp (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "pp [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "pp")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
if (target.getUser().isBot()) {
context.getChannel().sendMessage("❌ У ботов нет pp!").queue();
return;
}
int size;
if (target.getId().equals("1414975197269987471")) {
size = 100;
} else {
size = ratingService.getDeterministicValue(target.getId(), 6969, 0, 30);
}
StringBuilder ppVisual = new StringBuilder("8");
for (int i = 0; i < size; i++) ppVisual.append("=");
ppVisual.append("D");
RatingLevel level = RatingConfig.findLevel(size, "pp");
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🍆 PP Размер")
.withDescription(target.getAsMention())
.addField(
"Размер",
"```" + ppVisual + "```\n**" + size + " см** - " + level.getComment(),
false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,79 +0,0 @@
package creator.loki.feature.rating.commands;
import java.awt.Color;
import java.util.HashMap;
import java.util.Map;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
import creator.loki.feature.entertainment.service.RatingService;
import net.dv8tion.jda.api.entities.Member;
public class RateCommand implements Command {
private final RatingService ratingService;
@Inject
public RateCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "rate";
}
@Override
public String getDescription() {
return "Оценить пользователя из 10 (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "rate [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "rate")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int rating = ratingService.getDeterministicValue(target.getId(), 420, 1, 10);
String stars = "⭐".repeat(rating) + "☆".repeat(10 - rating);
Map<Integer, String> comments = new HashMap<>();
comments.put(10, "💯 ИДЕАЛЬНО!");
comments.put(9, "🔥 Почти идеально!");
comments.put(8, "😍 Отлично!");
comments.put(7, "👍 Хорошо!");
comments.put(6, "🙂 Неплохо");
comments.put(5, "😐 Средне");
comments.put(4, "😕 Ниже среднего");
comments.put(3, "😬 Так себе");
comments.put(2, "💀 Плохо");
comments.put(1, "🗿 Ужасно");
String comment = comments.getOrDefault(rating, "🤔");
Color color = rating >= 8 ? new Color(255, 215, 0) : new Color(52, 152, 219);
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("⭐ Оценка")
.withDescription(target.getAsMention())
.addField("Рейтинг", stars + "\n**" + rating + "/10** - " + comment, false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(color)
.build())
.queue();
}
}

View file

@ -1,67 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class RizzCommand implements Command {
private final RatingService ratingService;
@Inject
public RizzCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "rizz";
}
@Override
public String getDescription() {
return "На сколько у тебя ризз (харизма)";
}
@Override
public String getUsage() {
return "rizz [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "rizz")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int rizz = ratingService.getDeterministicValue(target.getId(), 555, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = rizz / 10;
for (int i = 0; i < filled; i++) bar.append("🗿");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel level = RatingLevel.findLevel(rizz, RatingConfig.getRizzLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🗿 Rizz Метр")
.withDescription(target.getAsMention())
.addField("Харизма", bar + "\n**" + rizz + "%** - " + level.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(level.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,64 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class SimpCommand implements Command {
private final RatingService ratingService;
@Inject
public SimpCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "simp";
}
@Override
public String getDescription() {
return "Симп-детектор (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "simp [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "simp")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int level = ratingService.getDeterministicValue(target.getId(), 111, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = level / 10;
for (int i = 0; i < filled; i++) bar.append("💀");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel rl = RatingLevel.findLevel(level, RatingConfig.getSimpLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("😭 Симп-детектор")
.withDescription(target.getAsMention())
.addField("Уровень", bar + "\n**" + level + "%** - " + rl.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(rl.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -1,64 +0,0 @@
package creator.loki.feature.rating.commands;
import com.google.inject.Inject;
import creator.loki.command.Command;
import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory;
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;
public class VibeCommand implements Command {
private final RatingService ratingService;
@Inject
public VibeCommand(RatingService ratingService) {
this.ratingService = ratingService;
}
@Override
public String getName() {
return "vibe";
}
@Override
public String getDescription() {
return "Проверить свой вайб (результат всегда одинаковый)";
}
@Override
public String getUsage() {
return "vibe [@user]";
}
@Override
public String getCategory() {
return "Развлечения";
}
@Override
public void execute(CommandContext context) {
if (!ratingService.checkAndApplyCooldown(context, "vibe")) return;
Member target = ratingService.resolveTarget(context);
if (target == null) return;
int level = ratingService.getDeterministicValue(target.getId(), 222, 0, 100);
StringBuilder bar = new StringBuilder();
int filled = level / 10;
for (int i = 0; i < filled; i++) bar.append("🎵");
for (int i = filled; i < 10; i++) bar.append("⬜");
RatingLevel rl = RatingLevel.findLevel(level, RatingConfig.getVibeLevels());
context
.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()
.withTitle("🎵 Вайб-чек")
.withDescription(target.getAsMention())
.addField("Вайб", bar + "\n**" + level + "%** - " + rl.getComment(), false)
.withThumbnail(target.getUser().getAvatarUrl())
.withColor(rl.getColor())
.withFooter("💡 Детерминировано вашим Discord ID")
.build())
.queue();
}
}

View file

@ -10,6 +10,7 @@ import creator.loki.embed.EmbedTemplates;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.feature.reactroles.repository.ReactionRoleRepository; import creator.loki.feature.reactroles.repository.ReactionRoleRepository;
import creator.loki.feature.reactroles.repository.ReactionRoleRepository; import creator.loki.feature.reactroles.repository.ReactionRoleRepository;
import creator.loki.command.CommandCategories;
public class ReactionRoleCommand implements Command { public class ReactionRoleCommand implements Command {
private final ReactionRoleRepository repository; private final ReactionRoleRepository repository;
@ -36,7 +37,7 @@ public class ReactionRoleCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.core.security.CooldownManager;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
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;
import creator.loki.command.CommandCategories;
public class MinusRepCommand implements Command { public class MinusRepCommand implements Command {
private final ReputationRepository reputationRepository; private final ReputationRepository reputationRepository;
@ -37,7 +38,7 @@ public class MinusRepCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Статистика"; return CommandCategories.STATISTICS;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.core.security.CooldownManager;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
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;
import creator.loki.command.CommandCategories;
public class RepCommand implements Command { public class RepCommand implements Command {
private final ReputationRepository reputationRepository; private final ReputationRepository reputationRepository;
@ -36,7 +37,7 @@ public class RepCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Статистика"; return CommandCategories.STATISTICS;
} }
@Override @Override

View file

@ -7,6 +7,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.feature.reputation.repository.ReputationRepository; import creator.loki.feature.reputation.repository.ReputationRepository;
import creator.loki.command.CommandCategories;
/** Топ пользователей по репутации */ /** Топ пользователей по репутации */
public class RepTopCommand implements Command { public class RepTopCommand implements Command {
@ -34,7 +35,7 @@ public class RepTopCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Статистика"; return CommandCategories.STATISTICS;
} }
@Override @Override

View file

@ -4,6 +4,7 @@ import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.config.BotConfig; import creator.loki.config.BotConfig;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.command.CommandCategories;
public class AgrCommand implements Command { public class AgrCommand implements Command {
private final BotConfig config; private final BotConfig config;
@ -35,7 +36,7 @@ public class AgrCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Супер-Админ"; return CommandCategories.SUPER_ADMIN;
} }
@Override @Override

View file

@ -4,6 +4,7 @@ import creator.loki.command.Command;
import creator.loki.command.CommandContext; import creator.loki.command.CommandContext;
import creator.loki.config.BotConfig; import creator.loki.config.BotConfig;
import creator.loki.embed.EmbedTemplates; import creator.loki.embed.EmbedTemplates;
import creator.loki.command.CommandCategories;
public class DossierCommand implements Command { public class DossierCommand implements Command {
private final BotConfig config; private final BotConfig config;
@ -33,7 +34,7 @@ public class DossierCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Супер-Админ"; return CommandCategories.SUPER_ADMIN;
} }
@Override @Override

View file

@ -10,6 +10,7 @@ import creator.loki.feature.role.validation.RoleCommandValidator;
import creator.loki.feature.role.validation.RoleValidators; 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;
import creator.loki.command.CommandCategories;
public class CreateRoleCommand implements Command { public class CreateRoleCommand implements Command {
private final CustomRoleManager roleManager; private final CustomRoleManager roleManager;
@ -35,7 +36,7 @@ public class CreateRoleCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Роли"; return CommandCategories.ROLES;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ 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;
import creator.loki.command.CommandCategories;
public class DeleteRoleCommand implements Command { public class DeleteRoleCommand implements Command {
private final CustomRoleManager roleManager; private final CustomRoleManager roleManager;
@ -34,7 +35,7 @@ public class DeleteRoleCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Роли"; return CommandCategories.ROLES;
} }
@Override @Override

View file

@ -11,6 +11,7 @@ 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;
import creator.loki.command.CommandCategories;
public class EditRoleCommand implements Command { public class EditRoleCommand implements Command {
private static final Pattern HEX_PATTERN = Pattern.compile("^#?[0-9A-Fa-f]{6}$"); private static final Pattern HEX_PATTERN = Pattern.compile("^#?[0-9A-Fa-f]{6}$");
@ -37,7 +38,7 @@ public class EditRoleCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Роли"; return CommandCategories.ROLES;
} }
@Override @Override

View file

@ -11,6 +11,7 @@ import creator.loki.embed.EmbedTemplates;
import creator.loki.feature.role.CustomRoleManager; 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;
import creator.loki.command.CommandCategories;
public class MyRolesCommand implements Command { public class MyRolesCommand implements Command {
private final CustomRoleManager roleManager; private final CustomRoleManager roleManager;
@ -31,7 +32,7 @@ public class MyRolesCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Роли"; return CommandCategories.ROLES;
} }
@Override @Override

View file

@ -8,6 +8,7 @@ import creator.loki.command.CommandContext;
import creator.loki.embed.EmbedFactory; import creator.loki.embed.EmbedFactory;
import creator.loki.feature.ship.repository.ShipPairRepository; import creator.loki.feature.ship.repository.ShipPairRepository;
import net.dv8tion.jda.api.entities.Member; import net.dv8tion.jda.api.entities.Member;
import creator.loki.command.CommandCategories;
public class ShipCommand implements Command { public class ShipCommand implements Command {
private final ShipPairRepository shipPairRepository; private final ShipPairRepository shipPairRepository;
@ -33,7 +34,7 @@ public class ShipCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -11,6 +11,7 @@ import net.dv8tion.jda.api.components.actionrow.ActionRow;
import java.awt.Color; import java.awt.Color;
import creator.loki.feature.ticket.repository.TicketRepository; import creator.loki.feature.ticket.repository.TicketRepository;
import creator.loki.feature.ticket.repository.TicketRepository; import creator.loki.feature.ticket.repository.TicketRepository;
import creator.loki.command.CommandCategories;
public class TicketSetupCommand implements Command { public class TicketSetupCommand implements Command {
private final TicketRepository ticketRepository; private final TicketRepository ticketRepository;
@ -37,7 +38,7 @@ public class TicketSetupCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override

View file

@ -17,6 +17,7 @@ import okhttp3.Request;
import okhttp3.Response; import okhttp3.Response;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import creator.loki.command.CommandCategories;
public class TikTokCommand implements Command { public class TikTokCommand implements Command {
private static final Logger logger = LoggerFactory.getLogger(TikTokCommand.class); private static final Logger logger = LoggerFactory.getLogger(TikTokCommand.class);
@ -52,7 +53,7 @@ public class TikTokCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -3,6 +3,7 @@ package creator.loki.feature.utility;
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.command.CommandCategories;
public class TimerCommand implements Command { public class TimerCommand implements Command {
@Override @Override
@ -22,7 +23,7 @@ public class TimerCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Утилиты"; return CommandCategories.UTILITY;
} }
@Override @Override

View file

@ -7,6 +7,7 @@ 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 net.dv8tion.jda.api.entities.emoji.Emoji; import net.dv8tion.jda.api.entities.emoji.Emoji;
import creator.loki.command.CommandCategories;
public class PollCommand implements Command { public class PollCommand implements Command {
private static final String[] EMOJI_NUMBERS = { private static final String[] EMOJI_NUMBERS = {
@ -30,7 +31,7 @@ public class PollCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Развлечения"; return CommandCategories.ENTERTAINMENT;
} }
@Override @Override

View file

@ -9,6 +9,7 @@ import creator.loki.embed.EmbedFactory;
import creator.loki.feature.config.repository.ConfigRepository; import creator.loki.feature.config.repository.ConfigRepository;
import creator.loki.util.GuildChannelResolve; import creator.loki.util.GuildChannelResolve;
import net.dv8tion.jda.api.Permission; import net.dv8tion.jda.api.Permission;
import creator.loki.command.CommandCategories;
public class VoiceSetupPrefixCommand implements Command { public class VoiceSetupPrefixCommand implements Command {
@ -38,7 +39,7 @@ public class VoiceSetupPrefixCommand implements Command {
@Override @Override
public String getCategory() { public String getCategory() {
return "Настройка"; return CommandCategories.SETTINGS;
} }
@Override @Override