style: add braces to single-line if/for/while/else (ControlStatementBraces)

- Add braces to single-line if/for/while statements and standalone else
- Handle string literals inside conditions
- Skip complex conditions with nested {[ (array init in for-each)
- Skip multi-line statements (conservative approach)
This commit is contained in:
loki5512344 2026-07-29 19:24:35 +02:00
parent 61150c5063
commit 7e725bbee6
Signed by: boba
GPG key ID: 253067914055423B
95 changed files with 376 additions and 376 deletions

View file

@ -25,7 +25,7 @@ public final class ConfigLoader {
}
private static int parsePort(String raw, final String key) {
if (raw == null || raw.isBlank()) return 0;
if (raw == null || raw.isBlank()) { return 0; }
try {
int port = Integer.parseInt(raw.trim());
if (port < 0 || port > 65535) {

View file

@ -105,7 +105,7 @@ public class BotInitializer {
}
private JDA createMusicJDA() {
if (config.getMusicToken() == null || config.getMusicToken().isBlank()) return null;
if (config.getMusicToken() == null || config.getMusicToken().isBlank()) { return null; }
LoggerDecorator.startup(logger, "Инициализация music бота...");
LavalinkManager ml =
LavalinkManagerFactory.create(config, queueRepository, config.getMusicToken());
@ -121,7 +121,7 @@ public class BotInitializer {
}
private JDA createRadioJDA(final LavalinkManager radioLavalink) {
if (config.getRadioToken() == null || config.getRadioToken().isBlank()) return null;
if (config.getRadioToken() == null || config.getRadioToken().isBlank()) { return null; }
LoggerDecorator.startup(logger, "Инициализация radio бота...");
var builder =
JdaFactory.createBuilder(

View file

@ -17,7 +17,7 @@ public class MessageCache extends ListenerAdapter {
@Override
public void onMessageReceived(final MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
if (event.getAuthor().isBot()) { return; }
String content = event.getMessage().getContentRaw();
if (!content.isBlank()) {
cache.put(event.getMessageId(), content);

View file

@ -29,10 +29,10 @@ public class DatabaseMigration {
return;
}
var data = parseJson(jsonPath);
if (data == null) return;
if (data == null) { return; }
try (var chk = database.prepare("SELECT value FROM config WHERE key = 'migrated'")) {
var rs = chk.executeQuery();
if (rs.next() && "true".equals(rs.getString("value"))) return;
if (rs.next() && "true".equals(rs.getString("value"))) { return; }
} catch (SQLException ignored) {
}
migrateUserStats(data);
@ -62,7 +62,7 @@ public class DatabaseMigration {
@SuppressWarnings("unchecked")
private void migrateUserStats(final Map<String, Object> data) {
var userStats = (Map<String, Object>) data.get("userStats");
if (userStats == null) return;
if (userStats == null) { return; }
LoggerDecorator.database(logger, "Миграция userStats: " + userStats.size() + " записей");
try (var stmt =
database.prepare(
@ -87,7 +87,7 @@ public class DatabaseMigration {
@SuppressWarnings("unchecked")
private void migrateReputation(final Map<String, Object> data) {
var reputation = (Map<String, Object>) data.get("reputation");
if (reputation == null) return;
if (reputation == null) { return; }
LoggerDecorator.database(logger, "Миграция reputation: " + reputation.size() + " записей");
try (var a =
database.prepare("INSERT OR REPLACE INTO reputation (user_id, reputation) VALUES (?, ?)")) {
@ -105,7 +105,7 @@ public class DatabaseMigration {
@SuppressWarnings("unchecked")
private void migrateShipPairs(final Map<String, Object> data) {
var shipPairs = (Map<String, Object>) data.get("shipPairs");
if (shipPairs == null) return;
if (shipPairs == null) { return; }
LoggerDecorator.database(logger, "Миграция shipPairs: " + shipPairs.size() + " записей");
try (var b =
database.prepare(
@ -128,7 +128,7 @@ public class DatabaseMigration {
@SuppressWarnings("unchecked")
private void migrateCustomRoles(final Map<String, Object> data) {
var customRoles = (Map<String, Object>) data.get("custom_roles");
if (customRoles == null) return;
if (customRoles == null) { return; }
LoggerDecorator.database(logger, "Миграция custom_roles");
try (var c =
database.prepare(

View file

@ -73,7 +73,7 @@ public class GenerateRatingsCommand implements Command {
var memberCount = 0;
var generatedCount = 0;
for (Member member : context.getGuild().getMembers()) {
if (member.getUser().isBot()) continue;
if (member.getUser().isBot()) { continue; }
memberCount++;
var userId = member.getUser().getId();
for (var type : new String[] {"ship", "gay", "iq", "pp", "mustache", "fat", "boykisser"}) {
@ -96,13 +96,13 @@ public class GenerateRatingsCommand implements Command {
}
private void generateRatingForUser(final String guildId, final String userId, final String ratingType) {
if (ratingsRepository.hasRating(guildId, userId, ratingType)) return;
if (ratingsRepository.hasRating(guildId, userId, ratingType)) { return; }
var value =
switch (ratingType) {
case "iq" -> random.nextInt(201);
case "pp" -> random.nextInt(31);
case "mustache" -> {
if (random.nextInt(100) < 1) yield 1000 + random.nextInt(500);
if (random.nextInt(100) < 1) { yield 1000 + random.nextInt(500); }
yield random.nextInt(101);
}
default -> random.nextInt(101);

View file

@ -43,7 +43,7 @@ public class SetupSlashHandler extends ListenerAdapter {
@Override
public void onGuildReady(@NotNull final GuildReadyEvent event) {
if (registered) return;
if (registered) { return; }
registered = true;
event.getJDA().updateCommands()
.addCommands(Commands.slash("setup", "Панель управления сервером"))
@ -52,7 +52,7 @@ public class SetupSlashHandler extends ListenerAdapter {
@Override
public void onSlashCommandInteraction(@NotNull final SlashCommandInteractionEvent event) {
if (!event.getName().equals("setup")) return;
if (!event.getName().equals("setup")) { return; }
event.deferReply().queue();
showDashboard(event.getGuild(), event.getHook());
}
@ -60,7 +60,7 @@ public class SetupSlashHandler extends ListenerAdapter {
@Override
public void onButtonInteraction(@NotNull final ButtonInteractionEvent event) {
String id = event.getComponentId();
if (!id.startsWith("setup_")) return;
if (!id.startsWith("setup_")) { return; }
event.deferEdit().queue();
switch (id) {
@ -78,7 +78,7 @@ public class SetupSlashHandler extends ListenerAdapter {
@Override
public void onEntitySelectInteraction(@NotNull final EntitySelectInteractionEvent event) {
String id = event.getComponentId();
if (!id.startsWith("setup_")) return;
if (!id.startsWith("setup_")) { return; }
event.deferEdit().queue();
String value = event.getValues().get(0).getId();
@ -111,7 +111,7 @@ public class SetupSlashHandler extends ListenerAdapter {
@Override
public void onStringSelectInteraction(@NotNull final StringSelectInteractionEvent event) {
String id = event.getComponentId();
if (!id.startsWith("setup_")) return;
if (!id.startsWith("setup_")) { return; }
event.deferEdit().queue();
if (id.equals("setup_levelrole_remove_select")) {
@ -124,7 +124,7 @@ public class SetupSlashHandler extends ListenerAdapter {
@Override
public void onModalInteraction(@NotNull final ModalInteractionEvent event) {
String id = event.getModalId();
if (!id.startsWith("setup_")) return;
if (!id.startsWith("setup_")) { return; }
event.deferEdit().queue();
switch (id) {
@ -418,7 +418,7 @@ public class SetupSlashHandler extends ListenerAdapter {
}
private void updateCounterChannelName(Guild guild) {
if (guild == null) return;
if (guild == null) { return; }
String channelId = configRepo.get("counter.channel_id");
String format = configRepo.get("counter.format");
if (channelId != null && format != null) {

View file

@ -22,7 +22,7 @@ public class FishMessageListener extends ListenerAdapter {
@Override
public void onMessageReceived(@NotNull final MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
if (event.getAuthor().isBot()) { return; }
String content = event.getMessage().getContentRaw().trim();
@ -35,7 +35,7 @@ public class FishMessageListener extends ListenerAdapter {
String userId = event.getAuthor().getId();
FishingService.FishResult result = fishingService.checkAnswer(userId, answer);
if (result == null) return;
if (result == null) { return; }
if (result.reward() > 0) {
event

View file

@ -102,7 +102,7 @@ public class BankCommand implements Command {
.queue();
return;
}
if (isDep) economyService.deposit(uid, amount);
if (isDep) { economyService.deposit(uid, amount); }
else economyService.withdraw(uid, amount);
ctx.getChannel()
.sendMessageEmbeds(

View file

@ -79,7 +79,7 @@ public class BlackjackCommand implements Command {
long bet;
try {
bet = Long.parseLong(betStr);
if (bet <= 0) throw new NumberFormatException();
if (bet <= 0) { throw new NumberFormatException(); }
} catch (NumberFormatException e) {
context
.getChannel()
@ -106,7 +106,7 @@ public class BlackjackCommand implements Command {
.queue();
return;
}
if (!state.isOver()) activeGames.add(userId);
if (!state.isOver()) { activeGames.add(userId); }
context.getChannel().sendMessageEmbeds(buildGameEmbed(state)).queue();
}
@ -121,7 +121,7 @@ public class BlackjackCommand implements Command {
}
BlackjackService.BlackjackState state =
isHit ? blackjackService.hit(userId) : blackjackService.stand(userId);
if (state.isOver()) activeGames.remove(userId);
if (state.isOver()) { activeGames.remove(userId); }
context.getChannel().sendMessageEmbeds(buildGameEmbed(state)).queue();
}
@ -149,15 +149,15 @@ public class BlackjackCommand implements Command {
private String formatHiddenDealerCards(final String[] cards) {
var sb = new StringBuilder("?");
for (int i = 1; i < cards.length; i++) sb.append(" + ").append(cards[i]);
for (int i = 1; i < cards.length; i++) { sb.append(" + ").append(cards[i]); }
return sb.toString();
}
private String formatResult(final BlackjackService.BlackjackState state) {
long payout = state.payout();
if (payout > state.bet()) return "🎉 Блэкджек! +" + payout + " LC";
if (payout > 0) return "✅ Ты выиграл +" + payout + " LC";
if (payout == state.bet()) return "🤝 Ничья. Возврат " + payout + " LC";
if (payout > state.bet()) { return "🎉 Блэкджек! +" + payout + " LC"; }
if (payout > 0) { return "✅ Ты выиграл +" + payout + " LC"; }
if (payout == state.bet()) { return "🤝 Ничья. Возврат " + payout + " LC"; }
return "💔 Ты проиграл " + state.bet() + " LC";
}
}

View file

@ -56,7 +56,7 @@ public class SlotCommand implements Command {
long bet;
try {
bet = Long.parseLong(args.get(0));
if (bet <= 0) throw new NumberFormatException();
if (bet <= 0) { throw new NumberFormatException(); }
} catch (NumberFormatException e) {
context
.getChannel()

View file

@ -100,7 +100,7 @@ public class RobCommand implements Command {
.queue();
} else {
long penalty = Math.min(Math.min((long) (sender.getCash() * 0.10), 5000L), sender.getCash());
if (penalty > 0) economyService.transfer(uid, tid, penalty);
if (penalty > 0) { economyService.transfer(uid, tid, penalty); }
ctx.getChannel()
.sendMessageEmbeds(
EmbedFactory.create()

View file

@ -124,8 +124,8 @@ public class EconomyAccount {
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (this == o) { return true; }
if (o == null || getClass() != o.getClass()) { return false; }
EconomyAccount that = (EconomyAccount) o;
return Objects.equals(userId, that.userId);
}

View file

@ -30,7 +30,7 @@ public enum SlotCombination {
}
public static SlotCombination match(final String e1, final String e2, final String e3) {
if (!e1.equals(e2) || !e2.equals(e3)) return null;
if (!e1.equals(e2) || !e2.equals(e3)) { return null; }
for (SlotCombination sc : values()) {
if (sc.emojis[0].equals(e1)) return sc;
}

View file

@ -126,7 +126,7 @@ public class SqlEconomyRepository implements EconomyRepository {
}
private static int clampLimit(final int limit) {
if (limit <= 0) return 1;
if (limit <= 0) { return 1; }
return Math.min(limit, MAX_TOP);
}

View file

@ -27,9 +27,9 @@ public class EconomyService {
}
public boolean transfer(final String fromId, final String toId, long amount) {
if (amount <= 0) return false;
if (amount <= 0) { return false; }
EconomyAccount from = repository.getAccount(fromId);
if (from.getCash() < amount) return false;
if (from.getCash() < amount) { return false; }
EconomyAccount to = repository.getAccount(toId);
repository.save(from.withCash(from.getCash() - amount));
repository.save(to.withCash(to.getCash() + amount));
@ -37,18 +37,18 @@ public class EconomyService {
}
public boolean deposit(final String userId, long amount) {
if (amount <= 0) return false;
if (amount <= 0) { return false; }
EconomyAccount account = repository.getAccount(userId);
if (account.getCash() < amount) return false;
if (account.getCash() < amount) { return false; }
repository.save(
account.withCash(account.getCash() - amount).withBank(account.getBank() + amount));
return true;
}
public boolean withdraw(final String userId, long amount) {
if (amount <= 0) return false;
if (amount <= 0) { return false; }
EconomyAccount account = repository.getAccount(userId);
if (account.getBank() < amount) return false;
if (account.getBank() < amount) { return false; }
repository.save(
account.withBank(account.getBank() - amount).withCash(account.getCash() + amount));
return true;
@ -62,9 +62,9 @@ public class EconomyService {
}
public boolean spendCash(final String userId, long amount) {
if (amount <= 0) return false;
if (amount <= 0) { return false; }
EconomyAccount account = repository.getAccount(userId);
if (account.getCash() < amount) return false;
if (account.getCash() < amount) { return false; }
repository.save(account.withCash(account.getCash() - amount).withAddedSpent(amount));
return true;
}
@ -72,7 +72,7 @@ public class EconomyService {
public DailyResult claimDaily(final String userId) {
EconomyAccount account = repository.getAccount(userId);
String today = LocalDate.now().toString();
if (today.equals(account.getLastDaily())) return null;
if (today.equals(account.getLastDaily())) { return null; }
String yesterday = LocalDate.now().minusDays(1).toString();
int streak;
if (yesterday.equals(account.getLastDaily())) {
@ -95,9 +95,9 @@ public class EconomyService {
public int upgradeFishingLuck(final String userId) {
EconomyAccount account = repository.getAccount(userId);
if (account.getFishingLuck() >= 5) return -1;
if (account.getFishingLuck() >= 5) { return -1; }
long cost = 800L * (account.getFishingLuck() + 1);
if (account.getCash() < cost) return -1;
if (account.getCash() < cost) { return -1; }
int newLevel = account.getFishingLuck() + 1;
repository.save(
account.withCash(account.getCash() - cost).withFishingLuck(newLevel).withAddedSpent(cost));
@ -106,9 +106,9 @@ public class EconomyService {
public int upgradeEfficiency(final String userId) {
EconomyAccount account = repository.getAccount(userId);
if (account.getEfficiency() >= 5) return -1;
if (account.getEfficiency() >= 5) { return -1; }
long cost = 800L * (account.getEfficiency() + 1);
if (account.getCash() < cost) return -1;
if (account.getCash() < cost) { return -1; }
int newLevel = account.getEfficiency() + 1;
repository.save(
account.withCash(account.getCash() - cost).withEfficiency(newLevel).withAddedSpent(cost));

View file

@ -34,7 +34,7 @@ public class FishingService {
EconomyAccount account = repository.getAccount(userId);
if (account.getLastFish() != null) {
long elapsed = System.currentTimeMillis() - Long.parseLong(account.getLastFish());
if (elapsed < COOLDOWN_MS) return null;
if (elapsed < COOLDOWN_MS) { return null; }
}
int size;
@ -100,14 +100,14 @@ public class FishingService {
public FishResult checkAnswer(final String userId, int answer) {
ActiveFish session = activeFishing.get(userId);
if (session == null) return null;
if (session == null) { return null; }
return checkAnswer(userId, answer, session.startTime(), session.difficulty());
}
public FishResult checkAnswer(final String userId, int answer, final long startTime, final String difficulty) {
ActiveFish session = activeFishing.remove(userId);
if (session == null) return null;
if (session.startTime() != startTime || !session.difficulty().equals(difficulty)) return null;
if (session == null) { return null; }
if (session.startTime() != startTime || !session.difficulty().equals(difficulty)) { return null; }
EconomyAccount account = repository.getAccount(userId);
long elapsed = System.currentTimeMillis() - session.startTime();

View file

@ -28,9 +28,9 @@ public class BlackjackService {
List<String> playerCards, List<String> dealerCards, long bet, String userId) {}
public BlackjackState startGame(final String userId, final long bet) {
if (bet <= 0 || activeGames.containsKey(userId)) return null;
if (bet <= 0 || activeGames.containsKey(userId)) { return null; }
var account = repository.getAccount(userId);
if (account.getCash() < bet) return null;
if (account.getCash() < bet) { return null; }
repository.save(account.withCash(account.getCash() - bet));
@ -54,13 +54,13 @@ public class BlackjackService {
public BlackjackState hit(final String userId) {
var game = activeGames.get(userId);
if (game == null) return null;
if (game == null) { return null; }
game.playerCards().add(drawCard());
var sum = calculateSum(game.playerCards());
var over = sum > 21;
if (over) activeGames.remove(userId);
if (over) { activeGames.remove(userId); }
return buildState(
game.playerCards(),
@ -74,7 +74,7 @@ public class BlackjackService {
public BlackjackState stand(final String userId) {
var game = activeGames.remove(userId);
if (game == null) return null;
if (game == null) { return null; }
var dealerCards = new ArrayList<>(game.dealerCards());
while (calculateSum(dealerCards) < 16) {
@ -92,7 +92,7 @@ public class BlackjackService {
}
private void creditUser(final String userId, final long amount) {
if (amount <= 0) return;
if (amount <= 0) { return; }
var account = repository.getAccount(userId);
repository.save(account.withCash(account.getCash() + amount));
}

View file

@ -25,7 +25,7 @@ public class JobService {
public void setJob(final String userId, String jobName) {
Job job = Job.fromName(jobName);
if (job == null) return;
if (job == null) { return; }
EconomyAccount account = repository.getAccount(userId);
EconomyAccount updated = new EconomyAccountBuilder(account).job(job.name()).build();
repository.save(updated);
@ -34,15 +34,15 @@ public class JobService {
public WorkResult work(final String userId, final int userLevel) {
EconomyAccount account = repository.getAccount(userId);
String jobName = account.getJob();
if (jobName == null) return null;
if (jobName == null) { return null; }
Job job = Job.fromName(jobName);
if (job == null) return null;
if (userLevel < job.getRequiredLevel()) return null;
if (job == null) { return null; }
if (userLevel < job.getRequiredLevel()) { return null; }
if (account.getLastWork() != null) {
long elapsed = System.currentTimeMillis() - Long.parseLong(account.getLastWork());
if (elapsed < WORK_COOLDOWN) return null;
if (elapsed < WORK_COOLDOWN) { return null; }
}
var rng = ThreadLocalRandom.current();
@ -79,7 +79,7 @@ public class JobService {
public String getCurrentJob(final String userId) {
EconomyAccount account = repository.getAccount(userId);
String jobName = account.getJob();
if (jobName == null) return null;
if (jobName == null) { return null; }
Job job = Job.fromName(jobName);
return job != null ? job.getDisplayName() : null;
}

View file

@ -25,9 +25,9 @@ public class SlotService {
}
public SlotResult spin(final String userId, final long bet) {
if (bet <= 0) return null;
if (bet <= 0) { return null; }
EconomyAccount account = repository.getAccount(userId);
if (account.getCash() < bet) return null;
if (account.getCash() < bet) { return null; }
repository.save(account.withCash(account.getCash() - bet));
@ -56,7 +56,7 @@ public class SlotService {
int cumulative = 0;
for (int i = 0; i < EMOJIS.length; i++) {
cumulative += WEIGHTS[i];
if (roll < cumulative) return EMOJIS[i];
if (roll < cumulative) { return EMOJIS[i]; }
}
return EMOJIS[EMOJIS.length - 1];
}

View file

@ -67,7 +67,7 @@ public class GlazbobaCommand implements Command {
.map(role -> role.getName())
.limit(10)
.collect(Collectors.joining(", "));
if (roles.isEmpty()) roles = "Нет ролей";
if (roles.isEmpty()) { roles = "Нет ролей"; }
String activities =
target.getActivities().isEmpty()

View file

@ -102,7 +102,7 @@ public abstract class AbstractImageCommand implements Command {
// ── Вспомогательное ──────────────────────────────────────────────────────────
protected static ParseResult parseArgs(final List<String> args) {
if (args.isEmpty()) return new ParseResult(DEFAULT_FETCH, "");
if (args.isEmpty()) { return new ParseResult(DEFAULT_FETCH, ""); }
try {
int count = Integer.parseInt(args.get(0));
count = Math.max(1, Math.min(count, MAX_FETCH));

View file

@ -32,7 +32,7 @@ public class ImageNavigationHandler extends ListenerAdapter {
@Override
public void onButtonInteraction(final ButtonInteractionEvent event) {
String id = event.getComponentId();
if (!id.startsWith(PREFIX)) return;
if (!id.startsWith(PREFIX)) { return; }
String direction = id.substring(PREFIX.length());
String messageId = event.getMessageId();
@ -77,7 +77,7 @@ public class ImageNavigationHandler extends ListenerAdapter {
// ── Назад ────────────────────────────────────────────────────────────────────
private void handlePrev(final ButtonInteractionEvent event, final ImageSession session, final String messageId) {
if (!session.hasPrev()) return;
if (!session.hasPrev()) { return; }
logger.debug("nav: prev page={}/{}", session.page() - 1, session.totalPages());
ImageSession updated = session.withPage(session.page() - 1);
sessionManager.update(messageId, updated);

View file

@ -66,7 +66,7 @@ public class ImageService {
urls.add(imageUrl);
}
}
if (urls.size() >= limit) break;
if (urls.size() >= limit) { break; }
}
return urls;
} catch (IOException e) {
@ -135,7 +135,7 @@ public class ImageService {
}
urls.add(fileUrl);
}
if (urls.size() >= limit) break;
if (urls.size() >= limit) { break; }
}
return urls;
} catch (IOException e) {
@ -145,7 +145,7 @@ public class ImageService {
}
private String encodeTags(String tags) {
if (tags == null || tags.isBlank()) return "";
if (tags == null || tags.isBlank()) { return ""; }
return tags.trim().replace(" ", "+").replace("#", "%23");
}
}

View file

@ -18,7 +18,7 @@ public class ImageSessionManager {
public ImageSession get(final String messageId) {
ImageSession session = sessions.get(messageId);
if (session == null) return null;
if (session == null) { return null; }
if (System.currentTimeMillis() - session.createdAt() > SESSION_TTL) {
sessions.remove(messageId);
return null;

View file

@ -34,9 +34,9 @@ public final class ImageEmbedHelper {
}
if (!descUsed) {
String desc = "";
if (!tagsStr.isBlank()) desc = tagsStr;
if (!tagsStr.isBlank()) { desc = tagsStr; }
if (isVideo) {
if (!desc.isEmpty()) desc += "\n";
if (!desc.isEmpty()) { desc += "\n"; }
desc += "🎬 [" + ext.toUpperCase() + "](" + url + ")";
}
if (!desc.isEmpty()) {
@ -67,9 +67,9 @@ public final class ImageEmbedHelper {
}
if (!descUsed) {
String desc = "";
if (!tagsStr.isBlank()) desc = tagsStr;
if (!tagsStr.isBlank()) { desc = tagsStr; }
if (isVideoExt(lastExt)) {
if (!desc.isEmpty()) desc += "\n";
if (!desc.isEmpty()) { desc += "\n"; }
desc += "🎬 [" + lastExt.toUpperCase() + "](" + lastUrl + ")";
}
if (!desc.isEmpty()) {
@ -93,12 +93,12 @@ public final class ImageEmbedHelper {
}
public static String formatTags(String tags) {
if (tags == null || tags.isBlank()) return "";
if (tags == null || tags.isBlank()) { return ""; }
String[] parts = tags.split(" ");
int count = Math.min(parts.length, 10);
StringBuilder sb = new StringBuilder("**Теги:** ");
for (int i = 0; i < count; i++) {
if (i > 0) sb.append(" ");
if (i > 0) { sb.append(" "); }
sb.append("`").append(parts[i]).append("`");
}
if (parts.length > 10) {
@ -113,9 +113,9 @@ public final class ImageEmbedHelper {
private static String extension(final String url) {
int dot = url.lastIndexOf('.');
if (dot < 0 || dot >= url.length() - 1) return "";
if (dot < 0 || dot >= url.length() - 1) { return ""; }
int end = url.indexOf('?', dot);
if (end < 0) end = url.length();
if (end < 0) { end = url.length(); }
return url.substring(dot + 1, end).toLowerCase();
}

View file

@ -49,10 +49,10 @@ public class InfoCommand implements Command {
private void showServerInfo(final CommandContext context) {
Guild guild = context.getGuild();
if (guild == null) return;
if (guild == null) { return; }
String iconUrl = guild.getIconUrl();
if (iconUrl == null) iconUrl = "";
if (iconUrl == null) { iconUrl = ""; }
context
.getChannel()
@ -80,7 +80,7 @@ public class InfoCommand implements Command {
private void showUserInfo(final CommandContext context) {
Member member = context.getAuthor();
if (member == null) return;
if (member == null) { return; }
User user = member.getUser();

View file

@ -77,8 +77,8 @@ public class UserStats {
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (this == o) { return true; }
if (o == null || getClass() != o.getClass()) { return false; }
UserStats userStats = (UserStats) o;
return Objects.equals(userId, userStats.userId);
}

View file

@ -31,7 +31,7 @@ public class ResetLevelsButtonHandler extends ListenerAdapter {
if (buttonId.startsWith(PREFIX_CONFIRM)) {
String authorId = buttonId.substring(PREFIX_CONFIRM.length());
if (authorId.isEmpty()) return;
if (authorId.isEmpty()) { return; }
if (!event.getUser().getId().equals(authorId)) {
event
.reply("❌ Только инициатор команды может подтвердить действие!")
@ -74,7 +74,7 @@ public class ResetLevelsButtonHandler extends ListenerAdapter {
}
} else if (buttonId.startsWith(PREFIX_CANCEL)) {
String authorId = buttonId.substring(PREFIX_CANCEL.length());
if (authorId.isEmpty()) return;
if (authorId.isEmpty()) { return; }
if (!event.getUser().getId().equals(authorId)) {
event
.reply("❌ Только инициатор команды может отменить действие!")

View file

@ -29,7 +29,7 @@ public class UserStatsMapper {
}
public static int clampLimit(final int limit) {
if (limit <= 0) return 1;
if (limit <= 0) { return 1; }
return Math.min(limit, MAX_TOP);
}
@ -88,7 +88,7 @@ public class UserStatsMapper {
}
public static int findRankByLevelOrder(final Database database, final String userId) {
if (!exists(database, userId)) return -1;
if (!exists(database, userId)) { return -1; }
String sql =
"""
SELECT COUNT(*) + 1
@ -104,7 +104,7 @@ public class UserStatsMapper {
try (final PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
try (final ResultSet rs = stmt.executeQuery()) {
if (rs.next()) return rs.getInt(1);
if (rs.next()) { return rs.getInt(1); }
}
} catch (SQLException e) {
logger.error("Ошибка вычисления ранга по уровню для {}", userId, e);

View file

@ -28,7 +28,7 @@ public class LevelRoleService {
public String getRoleForLevel(final int level) {
String configRole = configRepository.get("level_role_" + level);
if (configRole != null) return configRole;
if (configRole != null) { return configRole; }
return DEFAULT_ROLES.get(level);
}
@ -42,7 +42,7 @@ public class LevelRoleService {
public String assignRewardRole(final Member member, final int newLevel) {
String roleName = getRoleForLevel(newLevel);
if (roleName == null) return null;
if (roleName == null) { return null; }
List<Role> roles = member.getGuild().getRolesByName(roleName, true);
if (roles.isEmpty()) {

View file

@ -18,10 +18,10 @@ public class MessageCooldownService {
public boolean canReceiveXP(final String userId) {
long now = System.currentTimeMillis();
Long lastTime = lastMessageTimes.get(userId);
if (lastTime != null && (now - lastTime) < MESSAGE_COOLDOWN_MS) return false;
if (lastTime != null) return true;
if (lastTime != null && (now - lastTime) < MESSAGE_COOLDOWN_MS) { return false; }
if (lastTime != null) { return true; }
long dbTime = repository.getUserStats(userId).getLastMessageTime();
if (dbTime != 0) lastMessageTimes.put(userId, dbTime);
if (dbTime != 0) { lastMessageTimes.put(userId, dbTime); }
return dbTime == 0 || (now - dbTime) >= MESSAGE_COOLDOWN_MS;
}
@ -34,7 +34,7 @@ public class MessageCooldownService {
Long lastTime = lastMessageTimes.get(userId);
if (lastTime == null) {
long dbTime = repository.getUserStats(userId).getLastMessageTime();
if (dbTime == 0) return 0;
if (dbTime == 0) { return 0; }
lastMessageTimes.put(userId, dbTime);
lastTime = dbTime;
}

View file

@ -85,10 +85,10 @@ public class LevelUpNotifier {
/** Получить цвет для уровня */
private Color getColorForLevel(final int level) {
if (level >= 50) return Color.decode("#FFD700"); // Золотой
if (level >= 30) return Color.decode("#E74C3C"); // Красный
if (level >= 20) return Color.decode("#9B59B6"); // Фиолетовый
if (level >= 10) return Color.decode("#3498DB"); // Синий
if (level >= 50) { return Color.decode("#FFD700"); } // Золотой
if (level >= 30) { return Color.decode("#E74C3C"); } // Красный
if (level >= 20) { return Color.decode("#9B59B6"); } // Фиолетовый
if (level >= 10) { return Color.decode("#3498DB"); } // Синий
return Color.decode("#2ECC71"); // Зеленый
}

View file

@ -42,7 +42,7 @@ public class VoiceTracker extends ListenerAdapter implements Lifecycle {
public void onGuildVoiceUpdate(final GuildVoiceUpdateEvent event) {
Member member = event.getMember();
String userId = member.getId();
if (member.getUser().isBot()) return;
if (member.getUser().isBot()) { return; }
if (event.getChannelJoined() != null && event.getChannelLeft() == null) {
voiceJoinTimes.put(userId, System.currentTimeMillis());
@ -90,7 +90,7 @@ public class VoiceTracker extends ListenerAdapter implements Lifecycle {
public void shutdown() {
scheduler.shutdown();
try {
if (!scheduler.awaitTermination(5, TimeUnit.SECONDS)) scheduler.shutdownNow();
if (!scheduler.awaitTermination(5, TimeUnit.SECONDS)) { scheduler.shutdownNow(); }
} catch (InterruptedException e) {
scheduler.shutdownNow();
Thread.currentThread().interrupt();

View file

@ -74,9 +74,9 @@ public class MuteCommand implements Command {
return;
}
var target = mentioned.get(0);
if (!validateMute(ctx, target, mod, g)) return;
if (!validateMute(ctx, target, mod, g)) { return; }
var parsed = parseDurationAndReason(ctx);
if (parsed == null) return;
if (parsed == null) { return; }
Role muteRole;
try {
muteRole = muteRoleService.getOrCreateMuteRole(g);
@ -118,7 +118,7 @@ public class MuteCommand implements Command {
MuteDurationParser.MuteDuration dur = null;
String durToken = null;
for (String a : ctx.getArgs()) {
if (a.startsWith("<@")) continue;
if (a.startsWith("<@")) { continue; }
try {
dur = MuteDurationParser.parse(a);
durToken = a;
@ -133,12 +133,12 @@ public class MuteCommand implements Command {
boolean past = false;
var sb = new StringBuilder();
for (String a : ctx.getArgs()) {
if (a.startsWith("<@")) continue;
if (a.startsWith("<@")) { continue; }
if (!past) {
if (a.equals(durToken)) past = true;
if (a.equals(durToken)) { past = true; }
continue;
}
if (!sb.isEmpty()) sb.append(' ');
if (!sb.isEmpty()) { sb.append(' '); }
sb.append(a);
}
String tmp = sb.toString().trim();
@ -207,9 +207,9 @@ public class MuteCommand implements Command {
private void sendMuteLogEmbed(final net.dv8tion.jda.api.entities.Guild g, final Member target, final Member mod, final long caseId, final MuteDurationParser.MuteDuration dur, final String reason, final long untilMs) {
var logId = configRepo.get("moderation.log_channel_id");
if (logId == null) return;
if (logId == null) { return; }
var log = g.getTextChannelById(logId);
if (log == null) return;
if (log == null) { return; }
boolean permanent = dur.permanent();
log.sendMessageEmbeds(
new EmbedBuilder()

View file

@ -64,7 +64,7 @@ public final class PunishCommand {
@Override
public void execute(final CommandContext ctx) {
var t = modTarget(ctx, perm, action);
if (t == null) return;
if (t == null) { return; }
var reason =
ctx.getArgs().size() > 1
? String.join(" ", ctx.getArgs().subList(1, ctx.getArgs().size()))

View file

@ -117,14 +117,14 @@ public class UnmuteCommand implements Command {
var logId = configRepo.get("moderation.log_channel_id");
if (logId != null) {
var log = g.getTextChannelById(logId);
if (log == null) return;
if (log == null) { return; }
var eb =
new EmbedBuilder()
.setTitle("🔊 Размут")
.setColor(Color.GREEN)
.addField("Участник", t.getAsMention() + " (`" + t.getId() + "`)", false)
.addField("Модератор", mod.getAsMention(), false);
if (caseId > 0) eb.addField("Кейс", "`" + caseId + "`", true);
if (caseId > 0) { eb.addField("Кейс", "`" + caseId + "`", true); }
eb.addField("Причина", trunc(reason, 1000), false)
.setTimestamp(OffsetDateTime.now());
log.sendMessageEmbeds(eb.build()).queue(s -> {}, e -> {});

View file

@ -57,7 +57,7 @@ public class SwapCommand implements Command {
int swapCount;
try {
swapCount = Integer.parseInt(ctx.getArgs().get(1));
if (swapCount < 1 || swapCount > 5) throw new NumberFormatException();
if (swapCount < 1 || swapCount > 5) { throw new NumberFormatException(); }
} catch (NumberFormatException e) {
ModerationHelper.error(ctx, "Количество должно быть от 1 до 5");
return;

View file

@ -63,7 +63,7 @@ public class ClearCommand implements Command {
}
}
if (!(ctx.getChannel() instanceof TextChannel channel)) return;
if (!(ctx.getChannel() instanceof TextChannel channel)) { return; }
final Member finalTarget = target;
channel
.getHistory()

View file

@ -17,7 +17,7 @@ public class ClearSlashCommands extends ListenerAdapter {
@Override
public void onSlashCommandInteraction(@NotNull final SlashCommandInteractionEvent event) {
if (!event.getName().equals("clear")) return;
if (!event.getName().equals("clear")) { return; }
var member = event.getMember();
if (member == null || !member.hasPermission(Permission.MESSAGE_MANAGE)) {

View file

@ -63,7 +63,7 @@ public class WarnCommand implements Command {
@Override
public void execute(final CommandContext ctx) {
var t = validateInput(ctx);
if (t != null) saveWarning(ctx, t);
if (t != null) { saveWarning(ctx, t); }
}
private Member validateInput(final CommandContext ctx) {
@ -98,7 +98,7 @@ public class WarnCommand implements Command {
var g = ctx.getGuild();
var mod = ctx.getAuthor();
var reason = ctx.getArgs().stream().skip(1).collect(Collectors.joining(" ")).trim();
if (reason.isEmpty()) reason = "Без причины";
if (reason.isEmpty()) { reason = "Без причины"; }
long id = warnings.insert(g.getId(), t.getId(), mod.getId(), reason);
if (id < 0) {
ModerationHelper.error(ctx, "Не удалось сохранить предупреждение");
@ -126,9 +126,9 @@ public class WarnCommand implements Command {
private void logWarn(final Guild g, final Member mod, final Member t, final long warnId, String reason, final int total) {
var logId = configRepo.get("moderation.log_channel_id");
if (logId == null) return;
if (logId == null) { return; }
var log = g.getTextChannelById(logId);
if (log == null) return;
if (log == null) { return; }
log.sendMessageEmbeds(
new EmbedBuilder()
.setTitle("⚠️ Предупреждение (!warn)")
@ -151,12 +151,12 @@ public class WarnCommand implements Command {
return;
}
var self = g.getMember(g.getJDA().getSelfUser());
if (!self.canInteract(t) || !self.canInteract(muteRole)) return;
if (!self.canInteract(t) || !self.canInteract(muteRole)) { return; }
String reason = "Авто-мут: 3+ варна";
long untilMs = System.currentTimeMillis() + AUTO_MUTE_HOURS * 3600 * 1000;
long durSec = AUTO_MUTE_HOURS * 3600;
long caseId = cases.insert(g.getId(), "MUTE", t.getId(), mod.getId(), reason, durSec, untilMs);
if (caseId < 0) return;
if (caseId < 0) { return; }
activeMutes.upsert(g.getId(), t.getId(), untilMs, caseId);
muteScheduler.cancelPending(g.getId(), t.getId());
g.addRoleToMember(t, muteRole)

View file

@ -46,7 +46,7 @@ public class WarningsHistoryCommand implements Command {
return;
}
var viewer = ctx.getAuthor();
if (viewer == null) return;
if (viewer == null) { return; }
var mentions = ctx.getMessage().getMentions().getMembers();
Member target;
if (mentions.isEmpty()) {

View file

@ -72,8 +72,8 @@ public final class LogEmbeds {
.addField("Пользователь", userMention, true)
.addField("Модератор", moderatorMention, true)
.setColor(muted ? Color.ORANGE : Color.GREEN);
if (muted && endEpoch != null) eb.addField("До", "<t:" + endEpoch + ":R>", true);
if (reason != null) eb.addField("Причина", reason, false);
if (muted && endEpoch != null) { eb.addField("До", "<t:" + endEpoch + ":R>", true); }
if (reason != null) { eb.addField("Причина", reason, false); }
return eb;
}
@ -84,7 +84,7 @@ public final class LogEmbeds {
.addField("Пользователь", userMention, true)
.addField("Канал", channelMention, true)
.setColor(muted ? Color.ORANGE : Color.GREEN);
if (moderatorMention != null) eb.addField("Модератор", moderatorMention, false);
if (moderatorMention != null) { eb.addField("Модератор", moderatorMention, false); }
return eb;
}
@ -95,12 +95,12 @@ public final class LogEmbeds {
.addField("Пользователь", userMention, true)
.addField("Канал", channelMention, true)
.setColor(deafened ? Color.ORANGE : Color.GREEN);
if (moderatorMention != null) eb.addField("Модератор", moderatorMention, false);
if (moderatorMention != null) { eb.addField("Модератор", moderatorMention, false); }
return eb;
}
private static String truncate(final String text, final int maxLen) {
if (text.length() <= maxLen) return text;
if (text.length() <= maxLen) { return text; }
return text.substring(0, maxLen) + "...";
}
}

View file

@ -35,12 +35,12 @@ public class ModerationLogger extends ListenerAdapter {
private void handle(final Guild g, final ActionType t, final int l, final Function<List<AuditLogEntry>, EmbedBuilder> fn) {
var log = g.getTextChannelById(configRepo.get("moderation.log_channel_id"));
if (log == null) return;
if (log == null) { return; }
var al = g.retrieveAuditLogs().type(t).limit(l);
al.queue(
logs -> {
var embed = fn.apply(logs);
if (embed == null) return;
if (embed == null) { return; }
log.sendMessageEmbeds(embed.setTimestamp(OffsetDateTime.now()).build()).queue();
});
}
@ -70,7 +70,7 @@ public class ModerationLogger extends ListenerAdapter {
}
private EmbedBuilder b(final GuildBanEvent ev, final List<AuditLogEntry> l) {
if (l.isEmpty()) return null;
if (l.isEmpty()) { return null; }
var user = ev.getUser();
var e = l.get(0);
var mod = e.getUser() != null ? e.getUser().getAsMention() : "Неизвестно";
@ -83,7 +83,7 @@ public class ModerationLogger extends ListenerAdapter {
}
private EmbedBuilder ub(final GuildUnbanEvent ev, final List<AuditLogEntry> l) {
if (l.isEmpty()) return null;
if (l.isEmpty()) { return null; }
var user = ev.getUser();
var e = l.get(0);
var mod = e.getUser() != null ? e.getUser().getAsMention() : "Неизвестно";
@ -95,9 +95,9 @@ public class ModerationLogger extends ListenerAdapter {
}
private EmbedBuilder k(final GuildMemberRemoveEvent ev, final List<AuditLogEntry> l) {
if (l.isEmpty()) return null;
if (l.isEmpty()) { return null; }
var e = l.get(0);
if (!e.getTargetId().equals(ev.getUser().getId())) return null;
if (!e.getTargetId().equals(ev.getUser().getId())) { return null; }
var mod = e.getUser() != null ? e.getUser().getAsMention() : "Неизвестно";
var reason = e.getReason() != null ? e.getReason() : "Не указана";
return LogEmbeds.kick(ev.getUser().getAsMention(), mod, reason, ev.getUser().getAvatarUrl());
@ -110,7 +110,7 @@ public class ModerationLogger extends ListenerAdapter {
private EmbedBuilder t(final GuildMemberUpdateTimeOutEvent e, boolean muted, final List<AuditLogEntry> l) {
var entry = findEntry(l, e.getUser().getId());
if (entry == null) return null;
if (entry == null) { return null; }
var mod = entry.getUser() != null ? entry.getUser().getAsMention() : "Неизвестно";
var end = muted ? e.getNewTimeOutEnd().toEpochSecond() : null;
return LogEmbeds.timeout(e.getUser().getAsMention(), mod, muted, end, entry.getReason());
@ -144,7 +144,7 @@ public class ModerationLogger extends ListenerAdapter {
private AuditLogEntry findEntry(final List<AuditLogEntry> l, final String targetId, final String... key) {
var s = l.stream().filter(e -> targetId.equals(e.getTargetId()));
if (key.length > 0) s = s.filter(e -> e.getChangeByKey(key[0]) != null);
if (key.length > 0) { s = s.filter(e -> e.getChangeByKey(key[0]) != null); }
return s.findFirst().orElse(null);
}
}

View file

@ -30,7 +30,7 @@ public class MusicSlashCommands extends ListenerAdapter {
@Override
public void onGuildReady(@NotNull final GuildReadyEvent event) {
if (registered) return;
if (registered) { return; }
registered = true;
var jda = event.getJDA();

View file

@ -35,7 +35,7 @@ public class FilterCommands {
}
private static boolean checkChannel(GuildMusicManager m, final CommandContext ctx) {
if (!m.getLink().isEmpty()) return true;
if (!m.getLink().isEmpty()) { return true; }
ctx.getChannel()
.sendMessageEmbeds(EmbedTemplates.error("Не в канале", "Бот не в голосовом канале."))
.queue();
@ -76,7 +76,7 @@ public class FilterCommands {
@Override
public void execute(final CommandContext ctx) {
var m = mgr(pm, ctx);
if (!checkChannel(m, ctx)) return;
if (!checkChannel(m, ctx)) { return; }
if (mode == 2) {
m.getScheduler().resetFilters();
ctx.getChannel()
@ -161,12 +161,12 @@ public class FilterCommands {
@Override
public void execute(final CommandContext ctx) {
var m = mgr(pm, ctx);
if (!checkChannel(m, ctx)) return;
if (!checkChannel(m, ctx)) { return; }
boolean enabled =
isNight
? !m.getScheduler().filterState.isNightcore()
: !m.getScheduler().filterState.isVaporwave();
if (isNight) m.getScheduler().setNightcore(enabled);
if (isNight) { m.getScheduler().setNightcore(enabled); }
else m.getScheduler().setVaporwave(enabled);
ctx.getChannel()
.sendMessageEmbeds(

View file

@ -92,7 +92,7 @@ public class QueueCommands {
var show = Math.min(q.size(), 10);
for (var i = 0; i < show; i++)
sb.append(String.format("`%d.` **%s**\n", i + 1, q.get(i).getInfo().getTitle()));
if (q.size() > show) sb.append("... и ещё **").append(q.size() - show).append("** треков");
if (q.size() > show) { sb.append("... и ещё **").append(q.size() - show).append("** треков"); }
embed.addField("В очереди (" + q.size() + ")", sb.toString(), false);
}
ctx.getChannel().sendMessageEmbeds(embed.build()).queue();
@ -111,7 +111,7 @@ public class QueueCommands {
var ds = dur / 1000 <= 0 ? 1 : dur / 1000;
var filled = (int) ((double) pos / dur * 20);
var bar = new StringBuilder("\u2503");
for (var i = 0; i < 20; i++) bar.append(i < filled ? "\u2588" : "\u2591");
for (var i = 0; i < 20; i++) { bar.append(i < filled ? "\u2588" : "\u2591"); }
var t0 = String.format("%d:%02d", pos / 1000 / 60, pos / 1000 % 60);
var t1 = String.format("%d:%02d", ds / 60, ds % 60);
var pbar = bar + "\u2503 " + t0 + " / " + t1;

View file

@ -114,7 +114,7 @@ public class LavalinkManager {
}
public Link getOrCreateLink(final long guildId) {
if (client == null) throw new IllegalStateException("Lavalink not configured");
if (client == null) { throw new IllegalStateException("Lavalink not configured"); }
return client.getOrCreateLink(guildId);
}

View file

@ -21,7 +21,7 @@ public class MusicBotControlHandler {
}
public void handleSkip(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var s = lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler();
if (s.getCurrentTrack() == null) {
send(ch, err("Нечего пропускать."));
@ -33,7 +33,7 @@ public class MusicBotControlHandler {
}
public void handleStop(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
lavalinkManager.getMusicManager(guild.getIdLong()).stop();
guild.getJDA().getDirectAudioController().disconnect(guild);
send(ch, ok(ERR, "⏹ Остановлено", "Музыка остановлена, очередь очищена."));
@ -48,7 +48,7 @@ public class MusicBotControlHandler {
return;
}
var sb = new StringBuilder();
if (cur != null) sb.append("**Сейчас:** ").append(cur.getInfo().getTitle()).append("\n");
if (cur != null) { sb.append("**Сейчас:** ").append(cur.getInfo().getTitle()).append("\n"); }
if (!q.isEmpty()) {
var show = Math.min(q.size(), 10);
for (var i = 0; i < show; i++)
@ -57,7 +57,7 @@ public class MusicBotControlHandler {
.append(".` ")
.append(q.get(i).getInfo().getTitle())
.append("\n");
if (q.size() > show) sb.append("... и ещё **").append(q.size() - show).append("** треков");
if (q.size() > show) { sb.append("... и ещё **").append(q.size() - show).append("** треков"); }
}
send(ch, ok("📜 Очередь", sb.toString()));
}
@ -74,7 +74,7 @@ public class MusicBotControlHandler {
}
public void handleVolume(final MessageChannel ch, final Guild guild, final Member member, final List<String> args) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var link = lavalinkManager.getClient().getLinkIfCached(guild.getIdLong());
if (args.isEmpty()) {
send(
@ -101,14 +101,14 @@ public class MusicBotControlHandler {
}
public void handleLeave(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
lavalinkManager.getMusicManager(guild.getIdLong()).stop();
guild.getJDA().getDirectAudioController().disconnect(guild);
send(ch, ok(ERR, "👋 Отключился", "Вышел из голосового канала."));
}
public void handleRepeat(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var s = lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler();
var now = !s.isRepeating();
s.setRepeating(now);
@ -120,7 +120,7 @@ public class MusicBotControlHandler {
}
public void handleShuffle(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var s = lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler();
if (s.getQueue().isEmpty()) {
send(ch, err("Очередь пуста."));
@ -131,7 +131,7 @@ public class MusicBotControlHandler {
}
public void handleBassboost(final MessageChannel ch, final Guild guild, final Member member, final List<String> args) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var level = 10;
if (!args.isEmpty())
try {
@ -143,7 +143,7 @@ public class MusicBotControlHandler {
}
public void handleNightcore(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var s = lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler();
var now = !s.filterState.isNightcore();
s.setNightcore(now);
@ -151,7 +151,7 @@ public class MusicBotControlHandler {
}
public void handleVaporwave(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
var s = lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler();
var now = !s.filterState.isVaporwave();
s.setVaporwave(now);
@ -159,13 +159,13 @@ public class MusicBotControlHandler {
}
public void handleReset(final MessageChannel ch, final Guild guild, final Member member) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler().resetFilters();
send(ch, ok("🔄 Сброс", "Фильтры сброшены."));
}
public void handleEqualizer(final MessageChannel ch, final Guild guild, final Member member, final List<String> args) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
if (args.size() < 2) {
send(ch, err("Укажи band 0-14 и gain -0.25 до 1.0"));
return;
@ -186,7 +186,7 @@ public class MusicBotControlHandler {
}
private Member reqVoice(final MessageChannel ch, final Member member) {
if (member != null && member.getVoiceState().inAudioChannel()) return member;
if (member != null && member.getVoiceState().inAudioChannel()) { return member; }
send(ch, err("Зайди в голосовой канал сначала."));
return null;
}

View file

@ -25,18 +25,18 @@ public class MusicBotListener extends ListenerAdapter {
@Override
public void onMessageReceived(@NotNull final MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
if (event.getAuthor().isBot()) { return; }
String content = event.getMessage().getContentRaw();
if (!content.startsWith(PREFIX)) return;
if (!content.startsWith(PREFIX)) { return; }
String[] parts = content.substring(PREFIX.length()).trim().split("\\s+");
if (parts.length == 0) return;
if (parts.length == 0) { return; }
String cmd = parts[0].toLowerCase();
List<String> args =
parts.length > 1
? List.of(java.util.Arrays.copyOfRange(parts, 1, parts.length))
: List.of();
Guild guild = event.getGuild();
if (guild == null) return;
if (guild == null) { return; }
MessageChannel ch = event.getChannel();
Member member = event.getMember();

View file

@ -23,7 +23,7 @@ public class MusicBotPlayHandler {
}
public void handlePlay(final MessageChannel ch, final Guild guild, Member member, final List<String> args) {
if (reqVoice(ch, member) == null) return;
if (reqVoice(ch, member) == null) { return; }
if (args.isEmpty()) {
send(ch, err("Укажи URL или запрос: `m!play <название>`"));
return;
@ -45,7 +45,7 @@ public class MusicBotPlayHandler {
@Override
public void onPlaylistLoaded(final PlaylistLoaded r) {
for (Track t : r.getTracks()) m.getScheduler().enqueue(t);
for (Track t : r.getTracks()) { m.getScheduler().enqueue(t); }
send(ch, playlistAdded(r));
}
@ -98,7 +98,7 @@ public class MusicBotPlayHandler {
}
private void connect(final Guild g, final Member m, final LavalinkManager lm) {
if (g.getMember(g.getJDA().getSelfUser()).getVoiceState().inAudioChannel()) return;
if (g.getMember(g.getJDA().getSelfUser()).getVoiceState().inAudioChannel()) { return; }
var vc = m.getVoiceState().getChannel().asVoiceChannel();
g.getJDA().getDirectAudioController().connect(vc);
@ -107,7 +107,7 @@ public class MusicBotPlayHandler {
}
for (int i = 0; i < 10; i++) {
if (g.getMember(g.getJDA().getSelfUser()).getVoiceState().inAudioChannel()) break;
if (g.getMember(g.getJDA().getSelfUser()).getVoiceState().inAudioChannel()) { break; }
try {
Thread.sleep(200);
} catch (InterruptedException e) {
@ -117,7 +117,7 @@ public class MusicBotPlayHandler {
Link link = lm.getOrCreateLink(g.getIdLong());
for (int i = 0; i < 10; i++) {
if (link.getCachedPlayer() != null) return;
if (link.getCachedPlayer() != null) { return; }
try {
Thread.sleep(200);
} catch (InterruptedException e) {
@ -157,7 +157,7 @@ public class MusicBotPlayHandler {
static String fmt(final long ms) {
long s = ms / 1000;
if (s >= 3600) return String.format("%d:%02d:%02d", s / 3600, (s % 3600) / 60, s % 60);
if (s >= 3600) { return String.format("%d:%02d:%02d", s / 3600, (s % 3600) / 60, s % 60); }
return String.format("%d:%02d", s / 60, s % 60);
}
}

View file

@ -27,11 +27,11 @@ public class PlaySelectHandler extends ListenerAdapter {
@Override
public void onStringSelectInteraction(@NotNull final StringSelectInteractionEvent event) {
if (!event.getComponentId().equals("play_select")) return;
if (!event.getComponentId().equals("play_select")) { return; }
var guild = event.getGuild();
var member = event.getMember();
if (guild == null || member == null) return;
if (guild == null || member == null) { return; }
if (!member.getVoiceState().inAudioChannel()) {
event.replyEmbeds(EmbedTemplates.error("Ошибка", "Зайди в голосовой канал сначала."))

View file

@ -41,18 +41,18 @@ public class FilterState {
public FilterState setNightcore(final boolean enabled) {
this.nightcore = enabled;
if (enabled) this.vaporwave = false;
if (enabled) { this.vaporwave = false; }
return this;
}
public FilterState setVaporwave(final boolean enabled) {
this.vaporwave = enabled;
if (enabled) this.nightcore = false;
if (enabled) { this.nightcore = false; }
return this;
}
public FilterState setEqualizerBand(final int band, final float gain) {
if (band < 0 || band > 14) return this;
if (band < 0 || band > 14) { return this; }
customBands.removeIf(b -> b.getBand() == band);
customBands.add(new Band(band, Math.max(-0.25f, Math.min(10.0f, gain))));
return this;

View file

@ -64,7 +64,7 @@ public class GuildMusicManager {
scheduler.stop();
executor.shutdown();
try {
if (!executor.awaitTermination(3, TimeUnit.SECONDS)) executor.shutdownNow();
if (!executor.awaitTermination(3, TimeUnit.SECONDS)) { executor.shutdownNow(); }
} catch (InterruptedException e) {
executor.shutdownNow();
}
@ -112,11 +112,11 @@ public class GuildMusicManager {
}
private void loadQueueAsync() {
if (queueRepository == null) return;
if (queueRepository == null) { return; }
var saved = queueRepository.loadQueue(String.valueOf(guildId));
if (saved.isEmpty()) return;
if (saved.isEmpty()) { return; }
var client = lavalinkManager.getClient();
if (client == null || client.getNodes().isEmpty()) return;
if (client == null || client.getNodes().isEmpty()) { return; }
executor.execute(() -> restoreTracks(saved, client.getNodes().get(0)));
}
@ -125,17 +125,17 @@ public class GuildMusicManager {
for (var qt : saved) {
try {
var track = node.decodeTrack(qt.encoded()).block();
if (track != null) decoded.add(track);
if (track != null) { decoded.add(track); }
} catch (Exception e) {
LoggerDecorator.warn(logger, "Не удалось декодировать: " + qt.title());
}
}
if (decoded.isEmpty()) return;
if (decoded.isEmpty()) { return; }
var q = scheduler.queue;
q.addAll(decoded.subList(1, decoded.size()));
var first = decoded.get(0);
var player = getPlayer().orElse(null);
if (player != null && player.getTrack() == null) scheduler.startTrack(first);
if (player != null && player.getTrack() == null) { scheduler.startTrack(first); }
else q.offer(first);
LoggerDecorator.music(logger, "Восстановлено " + decoded.size() + " треков");
queueRepository.deleteQueue(String.valueOf(guildId));
@ -144,17 +144,17 @@ public class GuildMusicManager {
private ScheduledFuture<?> saveDebounced;
void saveQueueDebounced() {
if (saveDebounced != null && !saveDebounced.isDone()) saveDebounced.cancel(false);
if (saveDebounced != null && !saveDebounced.isDone()) { saveDebounced.cancel(false); }
saveDebounced = executor.schedule(this::saveQueue, 3, TimeUnit.SECONDS);
}
void saveQueue() {
if (queueRepository == null) return;
if (queueRepository == null) { return; }
var current = scheduler.getCurrentTrack();
var tracks = new ArrayList<>(scheduler.getQueue());
var queueTracks = new ArrayList<QueueTrack>();
if (current != null) queueTracks.add(toQueueTrack(current));
for (var t : tracks) queueTracks.add(toQueueTrack(t));
if (current != null) { queueTracks.add(toQueueTrack(current)); }
for (var t : tracks) { queueTracks.add(toQueueTrack(t)); }
queueRepository.saveQueue(String.valueOf(guildId), queueTracks);
}

View file

@ -44,7 +44,7 @@ public class TrackScheduler {
public boolean nextTrack() {
var next = queue.poll();
if (next == null) return false;
if (next == null) { return false; }
startTrack(next);
manager.saveQueueDebounced();
return true;
@ -135,7 +135,7 @@ public class TrackScheduler {
private void nextOrAutoLeave() {
var next = queue.poll();
if (next != null) startTrack(next);
if (next != null) { startTrack(next); }
else manager.startAutoLeaveTimer();
}
}

View file

@ -31,7 +31,7 @@ class TrackStarter {
}
private void startWithRetry(final Link link, final Track track, final int attempt) {
if (attempt > MAX_ATTEMPTS) return;
if (attempt > MAX_ATTEMPTS) { return; }
link.createOrUpdatePlayer()
.setTrack(track)
.setVolume(100)

View file

@ -49,7 +49,7 @@ public class PlayCommand implements Command {
@Override
public void execute(final CommandContext ctx) {
Guild guild = ctx.getGuild();
if (guild == null) return;
if (guild == null) { return; }
Member member = ctx.getAuthor();
if (member == null || !member.getVoiceState().inAudioChannel()) {
sendErr(ctx, "Зайди в голосовой канал сначала.");
@ -65,7 +65,7 @@ public class PlayCommand implements Command {
handlePickResult(ctx, first);
return;
}
if (!resolveVoiceConnection(ctx)) return;
if (!resolveVoiceConnection(ctx)) { return; }
var lm = playerManager.getLavalinkManager();
var mm = lm.getMusicManager(guild.getIdLong());
handlePlayQuery(ctx, args, first, lm, mm);
@ -89,7 +89,7 @@ public class PlayCommand implements Command {
sendErr(ctx, "Поиск устарел. Сделай новый: `!play <запрос>`");
return;
}
if (!resolveVoiceConnection(ctx)) return;
if (!resolveVoiceConnection(ctx)) { return; }
enqueueAndNotify(ctx, t);
}
@ -113,11 +113,11 @@ public class PlayCommand implements Command {
}
private static String buildQuery(final String first, final String raw) {
if (raw.startsWith("http://") || raw.startsWith("https://")) return raw;
if (raw.startsWith("http://") || raw.startsWith("https://")) { return raw; }
if (raw.startsWith("ytsearch:")
|| raw.startsWith("ytmsearch:")
|| raw.startsWith("scsearch:")) return raw;
if ("sc".equals(first)) return "scsearch:" + raw;
if ("sc".equals(first)) { return "scsearch:" + raw; }
return "ytsearch:" + raw;
}

View file

@ -39,7 +39,7 @@ class PlayLoadHandler extends AbstractAudioLoadResultHandler {
@Override
public void ontrackLoaded(final TrackLoaded r) {
if (isUrl) enqueueAndNotify(r.getTrack());
if (isUrl) { enqueueAndNotify(r.getTrack()); }
else showResults(List.of(r.getTrack()));
}
@ -105,7 +105,7 @@ class PlayLoadHandler extends AbstractAudioLoadResultHandler {
}
private void showResults(final List<Track> list) {
if (query == null) return;
if (query == null) { return; }
searchHandler.storeResults(ctx.getGuild().getIdLong(), list);
int show = Math.min(25, list.size());
var builder = StringSelectMenu.create("play_select")
@ -128,8 +128,8 @@ class PlayLoadHandler extends AbstractAudioLoadResultHandler {
}
private static String truncate(String s, final int max) {
if (s == null) return "";
if (s.length() <= max) return s;
if (s == null) { return ""; }
if (s.length() <= max) { return s; }
return s.substring(0, max - 1) + "…";
}
}

View file

@ -52,9 +52,9 @@ public class SearchHandler {
}
public static boolean isNumeric(final String s) {
if (s.isEmpty()) return false;
if (s.isEmpty()) { return false; }
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(s.charAt(i))) return false;
if (!Character.isDigit(s.charAt(i))) { return false; }
}
return true;
}

View file

@ -25,7 +25,7 @@ public class QueueRepository {
public void saveQueue(final String guildId, List<QueueTrack> tracks) {
deleteQueue(guildId);
if (tracks.isEmpty()) return;
if (tracks.isEmpty()) { return; }
String sql =
"INSERT INTO music_queue (guild_id, position, track_encoded, track_title, "

View file

@ -14,10 +14,10 @@ public class FilterSlashHandler {
}
public void handleBassboost(final SlashCommandInteractionEvent event) {
if (reqVoice(event) == null) return;
if (reqVoice(event) == null) { return; }
var manager = getManager(event);
Integer level = event.getOption("level") != null ? event.getOption("level").getAsInt() : null;
if (level == null) level = 10;
if (level == null) { level = 10; }
level = Math.max(-25, Math.min(25, level));
manager.getScheduler().setBassboost(level);
event
@ -26,7 +26,7 @@ public class FilterSlashHandler {
}
public void handleNightcore(final SlashCommandInteractionEvent event) {
if (reqVoice(event) == null) return;
if (reqVoice(event) == null) { return; }
var manager = getManager(event);
boolean now = !manager.getScheduler().filterState.isNightcore();
manager.getScheduler().setNightcore(now);
@ -37,7 +37,7 @@ public class FilterSlashHandler {
}
public void handleVaporwave(final SlashCommandInteractionEvent event) {
if (reqVoice(event) == null) return;
if (reqVoice(event) == null) { return; }
var manager = getManager(event);
boolean now = !manager.getScheduler().filterState.isVaporwave();
manager.getScheduler().setVaporwave(now);
@ -48,7 +48,7 @@ public class FilterSlashHandler {
}
public void handleEqualizer(final SlashCommandInteractionEvent event) {
if (reqVoice(event) == null) return;
if (reqVoice(event) == null) { return; }
var manager = getManager(event);
Integer band = event.getOption("band") != null ? event.getOption("band").getAsInt() : null;
Double gain = event.getOption("gain") != null ? event.getOption("gain").getAsDouble() : null;
@ -73,7 +73,7 @@ public class FilterSlashHandler {
}
public void handleReset(final SlashCommandInteractionEvent event) {
if (reqVoice(event) == null) return;
if (reqVoice(event) == null) { return; }
var manager = getManager(event);
manager.getScheduler().resetFilters();
event.replyEmbeds(EmbedTemplates.info("Сброшено", "Все фильтры сброшены.")).queue();

View file

@ -24,7 +24,7 @@ public class PlaySlashHandler {
public void handle(final SlashCommandInteractionEvent event) {
Member member = requireVoiceChannel(event);
if (member == null) return;
if (member == null) { return; }
String query = event.getOption("query").getAsString();
Guild guild = event.getGuild();
event.deferReply().queue();
@ -122,7 +122,7 @@ public class PlaySlashHandler {
private static Member requireVoiceChannel(final SlashCommandInteractionEvent event) {
Member member = event.getMember();
if (member != null && member.getVoiceState().inAudioChannel()) return member;
if (member != null && member.getVoiceState().inAudioChannel()) { return member; }
event
.replyEmbeds(EmbedTemplates.error("Голосовой канал", "Зайди в голосовой канал сначала."))
.setEphemeral(true)
@ -135,7 +135,7 @@ public class PlaySlashHandler {
long hours = totalSec / 3600;
long minutes = (totalSec % 3600) / 60;
long secs = totalSec % 60;
if (hours > 0) return String.format("%d:%02d:%02d", hours, minutes, secs);
if (hours > 0) { return String.format("%d:%02d:%02d", hours, minutes, secs); }
return String.format("%d:%02d", minutes, secs);
}
}

View file

@ -20,7 +20,7 @@ public class QueueSlashHandler {
}
public void handleStop(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
pm.getMusicManager(ev.getGuild().getIdLong()).stop();
ev.getGuild().getJDA().getDirectAudioController().disconnect(ev.getGuild());
ev.replyEmbeds(EmbedTemplates.info("Остановлено", "Музыка остановлена, очередь очищена."))
@ -28,7 +28,7 @@ public class QueueSlashHandler {
}
public void handleSkip(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
var s = pm.getMusicManager(ev.getGuild().getIdLong()).getScheduler();
if (s.getCurrentTrack() == null) {
ev.replyEmbeds(EmbedTemplates.error("Очередь пуста", "Сейчас ничего не играет.")).queue();
@ -52,7 +52,7 @@ public class QueueSlashHandler {
var ci = cur.getInfo();
eb.addField("Сейчас играет", "**" + ci.getTitle() + "**\n" + ci.getAuthor(), false);
}
if (!q.isEmpty()) eb.addField("В очереди (" + q.size() + ")", buildQueueList(q), false);
if (!q.isEmpty()) { eb.addField("В очереди (" + q.size() + ")", buildQueueList(q), false); }
ev.replyEmbeds(eb.build()).queue();
}
@ -63,7 +63,7 @@ public class QueueSlashHandler {
var t = q.get(i);
sb.append("`").append(i + 1).append(".` **").append(t.getInfo().getTitle()).append("**\n");
}
if (q.size() > show) sb.append("... и ещё **").append(q.size() - show).append("** треков");
if (q.size() > show) { sb.append("... и ещё **").append(q.size() - show).append("** треков"); }
return sb.toString();
}
@ -88,7 +88,7 @@ public class QueueSlashHandler {
}
public void handleVolume(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
var link = pm.getLavalinkManager().getClient().getLinkIfCached(ev.getGuild().getIdLong());
var opt = ev.getOption("percent");
if (opt == null) {
@ -104,7 +104,7 @@ public class QueueSlashHandler {
}
public void handlePause(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
pm.getMusicManager(ev.getGuild().getIdLong())
.getPlayer()
.ifPresent(pl -> pl.setPaused(true).subscribe(null, LOG));
@ -112,7 +112,7 @@ public class QueueSlashHandler {
}
public void handleResume(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
pm.getMusicManager(ev.getGuild().getIdLong())
.getPlayer()
.ifPresent(pl -> pl.setPaused(false).subscribe(null, LOG));
@ -120,13 +120,13 @@ public class QueueSlashHandler {
}
public void handleShuffle(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
pm.getMusicManager(ev.getGuild().getIdLong()).getScheduler().shuffle();
ev.replyEmbeds(EmbedTemplates.info("Перемешано", "Очередь перемешана.")).queue();
}
public void handleRepeat(final SlashCommandInteractionEvent ev) {
if (reqVoice(ev) == null) return;
if (reqVoice(ev) == null) { return; }
var s = pm.getMusicManager(ev.getGuild().getIdLong()).getScheduler();
var now = !s.isRepeating();
s.setRepeating(now);
@ -136,18 +136,18 @@ public class QueueSlashHandler {
private Member reqVoice(final SlashCommandInteractionEvent ev) {
var m = ev.getMember();
if (m != null && m.getVoiceState().inAudioChannel()) return m;
if (m != null && m.getVoiceState().inAudioChannel()) { return m; }
var em = EmbedTemplates.error("Голосовой канал", "Зайди в голосовой канал сначала.");
ev.replyEmbeds(em).setEphemeral(true).queue();
return null;
}
static String progressBar(final long pos, long dur) {
if (dur <= 0) dur = 1;
if (dur <= 0) { dur = 1; }
int total = 20;
int filled = (int) ((double) pos / dur * total);
var bar = new StringBuilder("\u2503");
for (int i = 0; i < total; i++) bar.append(i < filled ? "\u2588" : "\u2591");
for (int i = 0; i < total; i++) { bar.append(i < filled ? "\u2588" : "\u2591"); }
var p = String.format("%d:%02d", pos / 60000, (pos / 1000) % 60);
var d = String.format("%d:%02d", dur / 60000, (dur / 1000) % 60);
return bar + "\u2503 " + p + " / " + d;

View file

@ -47,7 +47,7 @@ public final class RankCardIcons {
double rad = (i % 2 == 0) ? r : inner;
double px = cx + Math.cos(angle) * rad;
double py = cy + Math.sin(angle) * rad;
if (i == 0) star.moveTo(px, py);
if (i == 0) { star.moveTo(px, py); }
else star.lineTo(px, py);
}
star.closePath();

View file

@ -66,7 +66,7 @@ public class RankCardRenderer {
public Font loadFont(final String path, final float size) {
String key = path + "@" + size;
Font cached = FONT_CACHE.get(key);
if (cached != null) return cached;
if (cached != null) { return cached; }
try (final InputStream is = getClass().getClassLoader().getResourceAsStream("assets/" + path)) {
if (is == null) {
Font fallback = new Font("SansSerif", Font.BOLD, (int) size);

View file

@ -42,7 +42,7 @@ public class RadioCommand implements Command {
@Override
public void execute(final CommandContext context) {
Guild guild = context.getGuild();
if (guild == null) return;
if (guild == null) { return; }
List<String> args = context.getArgs();
if (args.isEmpty()) {

View file

@ -26,12 +26,12 @@ public class RadioBotListener extends ListenerAdapter {
@Override
public void onMessageReceived(@NotNull final MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
if (event.getAuthor().isBot()) { return; }
String content = event.getMessage().getContentRaw();
if (!content.startsWith(PREFIX)) return;
if (!content.startsWith(PREFIX)) { return; }
String[] parts = content.substring(PREFIX.length()).trim().split("\\s+");
if (parts.length == 0) return;
if (parts.length == 0) { return; }
String cmd = parts[0].toLowerCase();
List<String> args =
@ -40,7 +40,7 @@ public class RadioBotListener extends ListenerAdapter {
: List.of();
Guild guild = event.getGuild();
if (guild == null) return;
if (guild == null) { return; }
switch (cmd) {
case "play":
@ -76,7 +76,7 @@ public class RadioBotListener extends ListenerAdapter {
private void handlePlay(final MessageReceivedEvent event, final List<String> args) {
Member member = requireVoiceChannel(event);
if (member == null) return;
if (member == null) { return; }
if (args.isEmpty()) {
event.getChannel().sendMessage("❌ Укажи URL радиостанции.").queue();
@ -100,7 +100,7 @@ public class RadioBotListener extends ListenerAdapter {
private void handleStop(final MessageReceivedEvent event) {
Member member = requireVoiceChannel(event);
if (member == null) return;
if (member == null) { return; }
radioManager.stopRadio(event.getGuild().getIdLong());
event.getChannel().sendMessage("⏹️ Радио остановлено.").queue();

View file

@ -43,7 +43,7 @@ public class RadioManager {
radioStates.compute(
guildId,
(id, state) -> {
if (state == null) state = new GuildRadioState();
if (state == null) { state = new GuildRadioState(); }
state.streamUrl = streamUrl;
return state;
});
@ -57,12 +57,12 @@ public class RadioManager {
public void startRadio(final long guildId, final long channelId) {
GuildRadioState state = radioStates.get(guildId);
if (state == null || state.streamUrl == null || state.streamUrl.isBlank()) return;
if (radioJda == null || lavalinkManager == null) return;
if (state == null || state.streamUrl == null || state.streamUrl.isBlank()) { return; }
if (radioJda == null || lavalinkManager == null) { return; }
String url = state.streamUrl;
int vol = state.volume;
if (state.musicManager != null) stopRadio(guildId);
if (state.musicManager != null) { stopRadio(guildId); }
GuildRadioState finalState = radioStates.computeIfAbsent(guildId, id -> new GuildRadioState());
finalState.streamUrl = url;
@ -100,7 +100,7 @@ public class RadioManager {
new AbstractAudioLoadResultHandler() {
@Override
public void ontrackLoaded(final TrackLoaded r) {
if (vol != 100) link.createOrUpdatePlayer().setVolume(vol).subscribe();
if (vol != 100) { link.createOrUpdatePlayer().setVolume(vol).subscribe(); }
mm.getScheduler().enqueue(r.getTrack());
LoggerDecorator.music(logger, "Radio started in guild " + guildId);
}
@ -108,7 +108,7 @@ public class RadioManager {
@Override
public void onPlaylistLoaded(final dev.arbjerg.lavalink.client.player.PlaylistLoaded r) {
if (!r.getTracks().isEmpty()) {
if (vol != 100) link.createOrUpdatePlayer().setVolume(vol).subscribe();
if (vol != 100) { link.createOrUpdatePlayer().setVolume(vol).subscribe(); }
mm.getScheduler().enqueue(r.getTracks().get(0));
LoggerDecorator.music(logger, "Radio started in guild " + guildId);
}
@ -117,7 +117,7 @@ public class RadioManager {
@Override
public void onSearchResultLoaded(final dev.arbjerg.lavalink.client.player.SearchResult r) {
if (!r.getTracks().isEmpty()) {
if (vol != 100) link.createOrUpdatePlayer().setVolume(vol).subscribe();
if (vol != 100) { link.createOrUpdatePlayer().setVolume(vol).subscribe(); }
mm.getScheduler().enqueue(r.getTracks().get(0));
LoggerDecorator.music(logger, "Radio started in guild " + guildId);
}
@ -142,18 +142,18 @@ public class RadioManager {
public void stopRadio(final long guildId) {
GuildRadioState state = radioStates.remove(guildId);
if (state == null) return;
if (state == null) { return; }
if (state.musicManager != null) {
state.musicManager.stop();
state.musicManager.destroy();
}
if (lavalinkManager != null) {
Link link = lavalinkManager.getClient().getLinkIfCached(guildId);
if (link != null) link.destroy().subscribe();
if (link != null) { link.destroy().subscribe(); }
}
if (radioJda != null) {
Guild guild = radioJda.getGuildById(guildId);
if (guild != null) guild.getAudioManager().closeAudioConnection();
if (guild != null) { guild.getAudioManager().closeAudioConnection(); }
}
LoggerDecorator.music(logger, "Radio stopped for guild " + guildId);
}
@ -178,7 +178,7 @@ public class RadioManager {
public void setVolume(final long guildId, int volume) {
GuildRadioState state = radioStates.get(guildId);
if (state == null) return;
if (state == null) { return; }
state.volume = Math.max(0, Math.min(100, volume));
if (lavalinkManager != null) {
var link = lavalinkManager.getClient().getLinkIfCached(guildId);

View file

@ -26,15 +26,15 @@ public class ReactionRoleListener extends ListenerAdapter {
@Override
public void onMessageReactionAdd(@NotNull final MessageReactionAddEvent event) {
if (event.getUser() == null || event.getUser().isBot()) return;
if (event.getGuild() == null) return;
if (event.getUser() == null || event.getUser().isBot()) { return; }
if (event.getGuild() == null) { return; }
var emoji = event.getEmoji().getAsReactionCode();
var messageId = event.getMessageId();
var bindings = repository.findByMessage(messageId);
var binding = bindings.stream().filter(b -> b.emoji().equals(emoji)).findFirst();
if (binding.isEmpty()) return;
if (binding.isEmpty()) { return; }
var role = event.getGuild().getRoleById(binding.get().roleId());
if (role == null) {
@ -43,7 +43,7 @@ public class ReactionRoleListener extends ListenerAdapter {
}
var member = event.getMember();
if (member == null) return;
if (member == null) { return; }
event.getGuild().addRoleToMember(member, role).queue(
ok -> {},
@ -53,15 +53,15 @@ public class ReactionRoleListener extends ListenerAdapter {
@Override
public void onMessageReactionRemove(@NotNull final MessageReactionRemoveEvent event) {
if (event.getUser() == null || event.getUser().isBot()) return;
if (event.getGuild() == null) return;
if (event.getUser() == null || event.getUser().isBot()) { return; }
if (event.getGuild() == null) { return; }
var emoji = event.getEmoji().getAsReactionCode();
var messageId = event.getMessageId();
var bindings = repository.findByMessage(messageId);
var binding = bindings.stream().filter(b -> b.emoji().equals(emoji)).findFirst();
if (binding.isEmpty()) return;
if (binding.isEmpty()) { return; }
var role = event.getGuild().getRoleById(binding.get().roleId());
if (role == null) {

View file

@ -23,7 +23,7 @@ public class AgrSlashCommands extends ListenerAdapter {
@Override
public void onSlashCommandInteraction(@NotNull final SlashCommandInteractionEvent event) {
if (!event.getName().equals("agr")) return;
if (!event.getName().equals("agr")) { return; }
if (!config.getSuperAdminId().equals(event.getUser().getId())) {
event

View file

@ -32,7 +32,7 @@ public class AiSessionManager {
public List<CachedMessage> getContext(final String channelId, final int maxMsgs) {
AiSession session = sessions.get(channelId);
if (session == null) return List.of();
if (session == null) { return List.of(); }
return session.getContext(maxMsgs);
}

View file

@ -45,7 +45,7 @@ public class AndrertListener extends ListenerAdapter {
@Override
public void onMessageReceived(@NotNull final MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
if (event.getAuthor().isBot()) { return; }
String userId = event.getAuthor().getId();
String channelId = event.getChannel().getId();
@ -55,7 +55,7 @@ public class AndrertListener extends ListenerAdapter {
if (lastReply != null) {
lastAiReplyTime.put(key, -1L);
ScheduledFuture<?> existing = pendingPings.remove(key);
if (existing != null) existing.cancel(false);
if (existing != null) { existing.cancel(false); }
}
boolean isAllowedChannel =
@ -65,14 +65,14 @@ public class AndrertListener extends ListenerAdapter {
if (!isAllowedChannel) {
Long expiresAt = trackedUsers.get(userId);
if (expiresAt == null) return;
if (expiresAt == null) { return; }
long now = System.currentTimeMillis();
if (now > expiresAt) {
trackedUsers.remove(userId);
return;
}
String content = event.getMessage().getContentRaw().strip();
if (content.length() < 2 && event.getMessage().getAttachments().isEmpty()) return;
if (content.length() < 2 && event.getMessage().getAttachments().isEmpty()) { return; }
trackedUsers.put(userId, now + TRACK_TTL);
}
@ -107,7 +107,7 @@ public class AndrertListener extends ListenerAdapter {
sessionManager.getContext(event.getChannel().getId(), CHANNEL_CONTEXT);
String response = roastService.generateResponse(context, targetName, userId);
if (response == null || response.isBlank()) return;
if (response == null || response.isBlank()) { return; }
sendInParts(event, response);
scheduleAutoPing(event, userId);
@ -120,7 +120,7 @@ public class AndrertListener extends ListenerAdapter {
lastAiReplyTime.put(key, now);
ScheduledFuture<?> existing = pendingPings.remove(key);
if (existing != null) existing.cancel(false);
if (existing != null) { existing.cancel(false); }
TextChannel channel = event.getChannel().asTextChannel();
String targetMention = "<@" + userId + ">";
@ -129,7 +129,7 @@ public class AndrertListener extends ListenerAdapter {
scheduler.schedule(
() -> {
Long lastReply = lastAiReplyTime.get(key);
if (lastReply == null || lastReply != now) return;
if (lastReply == null || lastReply != now) { return; }
if (channel.canTalk()) {
channel
.getHistory()
@ -142,7 +142,7 @@ public class AndrertListener extends ListenerAdapter {
m ->
m.getAuthor().getId().equals(userId)
&& m.getTimeCreated().toEpochSecond() * 1000 > now);
if (userReplied) return;
if (userReplied) { return; }
String[] lines = {
"эй " + targetMention + ", ты чё замолчал? я не закончил",
@ -163,7 +163,7 @@ public class AndrertListener extends ListenerAdapter {
sessionManager.clear(channelId);
for (int i = hist.size() - 1; i >= 0; i--) {
Message m = hist.get(i);
if (m.getAuthor().isBot()) continue;
if (m.getAuthor().isBot()) { continue; }
String a = m.getAuthor().getEffectiveName();
String c =
m.getContentRaw() + replyInfo(m) + attachmentInfo(m);
@ -206,7 +206,7 @@ public class AndrertListener extends ListenerAdapter {
int end = Math.min(start + 1990, text.length());
if (end < text.length()) {
int nl = text.lastIndexOf('\n', end);
if (nl > start) end = nl;
if (nl > start) { end = nl; }
}
parts.add(text.substring(start, end).strip());
start = end;
@ -222,10 +222,10 @@ public class AndrertListener extends ListenerAdapter {
private String replyInfo(final Message msg) {
Message ref = msg.getReferencedMessage();
if (ref == null) return "";
if (ref == null) { return ""; }
String refAuthor = ref.getAuthor().isBot() ? "бот" : ref.getAuthor().getEffectiveName();
String refText = ref.getContentRaw().replace("\n", " ").strip();
if (refText.length() > 80) refText = refText.substring(0, 80) + "...";
if (refText.length() > 80) { refText = refText.substring(0, 80) + "..."; }
return " (в ответ на @" + refAuthor + ": \"" + refText + "\")";
}

View file

@ -131,13 +131,13 @@ public class ContentFetcher {
urls.add(url);
}
}
if (urls.isEmpty()) return null;
if (urls.isEmpty()) { return null; }
StringBuilder result = new StringBuilder();
for (String url : urls) {
String content = parseSingleUrl(url);
if (content != null) {
if (result.length() + content.length() > MAX_FETCH_CHARS) break;
if (result.length() + content.length() > MAX_FETCH_CHARS) { break; }
result.append(content).append("\n---\n");
}
}
@ -168,21 +168,21 @@ public class ContentFetcher {
org.jsoup.select.Elements lines = doc.select(".blob-wrapper .highlight .blob-code");
if (lines.isEmpty()) {
org.jsoup.select.Elements raw = doc.select(".blob-wrapper table td:last-child");
if (!raw.isEmpty()) lines = raw;
if (!raw.isEmpty()) { lines = raw; }
}
if (lines.isEmpty()) {
org.jsoup.select.Elements code = doc.select("table.highlight tr td:last-child");
if (!code.isEmpty()) lines = code;
if (!code.isEmpty()) { lines = code; }
}
if (!lines.isEmpty()) {
sb.append("[код файла]:\n");
for (var line : lines) {
String l = line.text().strip();
if (!l.isBlank()) sb.append(l).append("\n");
if (!l.isBlank()) { sb.append(l).append("\n"); }
}
} else {
String fallback = extractMainContent(doc);
if (fallback != null) sb.append(fallback);
if (fallback != null) { sb.append(fallback); }
}
} else if (url.matches(".*github\\.com/[^/]+/[^/]+/issues/\\d+.*")
|| url.matches(".*github\\.com/[^/]+/[^/]+/pull/\\d+.*")) {
@ -193,14 +193,14 @@ public class ContentFetcher {
org.jsoup.select.Elements body = doc.select(".comment-body, .edit-comment-hide");
if (!body.isEmpty()) {
sb.append("[описание]:\n");
for (var el : body) sb.append(el.text()).append("\n");
for (var el : body) { sb.append(el.text()).append("\n"); }
}
org.jsoup.select.Elements comments = doc.select(".comment .comment-body");
if (!comments.isEmpty()) {
sb.append("[комментарии]:\n");
int count = 0;
for (var el : comments) {
if (count >= 5) break;
if (count >= 5) { break; }
String t = el.text().strip();
if (!t.isBlank()) {
sb.append("- ").append(t).append("\n");
@ -214,7 +214,7 @@ public class ContentFetcher {
sb.append("[README]:\n").append(readme.first().text());
} else {
String fallback = extractMainContent(doc);
if (fallback != null) sb.append(fallback);
if (fallback != null) { sb.append(fallback); }
}
org.jsoup.select.Elements repoName = doc.select("strong[itemprop=name], .repohead h1");
if (!repoName.isEmpty() && sb.isEmpty()) {
@ -268,29 +268,29 @@ public class ContentFetcher {
var el = doc.selectFirst(sel);
if (el != null) {
String text = el.text().strip();
if (!text.isBlank()) return text;
if (!text.isBlank()) { return text; }
}
}
String body = doc.body() != null ? doc.body().text().strip() : "";
if (!body.isBlank()) return body;
if (!body.isBlank()) { return body; }
return null;
}
private boolean isTextExtension(final String url) {
String lower = url.toLowerCase();
int idx = lower.lastIndexOf('.');
if (idx < 0) return false;
if (idx < 0) { return false; }
String ext = lower.substring(idx);
if (ext.contains("?")) ext = ext.substring(0, ext.indexOf('?'));
if (ext.contains("?")) { ext = ext.substring(0, ext.indexOf('?')); }
return TEXT_EXTENSIONS.contains(ext);
}
private boolean isMediaExtension(final String url) {
String lower = url.toLowerCase();
int idx = lower.lastIndexOf('.');
if (idx < 0) return false;
if (idx < 0) { return false; }
String ext = lower.substring(idx);
if (ext.contains("?")) ext = ext.substring(0, ext.indexOf('?'));
if (ext.contains("?")) { ext = ext.substring(0, ext.indexOf('?')); }
return MEDIA_EXTENSIONS.contains(ext);
}
}

View file

@ -23,12 +23,12 @@ public class DebateChannelListener extends ListenerAdapter {
@Override
public void onMessageReceived(@NotNull final MessageReceivedEvent event) {
if (event.getAuthor().isBot()) return;
if (event.getAuthor().isBot()) { return; }
String msgId = event.getMessage().getId();
long now = System.currentTimeMillis();
Long prev = seenMessages.put(msgId, now);
if (prev != null) return;
if (prev != null) { return; }
seenMessages.entrySet().removeIf(e -> now - e.getValue() > 5000);
logger.info(

View file

@ -85,9 +85,9 @@ public class DebateService {
public void onHumanMessage(final MessageReceivedEvent event) {
String debateId = config.getAiDebateChannelId();
if (debateId == null || debateId.isBlank()) return;
if (!event.getChannel().getId().equals(debateId)) return;
if (event.getAuthor().isBot()) return;
if (debateId == null || debateId.isBlank()) { return; }
if (!event.getChannel().getId().equals(debateId)) { return; }
if (event.getAuthor().isBot()) { return; }
if (event.getMessage().getContentRaw().isBlank()
&& event.getMessage().getAttachments().isEmpty()) return;
@ -105,7 +105,7 @@ public class DebateService {
private void doRound(final TextChannel channel, final ChannelState state) {
String debateId = channel.getId();
long now = System.currentTimeMillis();
if (now - state.lastHumanTime > 300_000 || state.roundDone) return;
if (now - state.lastHumanTime > 300_000 || state.roundDone) { return; }
state.cancel();
state.roundDone = true;
@ -133,19 +133,19 @@ public class DebateService {
List<CachedMessage> ctx = buildContext(messages);
if (state.roundCount >= MAX_ROUNDS) return;
if (state.roundCount >= MAX_ROUNDS) { return; }
state.roundCount++;
String personality = pickPersonality(state.lastPersonality);
if (personality == null) return;
if (personality == null) { return; }
state.lastPersonality = personality;
String response = generateResponse(personality, ctx);
if (response == null || response.isBlank()) return;
if (response == null || response.isBlank()) { return; }
JDA jda = jdaRegistry.getByPersonality(personality);
TextChannel target = jda.getTextChannelById(debateId);
if (target == null) return;
if (target == null) { return; }
String replyToId = state.lastMessageId;
target
.sendMessage(response)
@ -164,7 +164,7 @@ public class DebateService {
}
private String pickPersonality(String exclude) {
if (exclude == null) return PERSONALITIES[0];
if (exclude == null) { return PERSONALITIES[0]; }
for (int i = 0; i < PERSONALITIES.length; i++) {
if (PERSONALITIES[i].equals(exclude)) {
return PERSONALITIES[(i + 1) % PERSONALITIES.length];
@ -194,7 +194,7 @@ public class DebateService {
otherNames = "шинд и генту";
}
}
if (prompt.isBlank()) return null;
if (prompt.isBlank()) { return null; }
prompt += "\n\nты " + selfName + ". два других ai в чате это " + otherNames;
@ -214,19 +214,19 @@ public class DebateService {
StringBuilder userContent = new StringBuilder();
for (CachedMessage m : ctx) {
String t = m.content();
if (t.length() > config.getAiMsgLength()) t = t.substring(0, config.getAiMsgLength()) + "...";
if (t.length() > config.getAiMsgLength()) { t = t.substring(0, config.getAiMsgLength()) + "..."; }
userContent.append("[").append(m.channelName()).append("] ").append(t).append("\n");
if (userContent.length() > config.getAiContextChars()) break;
if (userContent.length() > config.getAiContextChars()) { break; }
}
String text = userContent.toString().strip();
if (text.length() > config.getAiContextChars())
text = text.substring(0, config.getAiContextChars());
String wiki = wikipediaService.search(text);
if (wiki != null) text += "\n\n[википедия]:\n" + wiki;
if (wiki != null) { text += "\n\n[википедия]:\n" + wiki; }
String knowledge = knowledgeService.search(text);
if (knowledge != null) text += "\n\n[знания]:\n" + knowledge;
if (knowledge != null) { text += "\n\n[знания]:\n" + knowledge; }
return deepSeekClient.callModel(prompt, text, 0.9);
}
@ -242,9 +242,9 @@ public class DebateService {
String name;
if (msg.getAuthor().isBot()) {
String id = msg.getAuthor().getId();
if (id.equals(archId)) name = "арч";
else if (id.equals(winId)) name = "шинд";
else if (id.equals(gentooId)) name = "генту";
if (id.equals(archId)) { name = "арч"; }
else if (id.equals(winId)) { name = "шинд"; }
else if (id.equals(gentooId)) { name = "генту"; }
else name = "бот";
} else {
name = msg.getAuthor().getEffectiveName();

View file

@ -43,7 +43,7 @@ public class DeepSeekClient {
}
public String callModel(final String systemPrompt, final String userContent, final double temperature) {
if (apiKey == null || apiKey.isBlank()) return null;
if (apiKey == null || apiKey.isBlank()) { return null; }
JsonObject body = new JsonObject();
body.addProperty("model", MODEL);
@ -78,7 +78,7 @@ public class DeepSeekClient {
}
return null;
}
if (resp.body() == null) return null;
if (resp.body() == null) { return null; }
String respBody = resp.body().string();
JsonObject jsonResp = JsonParser.parseString(respBody).getAsJsonObject();
JsonObject msg =

View file

@ -50,7 +50,7 @@ public class DossierManager {
logger.warn("Failed to load dossier {}", p, e);
}
});
if (!dossiers.isEmpty()) logger.info("Loaded {} dossiers", dossiers.size());
if (!dossiers.isEmpty()) { logger.info("Loaded {} dossiers", dossiers.size()); }
} catch (IOException e) {
logger.warn("Failed to list dossiers dir", e);
}

View file

@ -51,14 +51,14 @@ public class HelperListener extends ListenerAdapter {
@Override
public void onMessageReceived(@NotNull final MessageReceivedEvent event) {
String channelId = config.getAiDebateChannelId();
if (channelId == null || channelId.isBlank()) return;
if (!event.getChannel().getId().equals(channelId)) return;
if (event.getAuthor().isBot()) return;
if (channelId == null || channelId.isBlank()) { return; }
if (!event.getChannel().getId().equals(channelId)) { return; }
if (event.getAuthor().isBot()) { return; }
if (event.getMessage().getContentRaw().isBlank()
&& event.getMessage().getAttachments().isEmpty()) return;
String raw = event.getMessage().getContentRaw();
if (!raw.isBlank() && !LanguageFilter.isAllowed(raw)) return;
if (!raw.isBlank() && !LanguageFilter.isAllowed(raw)) { return; }
respond(event);
}
@ -100,7 +100,7 @@ public class HelperListener extends ListenerAdapter {
String response =
roastService.generateResponse(context, targetName, null, helperPrompt);
if (response == null || response.isBlank()) return;
if (response == null || response.isBlank()) { return; }
sendReply(event, response);
});
@ -150,7 +150,7 @@ public class HelperListener extends ListenerAdapter {
int end = Math.min(start + 1990, text.length());
if (end < text.length()) {
int nl = text.lastIndexOf('\n', end);
if (nl > start) end = nl;
if (nl > start) { end = nl; }
}
parts.add(text.substring(start, end).strip());
start = end;

View file

@ -68,10 +68,10 @@ public class KnowledgeService {
}
public String search(String text) {
if (text == null || text.isBlank() || files.isEmpty()) return null;
if (text == null || text.isBlank() || files.isEmpty()) { return null; }
String[] words = extractKeywords(text);
if (words.length == 0) return null;
if (words.length == 0) { return null; }
List<ScoredResult> results = new ArrayList<>();
for (KnowledgeFile file : files) {
@ -83,14 +83,14 @@ public class KnowledgeService {
}
results.sort((a, b) -> Integer.compare(b.score, a.score));
if (results.isEmpty()) return null;
if (results.isEmpty()) { return null; }
StringBuilder sb = new StringBuilder();
int count = 0;
for (ScoredResult r : results) {
if (count >= RESULT_LIMIT) break;
if (sb.length() + r.snippet.length() > MAX_CHARS) break;
if (count > 0) sb.append("\n---\n");
if (count >= RESULT_LIMIT) { break; }
if (sb.length() + r.snippet.length() > MAX_CHARS) { break; }
if (count > 0) { sb.append("\n---\n"); }
sb.append("[").append(r.fileName).append("] ").append(r.snippet);
count++;
}
@ -133,7 +133,7 @@ public class KnowledgeService {
for (String kw : keywords) {
int idx = lower.indexOf(kw);
if (idx == -1) continue;
if (idx == -1) { continue; }
int count = countInWindow(lower, idx, 500, keywords);
if (count > bestCount) {
bestCount = count;

View file

@ -15,7 +15,7 @@ public class LanguageFilter {
.replaceAll("https?://\\S+", "")
.replaceAll("[\\p{So}]", "")
.strip();
if (clean.isBlank()) return true;
if (clean.isBlank()) { return true; }
int[] cps = clean.codePoints().toArray();
@ -24,7 +24,7 @@ public class LanguageFilter {
long otherScript = 0;
for (int cp : cps) {
if (Character.isWhitespace(cp) || Character.isDigit(cp) || cp == '_') continue;
if (Character.isWhitespace(cp) || Character.isDigit(cp) || cp == '_') { continue; }
var script = Character.UnicodeScript.of(cp);
if (script == Character.UnicodeScript.CYRILLIC) {
cyrillic++;
@ -36,10 +36,10 @@ public class LanguageFilter {
}
}
if (otherScript > 0) return false;
if (cyrillic > latin && cyrillic > 0) return true;
if (otherScript > 0) { return false; }
if (cyrillic > latin && cyrillic > 0) { return true; }
if (cyrillic > 0) return true;
if (cyrillic > 0) { return true; }
String latinText =
clean
@ -53,8 +53,8 @@ public class LanguageFilter {
.collect(Collectors.joining());
for (int cp : latinText.codePoints().toArray()) {
if (POLISH_CHARS.contains(cp)) return true;
if (LITHUANIAN_CHARS.contains(cp)) return true;
if (POLISH_CHARS.contains(cp)) { return true; }
if (LITHUANIAN_CHARS.contains(cp)) { return true; }
}
boolean onlyBasicLatin =

View file

@ -150,7 +150,7 @@ public class RoastService {
text = text.substring(0, config.getAiMsgLength()) + "...";
}
userContent.append("[").append(m.channelName()).append("] ").append(text).append("\n");
if (userContent.length() > config.getAiContextChars()) break;
if (userContent.length() > config.getAiContextChars()) { break; }
}
String text = userContent.toString().strip();
if (text.length() > config.getAiContextChars()) {
@ -202,7 +202,7 @@ public class RoastService {
text = text.substring(0, config.getAiMsgLength()) + "...";
}
userContent.append("[").append(m.channelName()).append("] ").append(text).append("\n");
if (userContent.length() > config.getAiContextChars()) break;
if (userContent.length() > config.getAiContextChars()) { break; }
}
String text = userContent.toString().strip();
if (text.length() > config.getAiContextChars()) {

View file

@ -34,10 +34,10 @@ public class WebSearchService {
}
public String search(String query) {
if (query == null || query.isBlank()) return null;
if (query == null || query.isBlank()) { return null; }
try {
List<SearchResult> results = searchDdg(query);
if (results.isEmpty()) return null;
if (results.isEmpty()) { return null; }
StringBuilder sb = new StringBuilder();
for (int i = 0; i < Math.min(results.size(), 3); i++) {
@ -78,11 +78,11 @@ public class WebSearchService {
.get()
.build();
try (final Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) return results;
if (!resp.isSuccessful() || resp.body() == null) { return results; }
String html = resp.body().string();
Document doc = Jsoup.parse(html);
for (Element a : doc.select("a.result__a")) {
if (results.size() >= 5) break;
if (results.size() >= 5) { break; }
String title = a.text().strip();
String href = a.attr("href");
String realUrl = extractUrl(href);
@ -101,13 +101,13 @@ public class WebSearchService {
}
private String extractUrl(String ddgUrl) {
if (ddgUrl == null || ddgUrl.isBlank()) return "";
if (ddgUrl.startsWith("//")) ddgUrl = "https:" + ddgUrl;
if (ddgUrl == null || ddgUrl.isBlank()) { return ""; }
if (ddgUrl.startsWith("//")) { ddgUrl = "https:" + ddgUrl; }
try {
if (ddgUrl.contains("uddg=")) {
String enc = ddgUrl.substring(ddgUrl.indexOf("uddg=") + 5);
int amp = enc.indexOf('&');
if (amp > 0) enc = enc.substring(0, amp);
if (amp > 0) { enc = enc.substring(0, amp); }
return URLDecoder.decode(enc, StandardCharsets.UTF_8);
}
} catch (Exception ignored) {
@ -126,7 +126,7 @@ public class WebSearchService {
.get()
.build();
try (final Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) return null;
if (!resp.isSuccessful() || resp.body() == null) { return null; }
String html = resp.body().string();
Document doc = Jsoup.parse(html);
Element main =
@ -140,7 +140,7 @@ public class WebSearchService {
doc.select("script, style, nav, footer, header, .sidebar, aside").remove();
text = doc.body().text().strip();
}
if (text.length() > 2000) text = text.substring(0, 2000) + "...";
if (text.length() > 2000) { text = text.substring(0, 2000) + "..."; }
return text.isEmpty() ? null : text;
}
} catch (Exception e) {

View file

@ -34,15 +34,15 @@ public class WikipediaService {
}
public String search(String query) {
if (query == null || query.isBlank()) return null;
if (query == null || query.isBlank()) { return null; }
try {
String url = String.format(SEARCH_URL, URLEncoder.encode(query, StandardCharsets.UTF_8));
Request req = new Request.Builder().url(url).get().build();
try (final Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) return null;
if (!resp.isSuccessful() || resp.body() == null) { return null; }
JsonObject json = JsonParser.parseString(resp.body().string()).getAsJsonObject();
JsonArray results = json.getAsJsonObject("query").getAsJsonArray("search");
if (results == null || results.size() == 0) return null;
if (results == null || results.size() == 0) { return null; }
StringBuilder sb = new StringBuilder();
for (int i = 0; i < Math.min(results.size(), 3); i++) {
@ -77,14 +77,14 @@ public class WikipediaService {
String url = String.format(EXTRACT_URL, URLEncoder.encode(title, StandardCharsets.UTF_8));
Request req = new Request.Builder().url(url).get().build();
try (final Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) return null;
if (!resp.isSuccessful() || resp.body() == null) { return null; }
JsonObject json = JsonParser.parseString(resp.body().string()).getAsJsonObject();
JsonObject pages = json.getAsJsonObject("query").getAsJsonObject("pages");
for (var key : pages.keySet()) {
JsonObject page = pages.getAsJsonObject(key);
if (page.has("extract") && !page.get("extract").isJsonNull()) {
String ext = page.get("extract").getAsString().strip();
if (ext.length() > 800) ext = ext.substring(0, 800) + "...";
if (ext.length() > 800) { ext = ext.substring(0, 800) + "..."; }
return ext;
}
}

View file

@ -41,9 +41,9 @@ public class CreateRoleCommand implements Command {
@Override
public void execute(final CommandContext context) {
if (!RoleCommandValidator.validateGuild(context)) return;
if (!RoleCommandValidator.validateGuild(context)) { return; }
Guild guild = context.getGuild();
if (!RoleCommandValidator.validateBotPermissions(guild, context)) return;
if (!RoleCommandValidator.validateBotPermissions(guild, context)) { return; }
if (!RoleCommandValidator.validateArgumentCount(
context,
2,
@ -52,10 +52,10 @@ public class CreateRoleCommand implements Command {
}
RoleData roleData = parseRoleData(context);
if (!RoleValidators.validateRoleName(roleData.name, guild, context)) return;
if (!RoleValidators.validateRoleName(roleData.name, guild, context)) { return; }
Color color = RoleValidators.parseColor(roleData.colorArg, context);
if (color == null) return;
if (color == null) { return; }
if (!RoleValidators.checkUserLimit(
guild.getId(), context.getAuthor().getId(), roleManager, context)) {

View file

@ -141,7 +141,7 @@ public class ServerStatsService {
}
private static String escapeCsv(String value) {
if (value == null) return "";
if (value == null) { return ""; }
if (value.contains(",") || value.contains("\"") || value.contains("\n")) {
return "\"" + value.replace("\"", "\"\"") + "\"";
}

View file

@ -97,16 +97,16 @@ public class ShipCommand implements Command {
}
private String generateMessage(final int percentage) {
if (percentage >= 90) return "Идеальная пара! 💑";
if (percentage >= 70) return "Отличная совместимость! 💕";
if (percentage >= 50) return "Неплохие шансы! 💖";
if (percentage >= 30) return "Есть потенциал... 💔";
if (percentage >= 90) { return "Идеальная пара! 💑"; }
if (percentage >= 70) { return "Отличная совместимость! 💕"; }
if (percentage >= 50) { return "Неплохие шансы! 💖"; }
if (percentage >= 30) { return "Есть потенциал... 💔"; }
return "Лучше остаться друзьями 💀";
}
private Color getColorByPercentage(final int percentage) {
if (percentage >= 70) return new Color(255, 105, 180); // Розовый
if (percentage >= 40) return new Color(255, 182, 193); // Светло-розовый
if (percentage >= 70) { return new Color(255, 105, 180); } // Розовый
if (percentage >= 40) { return new Color(255, 182, 193); } // Светло-розовый
return new Color(128, 128, 128); // Серый
}
}

View file

@ -32,7 +32,7 @@ public class TicketListener extends ListenerAdapter {
@Override
public void onButtonInteraction(final ButtonInteractionEvent event) {
String buttonId = event.getComponentId();
if (!buttonId.startsWith("ticket_")) return;
if (!buttonId.startsWith("ticket_")) { return; }
switch (buttonId) {
case "ticket_create" -> handleCreate(event);
@ -44,10 +44,10 @@ public class TicketListener extends ListenerAdapter {
private void handleCreate(final ButtonInteractionEvent event) {
Guild guild = event.getGuild();
if (guild == null) return;
if (guild == null) { return; }
Member member = event.getMember();
if (member == null) return;
if (member == null) { return; }
String username = member.getUser().getName();
String channelName = "ticket-" + username;
@ -89,10 +89,10 @@ public class TicketListener extends ListenerAdapter {
private void handleClose(final ButtonInteractionEvent event) {
Guild guild = event.getGuild();
if (guild == null) return;
if (guild == null) { return; }
Member member = event.getMember();
if (member == null) return;
if (member == null) { return; }
TextChannel channel = event.getChannel().asTextChannel();
Ticket ticket = ticketRepository.findByChannel(channel.getId());

View file

@ -158,7 +158,7 @@ public class TikTokCommand implements Command {
}
private String truncate(String str, final int maxLen) {
if (str == null) return "";
if (str == null) { return ""; }
return str.length() > maxLen ? str.substring(0, maxLen - 3) + "..." : str;
}
}

View file

@ -15,7 +15,7 @@ public final class VoiceHelper {
public static boolean waitForCondition(final BooleanSupplier condition) {
for (int i = 0; i < RETRIES; i++) {
if (condition.getAsBoolean()) return true;
if (condition.getAsBoolean()) { return true; }
try {
Thread.sleep(DELAY_MS);
} catch (InterruptedException e) {
@ -30,7 +30,7 @@ public final class VoiceHelper {
long deadline = System.nanoTime() + unit.toNanos(timeout);
long delay = Math.min(DELAY_MS, unit.toMillis(timeout) / RETRIES);
while (System.nanoTime() < deadline) {
if (condition.getAsBoolean()) return true;
if (condition.getAsBoolean()) { return true; }
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
@ -47,13 +47,13 @@ public final class VoiceHelper {
* @return true если подключение успешно, false если не удалось
*/
public static boolean connectForPlayback(final Guild guild, final Member member, final LavalinkManager lm) {
if (guild.getSelfMember().getVoiceState().inAudioChannel()) return true;
if (guild.getSelfMember().getVoiceState().inAudioChannel()) { return true; }
var vc = member.getVoiceState().getChannel().asVoiceChannel();
guild.getJDA().getDirectAudioController().connect(vc);
if (!guild.getAudioManager().isConnected()) guild.getAudioManager().openAudioConnection(vc);
if (!guild.getAudioManager().isConnected()) { guild.getAudioManager().openAudioConnection(vc); }
var self = guild.getSelfMember();
waitForCondition(() -> self.getVoiceState().inAudioChannel());
if (!self.getVoiceState().inAudioChannel()) return false;
if (!self.getVoiceState().inAudioChannel()) { return false; }
var link = lm.getOrCreateLink(guild.getIdLong());
waitForCondition(() -> link.getCachedPlayer() != null);
return link.getCachedPlayer() != null;

View file

@ -29,10 +29,10 @@ public class VoiceButtonHandler extends ListenerAdapter {
@Override
public void onButtonInteraction(final ButtonInteractionEvent event) {
String buttonId = event.getComponentId();
if (!buttonId.startsWith("voice_")) return;
if (!buttonId.startsWith("voice_")) { return; }
String[] parts = buttonId.split(":");
if (parts.length != 2) return;
if (parts.length != 2) { return; }
String action = parts[0].replace("voice_", "");
String channelId = parts[1];
@ -154,7 +154,7 @@ public class VoiceButtonHandler extends ListenerAdapter {
}
private boolean isOwnerOrAdmin(final Member member, final String channelId) {
if (member.hasPermission(Permission.ADMINISTRATOR)) return true;
if (member.hasPermission(Permission.ADMINISTRATOR)) { return true; }
var channelData = voiceManager.getChannelData(channelId);
return channelData != null && channelData.getOwnerId().equals(member.getId());
}

View file

@ -23,10 +23,10 @@ public class VoiceModalHandler extends ListenerAdapter {
@Override
public void onModalInteraction(final ModalInteractionEvent event) {
String modalId = event.getModalId();
if (!modalId.startsWith("voice_")) return;
if (!modalId.startsWith("voice_")) { return; }
String[] parts = modalId.split(":");
if (parts.length != 2) return;
if (parts.length != 2) { return; }
String action = parts[0].replace("voice_", "");
String channelId = parts[1];

View file

@ -27,7 +27,7 @@ public class VoiceChannelListener extends ListenerAdapter {
Member member = event.getMember();
Guild guild = event.getGuild();
if (member.getUser().isBot()) return;
if (member.getUser().isBot()) { return; }
if (event.getChannelJoined() != null) {
VoiceChannel joinedChannel = event.getChannelJoined().asVoiceChannel();

View file

@ -22,10 +22,10 @@ public class VoiceSyncListener extends ListenerAdapter {
@Override
public void onChannelUpdateName(final ChannelUpdateNameEvent event) {
if (!(event.getChannel() instanceof VoiceChannel channel)) return;
if (!(event.getChannel() instanceof VoiceChannel channel)) { return; }
VoiceChannelData data = voiceManager.getChannelData(channel.getId());
if (data == null) return;
if (data == null) { return; }
String newName = event.getNewValue();
voiceManager.updatePresetSetting(data.getOwnerId(), "name", newName);

View file

@ -92,10 +92,10 @@ public class VoiceChannelManager {
public void updatePresetSetting(final String userId, final String setting, final Object value) {
var preset = getUserPreset(userId);
if ("name".equals(setting)) preset.setName((String) value);
else if ("limit".equals(setting)) preset.setLimit((Integer) value);
else if ("bitrate".equals(setting)) preset.setBitrate((Integer) value);
else if ("locked".equals(setting)) preset.setLocked((Boolean) value);
if ("name".equals(setting)) { preset.setName((String) value); }
else if ("limit".equals(setting)) { preset.setLimit((Integer) value); }
else if ("bitrate".equals(setting)) { preset.setBitrate((Integer) value); }
else if ("locked".equals(setting)) { preset.setLocked((Boolean) value); }
saveUserPreset(userId, preset);
}
@ -133,8 +133,8 @@ public class VoiceChannelManager {
try {
if (preset.getName() != null && !preset.getName().isEmpty())
channel.getManager().setName(preset.getName()).queue();
if (preset.getLimit() >= 0) channel.getManager().setUserLimit(preset.getLimit()).queue();
if (preset.getBitrate() > 0) channel.getManager().setBitrate(preset.getBitrate()).queue();
if (preset.getLimit() >= 0) { channel.getManager().setUserLimit(preset.getLimit()).queue(); }
if (preset.getBitrate() > 0) { channel.getManager().setBitrate(preset.getBitrate()).queue(); }
if (preset.isLocked()) {
var publicRole = channel.getGuild().getPublicRole();
channel.upsertPermissionOverride(publicRole).deny(Permission.VOICE_CONNECT).queue();

View file

@ -122,7 +122,7 @@ public class VoiceSetupPrefixCommand implements Command {
EmbedFactory.create()
.withTitle("🎤 Конфигурация системы личных каналов")
.withColor(Color.BLUE);
if (triggerId != null) embed.addField("Канал-триггер", "<#" + triggerId + ">", false);
if (triggerId != null) { embed.addField("Канал-триггер", "<#" + triggerId + ">", false); }
else embed.addField("Канал-триггер", "❌ Не установлен", false);
if (categoryId != null) {
var category = context.getGuild().getCategoryById(categoryId);

View file

@ -42,7 +42,7 @@ public class WelcomeListener extends ListenerAdapter {
String mention = event.getMember().getAsMention();
TextChannel channel = findWelcomeChannel(guild);
if (channel == null) return;
if (channel == null) { return; }
String msg = String.format(MESSAGES.get(random.nextInt(MESSAGES.size())), mention);
channel.sendMessage(msg).queue();