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:
parent
61150c5063
commit
7e725bbee6
95 changed files with 376 additions and 376 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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("❌ Только инициатор команды может отменить действие!")
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"); // Зеленый
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()))
|
||||
|
|
|
|||
|
|
@ -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 -> {});
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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) + "...";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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("Ошибка", "Зайди в голосовой канал сначала."))
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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) + "…";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, "
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 + "\")";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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 =
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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 =
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)) {
|
||||
|
|
|
|||
|
|
@ -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("\"", "\"\"") + "\"";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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); // Серый
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue