diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
index e283fdb..812fe78 100644
--- a/config/checkstyle/checkstyle.xml
+++ b/config/checkstyle/checkstyle.xml
@@ -54,6 +54,7 @@
+
@@ -92,6 +93,7 @@
+
@@ -108,14 +110,11 @@
-
+
-
-
-
-
+
@@ -131,9 +130,12 @@
+
-
+
+
+
@@ -142,7 +144,7 @@
-
+
diff --git a/scripts/fix-checkstyle.py b/scripts/fix-checkstyle.py
new file mode 100644
index 0000000..6833c25
--- /dev/null
+++ b/scripts/fix-checkstyle.py
@@ -0,0 +1,211 @@
+#!/usr/bin/env python3
+"""Auto-fix checkstyle violations from XML report - improved version."""
+
+import re
+import sys
+import xml.etree.ElementTree as ET
+from collections import defaultdict
+from pathlib import Path
+
+
+def parse_report(xml_path):
+ tree = ET.parse(xml_path)
+ root = tree.getroot()
+ violations = defaultdict(list)
+ for file_elem in root.findall("file"):
+ fname = file_elem.get("name")
+ for v in file_elem.findall("error"):
+ sev = v.get("severity", "warning")
+ if sev == "ignore":
+ continue
+ violations[fname].append(
+ {
+ "line": int(v.get("line", 0)),
+ "column": int(v.get("column", 0)),
+ "source": v.get("source", ""),
+ "message": v.get("message", ""),
+ }
+ )
+ return violations
+
+
+def fix_file(filepath, violations):
+ try:
+ content = Path(filepath).read_text(encoding="utf-8")
+ lines = content.splitlines(keepends=True)
+ except Exception as e:
+ print(f" SKIP {filepath}: {e}")
+ return 0
+
+ fixed = 0
+ is_interface = re.search(r"\binterface\s+\w+", content) is not None
+
+ by_line = defaultdict(list)
+ for v in violations:
+ by_line[v["line"]].append(v)
+
+ for line_num in sorted(by_line.keys(), reverse=True):
+ if line_num < 1 or line_num > len(lines):
+ continue
+ line = lines[line_num - 1]
+ original = line
+
+ for v in by_line[line_num]:
+ source = v["source"]
+
+ # RedundantModifier in interfaces
+ if "RedundantModifierCheck" in source and is_interface:
+ # Remove 'final' from interface fields (implicitly public static final)
+ new_line = re.sub(r"\bfinal\b\s+", "", line)
+ # Remove 'public' from interface methods/fields
+ new_line = re.sub(r"\bpublic\b\s+", "", new_line)
+ # Remove 'static' from interface fields
+ new_line = re.sub(r"\bstatic\b\s+final\b", "final", new_line)
+ if new_line != line:
+ lines[line_num - 1] = new_line
+ line = new_line
+ fixed += 1
+ break
+
+ # RedundantModifier in general (e.g. 'final' on enum fields)
+ if (
+ "RedundantModifierCheck" in source
+ and "interface" not in content[line_num - 10 : line_num + 10]
+ ):
+ new_line = re.sub(r"\bpublic\b\s+(?=static\s+final\b)", "", line)
+ if new_line != line:
+ lines[line_num - 1] = new_line
+ line = new_line
+ fixed += 1
+ break
+
+ # WhitespaceAround: add space around { and }
+ if "WhitespaceAroundCheck" in source:
+ msg = v["message"]
+ new_line = line
+ if "{" in msg or "}" in msg:
+ if not line.strip().startswith(
+ ("import ", "package ", "@", "//", "/*", "*", '"')
+ ):
+ # Add space before {
+ new_line = re.sub(r"(\S)\{", r"\1 {", new_line)
+ # Add space after {
+ new_line = re.sub(r"\{(\S)", r"{ \1", new_line)
+ # Don't add space after { in empty blocks {}
+ new_line = re.sub(r"\{ \}", "{}", new_line)
+ # Add space before }
+ new_line = re.sub(r"(\S)\}", r"\1 }", new_line)
+ # Add space after }
+ new_line = re.sub(r"\}(\S)", r"} \1", new_line)
+ if new_line != line:
+ lines[line_num - 1] = new_line
+ line = new_line
+ fixed += 1
+ break
+
+ # NeedBraces: add braces to single-line if/else/for/while
+ if "NeedBracesCheck" in source:
+ stripped = line.strip()
+ indent = line[: len(line) - len(line.lstrip())]
+ # if (...) singleStatement;
+ m = re.match(r"^(if\s*\(.+\))\s+(.+;)\s*$", stripped)
+ if m:
+ lines[line_num - 1] = (
+ f"{indent}{m.group(1)} {{\n{indent} {m.group(2)}\n{indent}}}\n"
+ )
+ fixed += 1
+ break
+ # else singleStatement
+ m = re.match(r"^else\s+(.+;)\s*$", stripped)
+ if m:
+ lines[line_num - 1] = (
+ f"{indent}else {{\n{indent} {m.group(1)}\n{indent}}}\n"
+ )
+ fixed += 1
+ break
+ # else { ... } but missing braces on else itself
+ m = re.match(r"^else\s*\{", stripped)
+ if not m and "else" in stripped:
+ m2 = re.match(r"^else\s+(\w.+)", stripped)
+ if m2:
+ lines[line_num - 1] = (
+ f"{indent}else {{\n{indent} {m2.group(1)}\n{indent}}}\n"
+ )
+ fixed += 1
+ break
+ # for/while single line
+ m = re.match(r"^(for\s*\(.+\)|while\s*\(.+\))\s+(.+;)\s*$", stripped)
+ if m:
+ lines[line_num - 1] = (
+ f"{indent}{m.group(1)} {{\n{indent} {m.group(2)}\n{indent}}}\n"
+ )
+ fixed += 1
+ break
+
+ # EqualsAvoidNull: "literal".equals(var) -> var.equals("literal")
+ if "EqualsAvoidNullCheck" in source:
+ m = re.match(r'^(\s*)"([^"]+)"\.equals\((.+)\)\s*;', line)
+ if m:
+ indent, literal, var = m.groups()
+ lines[line_num - 1] = f'{indent}{var}.equals("{literal}");\n'
+ fixed += 1
+ break
+
+ # MultipleVariableDeclarations: split on one line
+ if "MultipleVariableDeclarationsCheck" in source:
+ m = re.match(r"^(\s*)(\w+(?:<[^>]+>)?)\s+(.+);", line)
+ if m and "," in m.group(3):
+ indent = m.group(1)
+ type_ = m.group(2)
+ decls = m.group(3)
+ parts = [d.strip() for d in decls.split(",")]
+ new_lines = "".join(f"{indent}{type_} {p};\n" for p in parts)
+ lines[line_num - 1] = new_lines
+ fixed += 1
+ break
+
+ # MissingSwitchDefault
+ if "MissingSwitchDefaultCheck" in source:
+ # Find the end of the switch block and add default
+ # Look for the closing } of the switch
+ depth = 0
+ for i in range(line_num - 1, min(line_num + 50, len(lines))):
+ l = lines[i]
+ depth += l.count("{") - l.count("}")
+ if depth == 0 and i > line_num - 1:
+ # Found the end of the switch, add default before closing }
+ indent = line[: len(line) - len(line.lstrip())]
+ case_indent = indent + " "
+ lines[i] = (
+ f"{case_indent}default:\n{case_indent} break;\n{lines[i]}"
+ )
+ fixed += 1
+ break
+
+ if fixed > 0:
+ Path(filepath).write_text("".join(lines), encoding="utf-8")
+ return fixed
+
+
+def main():
+ xml_path = sys.argv[1] if len(sys.argv) > 1 else "build/reports/checkstyle/main.xml"
+ violations = parse_report(xml_path)
+ total = sum(len(v) for v in violations.values())
+ print(f"Found {total} violations in {len(violations)} files")
+
+ fixed_files = 0
+ fixed_count = 0
+ for filepath, viols in sorted(violations.items()):
+ n = fix_file(filepath, viols)
+ if n > 0:
+ fixed_files += 1
+ fixed_count += n
+ print(
+ f" Fixed {n} in {filepath.replace('/storage/project/jvm/discord-bot/', '')}"
+ )
+
+ print(f"\nTotal: fixed {fixed_count} violations in {fixed_files} files")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/src/main/java/creator/loki/core/registry/CommandRegistrar.java b/src/main/java/creator/loki/core/registry/CommandRegistrar.java
index f0b5b35..5b21224 100644
--- a/src/main/java/creator/loki/core/registry/CommandRegistrar.java
+++ b/src/main/java/creator/loki/core/registry/CommandRegistrar.java
@@ -2,5 +2,5 @@ package creator.loki.core.registry;
@FunctionalInterface
public interface CommandRegistrar {
- void register(final CommandRegistry registry);
+ void register(CommandRegistry registry);
}
diff --git a/src/main/java/creator/loki/core/security/RateLimiter.java b/src/main/java/creator/loki/core/security/RateLimiter.java
index cebe5cf..7b08a48 100644
--- a/src/main/java/creator/loki/core/security/RateLimiter.java
+++ b/src/main/java/creator/loki/core/security/RateLimiter.java
@@ -107,7 +107,7 @@ public class RateLimiter implements Lifecycle {
private long lastRefillTime;
private long lastAccessTime;
- public TokenBucket(int capacity, double refillRate) {
+ TokenBucket(int capacity, double refillRate) {
this.capacity = capacity;
this.refillRate = refillRate;
this.tokens = capacity;
diff --git a/src/main/java/creator/loki/database/Database.java b/src/main/java/creator/loki/database/Database.java
index 7a33191..80a0f0b 100644
--- a/src/main/java/creator/loki/database/Database.java
+++ b/src/main/java/creator/loki/database/Database.java
@@ -40,7 +40,7 @@ public class Database implements Lifecycle {
+ config.getMaximumPoolSize()
+ ")");
- try (final Connection conn = dataSource.getConnection();
+ try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement()) {
stmt.execute("PRAGMA foreign_keys = ON");
} catch (SQLException e) {
@@ -58,7 +58,7 @@ public class Database implements Lifecycle {
}
public void execute(final String sql) {
- try (final Connection conn = getConnection();
+ try (Connection conn = getConnection();
Statement stmt = conn.createStatement()) {
stmt.execute(sql);
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/database/schema/FeatureTables.java b/src/main/java/creator/loki/database/schema/FeatureTables.java
index 6f1b373..2cab1f0 100644
--- a/src/main/java/creator/loki/database/schema/FeatureTables.java
+++ b/src/main/java/creator/loki/database/schema/FeatureTables.java
@@ -165,6 +165,8 @@ public final class FeatureTables {
"CREATE INDEX IF NOT EXISTS idx_mod_cases_guild_id ON moderation_cases(guild_id, id DESC)",
"CREATE INDEX IF NOT EXISTS idx_active_mutes_ends ON active_mutes(ends_at_ms)",
"CREATE INDEX IF NOT EXISTS idx_economy_balance ON economy((cash + bank) DESC)"
- }) database.execute(sql);
+ }) {
+ database.execute(sql);
+ }
}
}
diff --git a/src/main/java/creator/loki/feature/config/repository/ConfigRepository.java b/src/main/java/creator/loki/feature/config/repository/ConfigRepository.java
index f8c9cae..cd0004d 100644
--- a/src/main/java/creator/loki/feature/config/repository/ConfigRepository.java
+++ b/src/main/java/creator/loki/feature/config/repository/ConfigRepository.java
@@ -21,8 +21,7 @@ public class ConfigRepository implements StringConfigStore {
/** Получить значение конфигурации */
public String get(String key) {
- try (final PreparedStatement stmt =
- database.prepare("SELECT value FROM config WHERE key = ?")) {
+ try (PreparedStatement stmt = database.prepare("SELECT value FROM config WHERE key = ?")) {
stmt.setString(1, key);
ResultSet rs = stmt.executeQuery();
@@ -38,7 +37,7 @@ public class ConfigRepository implements StringConfigStore {
/** Установить значение конфигурации */
public void set(String key, final String value) {
- try (final PreparedStatement stmt =
+ try (PreparedStatement stmt =
database.prepare("INSERT OR REPLACE INTO config (key, value) VALUES (?, ?)")) {
stmt.setString(1, key);
stmt.setString(2, value);
@@ -51,7 +50,7 @@ public class ConfigRepository implements StringConfigStore {
public Map getAll() {
Map result = new HashMap<>();
- try (final PreparedStatement stmt = database.prepare("SELECT key, value FROM config")) {
+ try (PreparedStatement stmt = database.prepare("SELECT key, value FROM config")) {
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
result.put(rs.getString("key"), rs.getString("value"));
@@ -64,7 +63,7 @@ public class ConfigRepository implements StringConfigStore {
/** Удалить значение конфигурации */
public void delete(String key) {
- try (final PreparedStatement stmt = database.prepare("DELETE FROM config WHERE key = ?")) {
+ try (PreparedStatement stmt = database.prepare("DELETE FROM config WHERE key = ?")) {
stmt.setString(1, key);
stmt.executeUpdate();
logger.info("Конфигурация удалена: {}", key);
diff --git a/src/main/java/creator/loki/feature/counter/repository/CounterStatsRepository.java b/src/main/java/creator/loki/feature/counter/repository/CounterStatsRepository.java
index 3cf18ed..dd5ee18 100644
--- a/src/main/java/creator/loki/feature/counter/repository/CounterStatsRepository.java
+++ b/src/main/java/creator/loki/feature/counter/repository/CounterStatsRepository.java
@@ -25,10 +25,10 @@ public class CounterStatsRepository {
public DailyStats getStats(String date) {
String sql = "SELECT * FROM counter_stats WHERE date = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, date);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
DailyStats stats = new DailyStats();
stats.setDate(rs.getString("date"));
@@ -70,7 +70,7 @@ public class CounterStatsRepository {
difference = excluded.difference
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, stats.getDate());
stmt.setInt(2, stats.getJoined());
stmt.setInt(3, stats.getLeft());
@@ -86,10 +86,10 @@ public class CounterStatsRepository {
List history = new ArrayList<>();
String sql = "SELECT * FROM counter_stats ORDER BY date DESC LIMIT ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setInt(1, days);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
DailyStats stats = new DailyStats();
stats.setDate(rs.getString("date"));
@@ -114,7 +114,7 @@ public class CounterStatsRepository {
WHERE date < date('now', '-' || ? || ' days')
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setInt(1, daysToKeep);
int deleted = stmt.executeUpdate();
if (deleted > 0) {
diff --git a/src/main/java/creator/loki/feature/economy/command/bank/BankCommand.java b/src/main/java/creator/loki/feature/economy/command/bank/BankCommand.java
index f417ad4..e660c30 100644
--- a/src/main/java/creator/loki/feature/economy/command/bank/BankCommand.java
+++ b/src/main/java/creator/loki/feature/economy/command/bank/BankCommand.java
@@ -57,7 +57,7 @@ public class BankCommand implements Command {
return;
}
String sub = args.get(0).toLowerCase();
- if (!sub.equals("deposit") && !sub.equals("withdraw")) {
+ if ("deposit".equals(sub) && !"withdraw".equals(sub)) {
ctx.getChannel()
.sendMessageEmbeds(
EmbedTemplates.error("Ошибка", "Неизвестная подкоманда. Используй: " + getUsage()))
@@ -87,7 +87,7 @@ public class BankCommand implements Command {
return;
}
EconomyAccount acc = economyService.getAccount(uid);
- boolean isDep = sub.equals("deposit");
+ boolean isDep = "deposit".equals(sub);
long balance = isDep ? acc.getCash() : acc.getBank();
if (balance < amount) {
ctx.getChannel()
@@ -104,7 +104,9 @@ public class BankCommand implements Command {
}
if (isDep) {
economyService.deposit(uid, amount);
- } else economyService.withdraw(uid, amount);
+ } else {
+ economyService.withdraw(uid, amount);
+ }
ctx.getChannel()
.sendMessageEmbeds(
EmbedTemplates.success(
diff --git a/src/main/java/creator/loki/feature/economy/command/minigame/FishCommand.java b/src/main/java/creator/loki/feature/economy/command/minigame/FishCommand.java
index 37ff10a..e4015a4 100644
--- a/src/main/java/creator/loki/feature/economy/command/minigame/FishCommand.java
+++ b/src/main/java/creator/loki/feature/economy/command/minigame/FishCommand.java
@@ -45,7 +45,7 @@ public class FishCommand implements Command {
String difficulty = "easy";
if (!args.isEmpty()) {
String first = args.get(0).toLowerCase();
- if (first.equals("easy") || first.equals("normal") || first.equals("hard")) {
+ if ("easy".equals(first) || "normal".equals(first) || "hard".equals(first)) {
difficulty = first;
}
}
diff --git a/src/main/java/creator/loki/feature/economy/domain/SlotCombination.java b/src/main/java/creator/loki/feature/economy/domain/SlotCombination.java
index 60d55d4..ce6b594 100644
--- a/src/main/java/creator/loki/feature/economy/domain/SlotCombination.java
+++ b/src/main/java/creator/loki/feature/economy/domain/SlotCombination.java
@@ -34,7 +34,9 @@ public enum SlotCombination {
return null;
}
for (SlotCombination sc : values()) {
- if (sc.emojis[0].equals(e1)) return sc;
+ if (sc.emojis[0].equals(e1)) {
+ return sc;
+ }
}
return null;
}
diff --git a/src/main/java/creator/loki/feature/economy/repository/EconomyRepository.java b/src/main/java/creator/loki/feature/economy/repository/EconomyRepository.java
index 6405ce7..26300d6 100644
--- a/src/main/java/creator/loki/feature/economy/repository/EconomyRepository.java
+++ b/src/main/java/creator/loki/feature/economy/repository/EconomyRepository.java
@@ -6,13 +6,13 @@ import java.util.Optional;
import creator.loki.feature.economy.domain.EconomyAccount;
public interface EconomyRepository {
- Optional findById(final String userId);
+ Optional findById(String userId);
- void save(final EconomyAccount account);
+ void save(EconomyAccount account);
- boolean exists(final String userId);
+ boolean exists(String userId);
- List findTopByBalance(final int limit);
+ List findTopByBalance(int limit);
default EconomyAccount getAccount(final String userId) {
return findById(userId).orElse(new EconomyAccount(userId));
diff --git a/src/main/java/creator/loki/feature/image/service/ImageService.java b/src/main/java/creator/loki/feature/image/service/ImageService.java
index 8188cc9..bcf68a0 100644
--- a/src/main/java/creator/loki/feature/image/service/ImageService.java
+++ b/src/main/java/creator/loki/feature/image/service/ImageService.java
@@ -44,7 +44,7 @@ public class ImageService {
Request request =
new Request.Builder().url(url).header("User-Agent", "LokiBot/1.0 (by loki)").get().build();
- try (final Response response = client.newCall(request).execute()) {
+ try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful() || response.body() == null) {
logger.error("e621 API error: {} {}", response.code(), response.message());
return List.of();
@@ -113,7 +113,7 @@ public class ImageService {
Request request =
new Request.Builder().url(url).header("User-Agent", "LokiBot/1.0 (by loki)").get().build();
- try (final Response response = client.newCall(request).execute()) {
+ try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful() || response.body() == null) {
logger.error("Booru API error: {} {}", response.code(), response.message());
return List.of();
diff --git a/src/main/java/creator/loki/feature/level/repository/SqlUserStatsRepository.java b/src/main/java/creator/loki/feature/level/repository/SqlUserStatsRepository.java
index c025978..8e45026 100644
--- a/src/main/java/creator/loki/feature/level/repository/SqlUserStatsRepository.java
+++ b/src/main/java/creator/loki/feature/level/repository/SqlUserStatsRepository.java
@@ -31,9 +31,9 @@ public class SqlUserStatsRepository implements UserStatsRepository {
FROM user_stats
WHERE user_id = ?
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return Optional.of(UserStatsMapper.mapResultSetToUserStats(rs));
}
@@ -60,7 +60,7 @@ public class SqlUserStatsRepository implements UserStatsRepository {
last_message_time = excluded.last_message_time,
last_voice_join = excluded.last_voice_join
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, stats.getUserId());
stmt.setInt(2, stats.getLevel());
stmt.setInt(3, stats.getTotalXP());
@@ -83,7 +83,7 @@ public class SqlUserStatsRepository implements UserStatsRepository {
last_message_time, last_voice_join
FROM user_stats
""";
- try (final PreparedStatement stmt = database.prepare(sql);
+ try (PreparedStatement stmt = database.prepare(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
UserStats stats = UserStatsMapper.mapResultSetToUserStats(rs);
@@ -118,9 +118,9 @@ public class SqlUserStatsRepository implements UserStatsRepository {
@Override
public boolean exists(final String userId) {
String sql = "SELECT 1 FROM user_stats WHERE user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
return rs.next();
}
} catch (SQLException e) {
@@ -131,7 +131,7 @@ public class SqlUserStatsRepository implements UserStatsRepository {
public void deleteAll() {
String sql = "DELETE FROM user_stats";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
int deleted = stmt.executeUpdate();
logger.info("Удалено {} записей статистики", deleted);
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/level/repository/UserStatsMapper.java b/src/main/java/creator/loki/feature/level/repository/UserStatsMapper.java
index 99f37ba..fa69134 100644
--- a/src/main/java/creator/loki/feature/level/repository/UserStatsMapper.java
+++ b/src/main/java/creator/loki/feature/level/repository/UserStatsMapper.java
@@ -37,9 +37,9 @@ public class UserStatsMapper {
public static List queryTopList(final Database database, String sql, final int limit) {
List list = new ArrayList<>();
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setInt(1, limit);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
list.add(mapResultSetToUserStats(rs));
}
@@ -105,9 +105,9 @@ public class UserStatsMapper {
OR (u.level = me.level AND u.total_xp > me.total_xp)
OR (u.level = me.level AND u.total_xp = me.total_xp AND u.user_id < me.uid)
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getInt(1);
}
@@ -120,9 +120,9 @@ public class UserStatsMapper {
private static boolean exists(final Database database, final String userId) {
String sql = "SELECT 1 FROM user_stats WHERE user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
return rs.next();
}
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/level/repository/UserStatsRepository.java b/src/main/java/creator/loki/feature/level/repository/UserStatsRepository.java
index 750b398..876ff87 100644
--- a/src/main/java/creator/loki/feature/level/repository/UserStatsRepository.java
+++ b/src/main/java/creator/loki/feature/level/repository/UserStatsRepository.java
@@ -10,20 +10,20 @@ import creator.loki.feature.level.domain.UserStats;
public interface UserStatsRepository {
/** Найти статистику пользователя по ID */
- Optional findById(final String userId);
+ Optional findById(String userId);
/** Сохранить статистику пользователя */
- void save(final UserStats stats);
+ void save(UserStats stats);
/** Получить всю статистику (для лидерборда) */
Map findAll();
/** Топ по уровню (стабильный порядок при ничьих), не более {@code limit} строк. */
- List findTopByLevel(final int limit);
+ List findTopByLevel(int limit);
- List findTopByMessageCount(final int limit);
+ List findTopByMessageCount(int limit);
- List findTopByVoiceMinutes(final int limit);
+ List findTopByVoiceMinutes(int limit);
/** Место в рейтинге по уровню (1 = лучший). {@code -1}, если пользователя нет в таблице. */
int findRankByLevelOrder(String userId);
diff --git a/src/main/java/creator/loki/feature/metrics/HealthHttpServer.java b/src/main/java/creator/loki/feature/metrics/HealthHttpServer.java
index fae3744..5187d51 100644
--- a/src/main/java/creator/loki/feature/metrics/HealthHttpServer.java
+++ b/src/main/java/creator/loki/feature/metrics/HealthHttpServer.java
@@ -97,7 +97,7 @@ public class HealthHttpServer implements Lifecycle {
byte[] bytes = body.getBytes(StandardCharsets.UTF_8);
exchange.getResponseHeaders().add("Content-Type", "application/json; charset=utf-8");
exchange.sendResponseHeaders(200, bytes.length);
- try (final OutputStream os = exchange.getResponseBody()) {
+ try (OutputStream os = exchange.getResponseBody()) {
os.write(bytes);
}
} catch (Exception e) {
@@ -129,7 +129,7 @@ public class HealthHttpServer implements Lifecycle {
byte[] bytes = body.getBytes(StandardCharsets.UTF_8);
exchange.getResponseHeaders().add("Content-Type", "text/plain; charset=utf-8");
exchange.sendResponseHeaders(404, bytes.length);
- try (final OutputStream os = exchange.getResponseBody()) {
+ try (OutputStream os = exchange.getResponseBody()) {
os.write(bytes);
}
return;
diff --git a/src/main/java/creator/loki/feature/moderation/log/ModerationLogger.java b/src/main/java/creator/loki/feature/moderation/log/ModerationLogger.java
index 4827121..0500564 100644
--- a/src/main/java/creator/loki/feature/moderation/log/ModerationLogger.java
+++ b/src/main/java/creator/loki/feature/moderation/log/ModerationLogger.java
@@ -34,11 +34,17 @@ public class ModerationLogger extends ListenerAdapter {
}
private void send(final Guild g, final EmbedBuilder eb) {
- if (eb == null) return;
+ if (eb == null) {
+ return;
+ }
String channelId = configRepo.get("moderation.log_channel_id");
- if (channelId == null || channelId.isBlank()) return;
+ if (channelId == null || channelId.isBlank()) {
+ return;
+ }
var ch = g.getTextChannelById(channelId);
- if (ch == null) return;
+ if (ch == null) {
+ return;
+ }
ch.sendMessageEmbeds(eb.setTimestamp(OffsetDateTime.now()).build()).queue();
}
@@ -85,7 +91,9 @@ public class ModerationLogger extends ListenerAdapter {
private EmbedBuilder ban(GuildBanEvent ev, List l) {
var entry = findEntry(l, ev.getUser().getId());
- if (entry == null) return null;
+ if (entry == null) {
+ return null;
+ }
return LogEmbeds.ban(
ev.getUser().getAsMention(), mod(entry), entry.getReason(), ev.getUser().getAvatarUrl());
}
@@ -97,7 +105,9 @@ public class ModerationLogger extends ListenerAdapter {
private EmbedBuilder unban(GuildUnbanEvent ev, List l) {
var entry = findEntry(l, ev.getUser().getId());
- if (entry == null) return null;
+ if (entry == null) {
+ return null;
+ }
return LogEmbeds.unban(ev.getUser().getAsMention(), mod(entry), ev.getUser().getAvatarUrl());
}
@@ -110,7 +120,9 @@ public class ModerationLogger extends ListenerAdapter {
private EmbedBuilder kick(GuildMemberRemoveEvent ev, List l) {
var entry = findEntry(l, ev.getUser().getId());
- if (entry == null) return null;
+ if (entry == null) {
+ return null;
+ }
return LogEmbeds.kick(
ev.getUser().getAsMention(), mod(entry), entry.getReason(), ev.getUser().getAvatarUrl());
}
@@ -126,7 +138,9 @@ public class ModerationLogger extends ListenerAdapter {
private EmbedBuilder timeout(
GuildMemberUpdateTimeOutEvent e, boolean muted, List l) {
var entry = findEntry(l, e.getUser().getId());
- if (entry == null) return null;
+ if (entry == null) {
+ return null;
+ }
return LogEmbeds.timeout(
e.getUser().getAsMention(),
mod(entry),
diff --git a/src/main/java/creator/loki/feature/moderation/repository/ActiveMuteRepository.java b/src/main/java/creator/loki/feature/moderation/repository/ActiveMuteRepository.java
index 5fb739a..be9d398 100644
--- a/src/main/java/creator/loki/feature/moderation/repository/ActiveMuteRepository.java
+++ b/src/main/java/creator/loki/feature/moderation/repository/ActiveMuteRepository.java
@@ -4,13 +4,13 @@ import java.util.List;
import java.util.Optional;
public interface ActiveMuteRepository {
- void upsert(final String guildId, final String userId, final long endsAtMs, final long caseId);
+ void upsert(String guildId, String userId, long endsAtMs, long caseId);
- void delete(final String guildId, final String userId);
+ void delete(String guildId, String userId);
- Optional find(final String guildId, final String userId);
+ Optional find(String guildId, String userId);
- List listTimedAfter(final long nowMs);
+ List listTimedAfter(long nowMs);
record ActiveMuteEntry(String guildId, String userId, long endsAtMs, long caseId) {}
}
diff --git a/src/main/java/creator/loki/feature/moderation/repository/ModerationCaseRepository.java b/src/main/java/creator/loki/feature/moderation/repository/ModerationCaseRepository.java
index 0bba225..bd272dd 100644
--- a/src/main/java/creator/loki/feature/moderation/repository/ModerationCaseRepository.java
+++ b/src/main/java/creator/loki/feature/moderation/repository/ModerationCaseRepository.java
@@ -4,15 +4,15 @@ import java.util.Optional;
public interface ModerationCaseRepository {
long insert(
- final String guildId,
- final String action,
- final String targetId,
- final String moderatorId,
- final String reason,
- final Long durationSec,
- final Long untilMs);
+ String guildId,
+ String action,
+ String targetId,
+ String moderatorId,
+ String reason,
+ Long durationSec,
+ Long untilMs);
- Optional findById(final String guildId, final long caseId);
+ Optional findById(String guildId, long caseId);
record CaseEntry(
long id,
diff --git a/src/main/java/creator/loki/feature/moderation/repository/WarningRepository.java b/src/main/java/creator/loki/feature/moderation/repository/WarningRepository.java
index b7f0b75..f95c22f 100644
--- a/src/main/java/creator/loki/feature/moderation/repository/WarningRepository.java
+++ b/src/main/java/creator/loki/feature/moderation/repository/WarningRepository.java
@@ -4,16 +4,15 @@ import java.util.List;
import java.util.Optional;
public interface WarningRepository {
- long insert(
- final String guildId, final String userId, final String moderatorId, final String reason);
+ long insert(String guildId, String userId, String moderatorId, String reason);
- List listByUser(final String guildId, final String userId, final int limit);
+ List listByUser(String guildId, String userId, int limit);
- int countByUser(final String guildId, final String userId);
+ int countByUser(String guildId, String userId);
- boolean deleteById(final String guildId, final long warningId);
+ boolean deleteById(String guildId, long warningId);
- Optional findById(final String guildId, final long warningId);
+ Optional findById(String guildId, long warningId);
record WarningEntry(
long id, String guildId, String userId, String moderatorId, String reason, long createdAt) {}
diff --git a/src/main/java/creator/loki/feature/moderation/repository/sql/SqlActiveMuteRepository.java b/src/main/java/creator/loki/feature/moderation/repository/sql/SqlActiveMuteRepository.java
index a554c24..7e5a0d6 100644
--- a/src/main/java/creator/loki/feature/moderation/repository/sql/SqlActiveMuteRepository.java
+++ b/src/main/java/creator/loki/feature/moderation/repository/sql/SqlActiveMuteRepository.java
@@ -29,7 +29,7 @@ public class SqlActiveMuteRepository implements ActiveMuteRepository {
VALUES (?, ?, ?, ?)
ON CONFLICT(guild_id, user_id) DO UPDATE SET ends_at_ms = excluded.ends_at_ms, case_id = excluded.case_id
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setLong(3, endsAtMs);
@@ -43,7 +43,7 @@ public class SqlActiveMuteRepository implements ActiveMuteRepository {
@Override
public void delete(final String guildId, final String userId) {
String sql = "DELETE FROM active_mutes WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.executeUpdate();
@@ -56,10 +56,10 @@ public class SqlActiveMuteRepository implements ActiveMuteRepository {
public Optional find(final String guildId, final String userId) {
String sql =
"SELECT guild_id, user_id, ends_at_ms, case_id FROM active_mutes WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return Optional.of(
new ActiveMuteEntry(
@@ -83,9 +83,9 @@ public class SqlActiveMuteRepository implements ActiveMuteRepository {
WHERE ends_at_ms > ? AND ends_at_ms > 0
""";
List list = new ArrayList<>();
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setLong(1, nowMs);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
list.add(
new ActiveMuteEntry(
diff --git a/src/main/java/creator/loki/feature/moderation/repository/sql/SqlModerationCaseRepository.java b/src/main/java/creator/loki/feature/moderation/repository/sql/SqlModerationCaseRepository.java
index 60bc6a8..b5fc8bb 100644
--- a/src/main/java/creator/loki/feature/moderation/repository/sql/SqlModerationCaseRepository.java
+++ b/src/main/java/creator/loki/feature/moderation/repository/sql/SqlModerationCaseRepository.java
@@ -36,7 +36,7 @@ public class SqlModerationCaseRepository implements ModerationCaseRepository {
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""";
long now = System.currentTimeMillis();
- try (final Connection conn = database.getConnection();
+ try (Connection conn = database.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
stmt.setString(1, guildId);
stmt.setString(2, action);
@@ -55,7 +55,7 @@ public class SqlModerationCaseRepository implements ModerationCaseRepository {
stmt.setLong(8, untilMs);
}
stmt.executeUpdate();
- try (final ResultSet keys = stmt.getGeneratedKeys()) {
+ try (ResultSet keys = stmt.getGeneratedKeys()) {
if (keys.next()) {
return keys.getLong(1);
}
@@ -73,10 +73,10 @@ public class SqlModerationCaseRepository implements ModerationCaseRepository {
SELECT id, guild_id, action, target_id, moderator_id, reason, created_at, duration_sec, until_ms
FROM moderation_cases WHERE id = ? AND guild_id = ?
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setLong(1, caseId);
stmt.setString(2, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return Optional.of(map(rs));
}
diff --git a/src/main/java/creator/loki/feature/moderation/repository/sql/SqlWarningRepository.java b/src/main/java/creator/loki/feature/moderation/repository/sql/SqlWarningRepository.java
index cd461f3..cda80e0 100644
--- a/src/main/java/creator/loki/feature/moderation/repository/sql/SqlWarningRepository.java
+++ b/src/main/java/creator/loki/feature/moderation/repository/sql/SqlWarningRepository.java
@@ -32,7 +32,7 @@ public class SqlWarningRepository implements WarningRepository {
VALUES (?, ?, ?, ?, ?)
""";
long now = System.currentTimeMillis();
- try (final Connection conn = database.getConnection();
+ try (Connection conn = database.getConnection();
PreparedStatement stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
@@ -40,7 +40,7 @@ public class SqlWarningRepository implements WarningRepository {
stmt.setString(4, reason);
stmt.setLong(5, now);
stmt.executeUpdate();
- try (final ResultSet keys = stmt.getGeneratedKeys()) {
+ try (ResultSet keys = stmt.getGeneratedKeys()) {
if (keys.next()) {
return keys.getLong(1);
}
@@ -63,11 +63,11 @@ public class SqlWarningRepository implements WarningRepository {
LIMIT ?
""";
List list = new ArrayList<>();
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setInt(3, lim);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
list.add(map(rs));
}
@@ -81,10 +81,10 @@ public class SqlWarningRepository implements WarningRepository {
@Override
public int countByUser(final String guildId, final String userId) {
String sql = "SELECT COUNT(*) FROM warnings WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getInt(1);
}
@@ -98,7 +98,7 @@ public class SqlWarningRepository implements WarningRepository {
@Override
public boolean deleteById(final String guildId, final long warningId) {
String sql = "DELETE FROM warnings WHERE id = ? AND guild_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setLong(1, warningId);
stmt.setString(2, guildId);
return stmt.executeUpdate() > 0;
@@ -115,10 +115,10 @@ public class SqlWarningRepository implements WarningRepository {
SELECT id, guild_id, user_id, moderator_id, reason, created_at
FROM warnings WHERE id = ? AND guild_id = ?
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setLong(1, warningId);
stmt.setString(2, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return Optional.of(map(rs));
}
diff --git a/src/main/java/creator/loki/feature/music/MusicSlashCommands.java b/src/main/java/creator/loki/feature/music/MusicSlashCommands.java
index ee2562f..e44f5f9 100644
--- a/src/main/java/creator/loki/feature/music/MusicSlashCommands.java
+++ b/src/main/java/creator/loki/feature/music/MusicSlashCommands.java
@@ -70,35 +70,35 @@ public class MusicSlashCommands extends ListenerAdapter {
@Override
public void onSlashCommandInteraction(@NotNull final SlashCommandInteractionEvent event) {
String name = event.getName();
- if (name.equals("play")) {
+ if ("play".equals(name)) {
playHandler.handle(event);
- } else if (name.equals("stop")) {
+ } else if ("stop".equals(name)) {
queueHandler.handleStop(event);
- } else if (name.equals("skip")) {
+ } else if ("skip".equals(name)) {
queueHandler.handleSkip(event);
- } else if (name.equals("queue")) {
+ } else if ("queue".equals(name)) {
queueHandler.handleQueue(event);
- } else if (name.equals("nowplaying")) {
+ } else if ("nowplaying".equals(name)) {
queueHandler.handleNowPlaying(event);
- } else if (name.equals("volume")) {
+ } else if ("volume".equals(name)) {
queueHandler.handleVolume(event);
- } else if (name.equals("pause")) {
+ } else if ("pause".equals(name)) {
queueHandler.handlePause(event);
- } else if (name.equals("resume")) {
+ } else if ("resume".equals(name)) {
queueHandler.handleResume(event);
- } else if (name.equals("shuffle")) {
+ } else if ("shuffle".equals(name)) {
queueHandler.handleShuffle(event);
- } else if (name.equals("repeat")) {
+ } else if ("repeat".equals(name)) {
queueHandler.handleRepeat(event);
- } else if (name.equals("bassboost")) {
+ } else if ("bassboost".equals(name)) {
filterHandler.handleBassboost(event);
- } else if (name.equals("nightcore")) {
+ } else if ("nightcore".equals(name)) {
filterHandler.handleNightcore(event);
- } else if (name.equals("vaporwave")) {
+ } else if ("vaporwave".equals(name)) {
filterHandler.handleVaporwave(event);
- } else if (name.equals("equalizer")) {
+ } else if ("equalizer".equals(name)) {
filterHandler.handleEqualizer(event);
- } else if (name.equals("reset")) {
+ } else if ("reset".equals(name)) {
filterHandler.handleReset(event);
}
}
diff --git a/src/main/java/creator/loki/feature/music/commands/FilterCommands.java b/src/main/java/creator/loki/feature/music/commands/FilterCommands.java
index 2e7fb75..074d32a 100644
--- a/src/main/java/creator/loki/feature/music/commands/FilterCommands.java
+++ b/src/main/java/creator/loki/feature/music/commands/FilterCommands.java
@@ -174,7 +174,9 @@ public class FilterCommands {
: !m.getScheduler().filterState.isVaporwave();
if (isNight) {
m.getScheduler().setNightcore(enabled);
- } else m.getScheduler().setVaporwave(enabled);
+ } else {
+ m.getScheduler().setVaporwave(enabled);
+ }
ctx.getChannel()
.sendMessageEmbeds(
EmbedTemplates.info(
diff --git a/src/main/java/creator/loki/feature/music/commands/QueueCommands.java b/src/main/java/creator/loki/feature/music/commands/QueueCommands.java
index dd19e0e..5966d47 100644
--- a/src/main/java/creator/loki/feature/music/commands/QueueCommands.java
+++ b/src/main/java/creator/loki/feature/music/commands/QueueCommands.java
@@ -90,8 +90,9 @@ public class QueueCommands {
if (!q.isEmpty()) {
var sb = new StringBuilder();
var show = Math.min(q.size(), 10);
- for (var i = 0; i < show; i++)
+ 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("** треков");
}
@@ -139,10 +140,11 @@ public class QueueCommands {
}
try {
var vol = Math.max(0, Math.min(100, Integer.parseInt(ctx.getArgs().get(0))));
- if (l != null && l.getCachedPlayer() != null)
+ if (l != null && l.getCachedPlayer() != null) {
l.createOrUpdatePlayer()
.setVolume(vol)
.subscribe(null, err -> LOG.warn("Lavalink: {}", err.getMessage()));
+ }
ctx.getChannel()
.sendMessageEmbeds(info("Громкость", "Установлена на **" + vol + "%**"))
.queue();
diff --git a/src/main/java/creator/loki/feature/music/listener/MusicBotControlHandler.java b/src/main/java/creator/loki/feature/music/listener/MusicBotControlHandler.java
index 0a4ac72..20f0505 100644
--- a/src/main/java/creator/loki/feature/music/listener/MusicBotControlHandler.java
+++ b/src/main/java/creator/loki/feature/music/listener/MusicBotControlHandler.java
@@ -57,12 +57,13 @@ public class MusicBotControlHandler {
}
if (!q.isEmpty()) {
var show = Math.min(q.size(), 10);
- for (var i = 0; i < show; i++)
+ for (var i = 0; i < show; i++) {
sb.append("`")
.append(i + 1)
.append(".` ")
.append(q.get(i).getInfo().getTitle())
.append("\n");
+ }
if (q.size() > show) {
sb.append("... и ещё **").append(q.size() - show).append("** треков");
}
@@ -101,10 +102,11 @@ public class MusicBotControlHandler {
}
try {
var vol = Math.max(0, Math.min(100, Integer.parseInt(args.get(0))));
- if (link != null)
+ if (link != null) {
link.createOrUpdatePlayer()
.setVolume(vol)
.subscribe(null, err -> log.warn("Lavalink: {}", err.getMessage()));
+ }
send(ch, ok("🔊 Громкость", "Установлена **" + vol + "%**"));
} catch (NumberFormatException e) {
send(ch, err("Укажи число от 0 до 100."));
@@ -153,11 +155,12 @@ public class MusicBotControlHandler {
return;
}
var level = 10;
- if (!args.isEmpty())
+ if (!args.isEmpty()) {
try {
level = Math.max(-25, Math.min(25, Integer.parseInt(args.get(0))));
} catch (NumberFormatException ignored) {
}
+ }
lavalinkManager.getMusicManager(guild.getIdLong()).getScheduler().setBassboost(level);
send(ch, ok("🔊 Bassboost", "**" + level + "**"));
}
diff --git a/src/main/java/creator/loki/feature/music/manage/GuildMusicManager.java b/src/main/java/creator/loki/feature/music/manage/GuildMusicManager.java
index 85c8aa7..a606746 100644
--- a/src/main/java/creator/loki/feature/music/manage/GuildMusicManager.java
+++ b/src/main/java/creator/loki/feature/music/manage/GuildMusicManager.java
@@ -154,7 +154,9 @@ public class GuildMusicManager {
var player = getPlayer().orElse(null);
if (player != null && player.getTrack() == null) {
scheduler.startTrack(first);
- } else q.offer(first);
+ } else {
+ q.offer(first);
+ }
LoggerDecorator.music(logger, "Восстановлено " + decoded.size() + " треков");
queueRepository.deleteQueue(String.valueOf(guildId));
}
diff --git a/src/main/java/creator/loki/feature/music/manage/TrackScheduler.java b/src/main/java/creator/loki/feature/music/manage/TrackScheduler.java
index 6d22d72..d82427a 100644
--- a/src/main/java/creator/loki/feature/music/manage/TrackScheduler.java
+++ b/src/main/java/creator/loki/feature/music/manage/TrackScheduler.java
@@ -147,6 +147,8 @@ public class TrackScheduler {
var next = queue.poll();
if (next != null) {
startTrack(next);
- } else manager.startAutoLeaveTimer();
+ } else {
+ manager.startAutoLeaveTimer();
+ }
}
}
diff --git a/src/main/java/creator/loki/feature/music/play/PlayCommand.java b/src/main/java/creator/loki/feature/music/play/PlayCommand.java
index 4c1b727..e5aa53b 100644
--- a/src/main/java/creator/loki/feature/music/play/PlayCommand.java
+++ b/src/main/java/creator/loki/feature/music/play/PlayCommand.java
@@ -135,8 +135,11 @@ public class PlayCommand implements Command {
if (raw.startsWith("http://") || raw.startsWith("https://")) {
return raw;
}
- if (raw.startsWith("ytsearch:") || raw.startsWith("ytmsearch:") || raw.startsWith("scsearch:"))
+ if (raw.startsWith("ytsearch:")
+ || raw.startsWith("ytmsearch:")
+ || raw.startsWith("scsearch:")) {
return raw;
+ }
if ("sc".equals(first)) {
return "scsearch:" + raw;
}
diff --git a/src/main/java/creator/loki/feature/music/play/PlayLoadHandler.java b/src/main/java/creator/loki/feature/music/play/PlayLoadHandler.java
index cf6b127..e125580 100644
--- a/src/main/java/creator/loki/feature/music/play/PlayLoadHandler.java
+++ b/src/main/java/creator/loki/feature/music/play/PlayLoadHandler.java
@@ -41,7 +41,9 @@ class PlayLoadHandler extends AbstractAudioLoadResultHandler {
public void ontrackLoaded(final TrackLoaded r) {
if (isUrl) {
enqueueAndNotify(r.getTrack());
- } else showResults(List.of(r.getTrack()));
+ } else {
+ showResults(List.of(r.getTrack()));
+ }
}
@Override
diff --git a/src/main/java/creator/loki/feature/music/repository/FilterRepository.java b/src/main/java/creator/loki/feature/music/repository/FilterRepository.java
index 54aa7c0..52dddad 100644
--- a/src/main/java/creator/loki/feature/music/repository/FilterRepository.java
+++ b/src/main/java/creator/loki/feature/music/repository/FilterRepository.java
@@ -27,7 +27,7 @@ public class FilterRepository {
String sql =
"INSERT OR REPLACE INTO music_filters (guild_id, bassboost, nightcore, vaporwave) "
+ "VALUES (?, ?, ?, ?)";
- try (final PreparedStatement stmt = db.prepare(sql)) {
+ try (PreparedStatement stmt = db.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setInt(2, bassboost);
stmt.setInt(3, nightcore ? 1 : 0);
@@ -40,9 +40,9 @@ public class FilterRepository {
public FilterState load(final String guildId) {
String sql = "SELECT bassboost, nightcore, vaporwave FROM music_filters WHERE guild_id = ?";
- try (final PreparedStatement stmt = db.prepare(sql)) {
+ try (PreparedStatement stmt = db.prepare(sql)) {
stmt.setString(1, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return new FilterState(
rs.getInt("bassboost"), rs.getInt("nightcore") == 1, rs.getInt("vaporwave") == 1);
@@ -56,7 +56,7 @@ public class FilterRepository {
public void delete(final String guildId) {
String sql = "DELETE FROM music_filters WHERE guild_id = ?";
- try (final PreparedStatement stmt = db.prepare(sql)) {
+ try (PreparedStatement stmt = db.prepare(sql)) {
stmt.setString(1, guildId);
stmt.executeUpdate();
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/music/repository/QueueRepository.java b/src/main/java/creator/loki/feature/music/repository/QueueRepository.java
index db3a4e9..0620744 100644
--- a/src/main/java/creator/loki/feature/music/repository/QueueRepository.java
+++ b/src/main/java/creator/loki/feature/music/repository/QueueRepository.java
@@ -32,7 +32,7 @@ public class QueueRepository {
String sql =
"INSERT INTO music_queue (guild_id, position, track_encoded, track_title, "
+ "track_author, track_uri, track_duration) VALUES (?, ?, ?, ?, ?, ?, ?)";
- try (final PreparedStatement stmt = db.prepare(sql)) {
+ try (PreparedStatement stmt = db.prepare(sql)) {
for (int i = 0; i < tracks.size(); i++) {
QueueTrack t = tracks.get(i);
stmt.setString(1, guildId);
@@ -55,9 +55,9 @@ public class QueueRepository {
"SELECT track_encoded, track_title, track_author, track_uri, track_duration "
+ "FROM music_queue WHERE guild_id = ? ORDER BY position";
List tracks = new ArrayList<>();
- try (final PreparedStatement stmt = db.prepare(sql)) {
+ try (PreparedStatement stmt = db.prepare(sql)) {
stmt.setString(1, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
tracks.add(
new QueueTrack(
@@ -76,7 +76,7 @@ public class QueueRepository {
public void deleteQueue(final String guildId) {
String sql = "DELETE FROM music_queue WHERE guild_id = ?";
- try (final PreparedStatement stmt = db.prepare(sql)) {
+ try (PreparedStatement stmt = db.prepare(sql)) {
stmt.setString(1, guildId);
stmt.executeUpdate();
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/music/slash/QueueSlashHandler.java b/src/main/java/creator/loki/feature/music/slash/QueueSlashHandler.java
index 390e484..28c072e 100644
--- a/src/main/java/creator/loki/feature/music/slash/QueueSlashHandler.java
+++ b/src/main/java/creator/loki/feature/music/slash/QueueSlashHandler.java
@@ -108,8 +108,9 @@ public class QueueSlashHandler {
return;
}
var vol = Math.max(0, Math.min(100, opt.getAsInt()));
- if (link != null && link.getCachedPlayer() != null)
+ if (link != null && link.getCachedPlayer() != null) {
link.createOrUpdatePlayer().setVolume(vol).subscribe(null, LOG);
+ }
ev.replyEmbeds(EmbedTemplates.info("Громкость", "Установлена на **" + vol + "%**")).queue();
}
diff --git a/src/main/java/creator/loki/feature/profile/render/RankCardIcons.java b/src/main/java/creator/loki/feature/profile/render/RankCardIcons.java
index 71facf3..8a3b3b0 100644
--- a/src/main/java/creator/loki/feature/profile/render/RankCardIcons.java
+++ b/src/main/java/creator/loki/feature/profile/render/RankCardIcons.java
@@ -50,7 +50,9 @@ public final class RankCardIcons {
double py = cy + Math.sin(angle) * rad;
if (i == 0) {
star.moveTo(px, py);
- } else star.lineTo(px, py);
+ } else {
+ star.lineTo(px, py);
+ }
}
star.closePath();
g.fill(star);
diff --git a/src/main/java/creator/loki/feature/profile/render/RankCardRenderer.java b/src/main/java/creator/loki/feature/profile/render/RankCardRenderer.java
index 8a7b8f0..31926b5 100644
--- a/src/main/java/creator/loki/feature/profile/render/RankCardRenderer.java
+++ b/src/main/java/creator/loki/feature/profile/render/RankCardRenderer.java
@@ -84,7 +84,7 @@ public class RankCardRenderer {
if (cached != null) {
return cached;
}
- try (final InputStream is = getClass().getClassLoader().getResourceAsStream("assets/" + path)) {
+ try (InputStream is = getClass().getClassLoader().getResourceAsStream("assets/" + path)) {
if (is == null) {
Font fallback = new Font("SansSerif", Font.BOLD, (int) size);
FONT_CACHE.put(key, fallback);
@@ -101,7 +101,7 @@ public class RankCardRenderer {
}
public BufferedImage loadBackground(final String path) throws Exception {
- try (final InputStream is = getClass().getClassLoader().getResourceAsStream("assets/" + path)) {
+ try (InputStream is = getClass().getClassLoader().getResourceAsStream("assets/" + path)) {
if (is == null) {
BufferedImage fallback = new BufferedImage(W, H, BufferedImage.TYPE_INT_RGB);
Graphics2D fg = fallback.createGraphics();
diff --git a/src/main/java/creator/loki/feature/rating/repository/RatingsRepository.java b/src/main/java/creator/loki/feature/rating/repository/RatingsRepository.java
index 75276e9..dd1c7d2 100644
--- a/src/main/java/creator/loki/feature/rating/repository/RatingsRepository.java
+++ b/src/main/java/creator/loki/feature/rating/repository/RatingsRepository.java
@@ -26,12 +26,12 @@ public class RatingsRepository {
public Integer getRating(final String guildId, final String userId, final String ratingType) {
String sql = "SELECT value FROM ratings WHERE guild_id = ? AND user_id = ? AND rating_type = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setString(3, ratingType);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getInt("value");
}
@@ -54,7 +54,7 @@ public class RatingsRepository {
DO UPDATE SET value = excluded.value
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setString(3, ratingType);
@@ -75,11 +75,11 @@ public class RatingsRepository {
Map ratings = new HashMap<>();
String sql = "SELECT rating_type, value FROM ratings WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
ratings.put(rs.getString("rating_type"), rs.getInt("value"));
}
@@ -95,10 +95,10 @@ public class RatingsRepository {
public int getUserCountWithRatings(final String guildId) {
String sql = "SELECT COUNT(DISTINCT user_id) as count FROM ratings WHERE guild_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getInt("count");
}
@@ -114,7 +114,7 @@ public class RatingsRepository {
public void deleteUserRatings(final String guildId, final String userId) {
String sql = "DELETE FROM ratings WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.executeUpdate();
@@ -127,7 +127,7 @@ public class RatingsRepository {
public void deleteAllRatings(final String guildId) {
String sql = "DELETE FROM ratings WHERE guild_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.executeUpdate();
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/reactroles/repository/ReactionRoleRepository.java b/src/main/java/creator/loki/feature/reactroles/repository/ReactionRoleRepository.java
index b9d4432..003f142 100644
--- a/src/main/java/creator/loki/feature/reactroles/repository/ReactionRoleRepository.java
+++ b/src/main/java/creator/loki/feature/reactroles/repository/ReactionRoleRepository.java
@@ -34,7 +34,7 @@ public class ReactionRoleRepository {
VALUES (?, ?, ?, ?, ?)
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, channelId);
stmt.setString(3, messageId);
@@ -50,10 +50,10 @@ public class ReactionRoleRepository {
String sql =
"SELECT id, guild_id, channel_id, message_id, emoji, role_id FROM reaction_roles WHERE message_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, messageId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
List results = new ArrayList<>();
while (rs.next()) {
results.add(mapRow(rs));
@@ -70,10 +70,10 @@ public class ReactionRoleRepository {
String sql =
"SELECT id, guild_id, channel_id, message_id, emoji, role_id FROM reaction_roles WHERE guild_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
List results = new ArrayList<>();
while (rs.next()) {
results.add(mapRow(rs));
@@ -89,7 +89,7 @@ public class ReactionRoleRepository {
public void delete(int id) {
String sql = "DELETE FROM reaction_roles WHERE id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setInt(1, id);
stmt.executeUpdate();
} catch (SQLException e) {
@@ -100,7 +100,7 @@ public class ReactionRoleRepository {
public void deleteByMessageAndEmoji(final String messageId, String emoji) {
String sql = "DELETE FROM reaction_roles WHERE message_id = ? AND emoji = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, messageId);
stmt.setString(2, emoji);
stmt.executeUpdate();
diff --git a/src/main/java/creator/loki/feature/reputation/repository/ReputationRepository.java b/src/main/java/creator/loki/feature/reputation/repository/ReputationRepository.java
index 4607fb4..20a9253 100644
--- a/src/main/java/creator/loki/feature/reputation/repository/ReputationRepository.java
+++ b/src/main/java/creator/loki/feature/reputation/repository/ReputationRepository.java
@@ -23,10 +23,10 @@ public class ReputationRepository {
public double getReputation(final String userId) {
String sql = "SELECT reputation FROM reputation WHERE user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getDouble("reputation");
}
@@ -48,7 +48,7 @@ public class ReputationRepository {
DO UPDATE SET reputation = excluded.reputation
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
stmt.setDouble(2, reputation);
stmt.executeUpdate();
@@ -73,10 +73,10 @@ public class ReputationRepository {
Map top = new HashMap<>();
String sql = "SELECT user_id, reputation FROM reputation ORDER BY reputation DESC LIMIT ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setInt(1, limit);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
top.put(rs.getString("user_id"), rs.getDouble("reputation"));
}
@@ -93,7 +93,7 @@ public class ReputationRepository {
Map all = new HashMap<>();
String sql = "SELECT user_id, reputation FROM reputation";
- try (final PreparedStatement stmt = database.prepare(sql);
+ try (PreparedStatement stmt = database.prepare(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
@@ -110,7 +110,7 @@ public class ReputationRepository {
public void deleteReputation(final String userId) {
String sql = "DELETE FROM reputation WHERE user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
stmt.executeUpdate();
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/roast/ContentFetcher.java b/src/main/java/creator/loki/feature/roast/ContentFetcher.java
index 37a39b7..b7dbe6e 100644
--- a/src/main/java/creator/loki/feature/roast/ContentFetcher.java
+++ b/src/main/java/creator/loki/feature/roast/ContentFetcher.java
@@ -104,7 +104,7 @@ public class ContentFetcher {
private String readTextFile(String url, final int maxChars) {
Request req = new Request.Builder().url(url).get().build();
- try (final Response resp = httpClient.newCall(req).execute()) {
+ try (Response resp = httpClient.newCall(req).execute()) {
if (resp.isSuccessful() && resp.body() != null) {
String text = resp.body().string();
if (text.length() > maxChars) {
diff --git a/src/main/java/creator/loki/feature/roast/DebateService.java b/src/main/java/creator/loki/feature/roast/DebateService.java
index cc096df..54efa83 100644
--- a/src/main/java/creator/loki/feature/roast/DebateService.java
+++ b/src/main/java/creator/loki/feature/roast/DebateService.java
@@ -95,7 +95,9 @@ public class DebateService {
return;
}
if (event.getMessage().getContentRaw().isBlank()
- && event.getMessage().getAttachments().isEmpty()) return;
+ && event.getMessage().getAttachments().isEmpty()) {
+ return;
+ }
TextChannel channel = event.getChannel().asTextChannel();
ChannelState state = channels.computeIfAbsent(debateId, k -> new ChannelState());
@@ -243,8 +245,9 @@ public class DebateService {
}
}
String text = userContent.toString().strip();
- if (text.length() > config.getAiContextChars())
+ if (text.length() > config.getAiContextChars()) {
text = text.substring(0, config.getAiContextChars());
+ }
String wiki = wikipediaService.search(text);
if (wiki != null) {
@@ -276,7 +279,9 @@ public class DebateService {
name = "шинд";
} else if (id.equals(gentooId)) {
name = "генту";
- } else name = "бот";
+ } else {
+ name = "бот";
+ }
} else {
name = msg.getAuthor().getEffectiveName();
}
diff --git a/src/main/java/creator/loki/feature/roast/DeepSeekClient.java b/src/main/java/creator/loki/feature/roast/DeepSeekClient.java
index 6a4cade..8ae4dfc 100644
--- a/src/main/java/creator/loki/feature/roast/DeepSeekClient.java
+++ b/src/main/java/creator/loki/feature/roast/DeepSeekClient.java
@@ -74,7 +74,7 @@ public class DeepSeekClient {
.post(RequestBody.create(body.toString(), JSON))
.build();
- try (final Response resp = httpClient.newCall(request).execute()) {
+ try (Response resp = httpClient.newCall(request).execute()) {
if (!resp.isSuccessful()) {
if (resp.body() != null) {
logger.warn("DeepSeek error {}: {}", resp.code(), resp.body().string());
diff --git a/src/main/java/creator/loki/feature/roast/HelperListener.java b/src/main/java/creator/loki/feature/roast/HelperListener.java
index 5a6f154..0d784ad 100644
--- a/src/main/java/creator/loki/feature/roast/HelperListener.java
+++ b/src/main/java/creator/loki/feature/roast/HelperListener.java
@@ -61,7 +61,9 @@ public class HelperListener extends ListenerAdapter {
return;
}
if (event.getMessage().getContentRaw().isBlank()
- && event.getMessage().getAttachments().isEmpty()) return;
+ && event.getMessage().getAttachments().isEmpty()) {
+ return;
+ }
String raw = event.getMessage().getContentRaw();
if (!raw.isBlank() && !LanguageFilter.isAllowed(raw)) {
diff --git a/src/main/java/creator/loki/feature/roast/WebSearchService.java b/src/main/java/creator/loki/feature/roast/WebSearchService.java
index 642d5d0..3b615d5 100644
--- a/src/main/java/creator/loki/feature/roast/WebSearchService.java
+++ b/src/main/java/creator/loki/feature/roast/WebSearchService.java
@@ -81,7 +81,7 @@ public class WebSearchService {
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")
.get()
.build();
- try (final Response resp = httpClient.newCall(req).execute()) {
+ try (Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) {
return results;
}
@@ -139,7 +139,7 @@ public class WebSearchService {
.header("Accept-Language", "en,ru;q=0.9")
.get()
.build();
- try (final Response resp = httpClient.newCall(req).execute()) {
+ try (Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) {
return null;
}
diff --git a/src/main/java/creator/loki/feature/roast/WikipediaService.java b/src/main/java/creator/loki/feature/roast/WikipediaService.java
index 355185d..64e0ce0 100644
--- a/src/main/java/creator/loki/feature/roast/WikipediaService.java
+++ b/src/main/java/creator/loki/feature/roast/WikipediaService.java
@@ -40,7 +40,7 @@ public class WikipediaService {
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()) {
+ try (Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) {
return null;
}
@@ -82,7 +82,7 @@ public class WikipediaService {
try {
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()) {
+ try (Response resp = httpClient.newCall(req).execute()) {
if (!resp.isSuccessful() || resp.body() == null) {
return null;
}
diff --git a/src/main/java/creator/loki/feature/role/repository/CustomRoleRepository.java b/src/main/java/creator/loki/feature/role/repository/CustomRoleRepository.java
index 0b2efa8..7495a85 100644
--- a/src/main/java/creator/loki/feature/role/repository/CustomRoleRepository.java
+++ b/src/main/java/creator/loki/feature/role/repository/CustomRoleRepository.java
@@ -28,7 +28,7 @@ public class CustomRoleRepository {
ON CONFLICT(guild_id, user_id, role_id) DO NOTHING
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setString(3, roleId);
@@ -43,7 +43,7 @@ public class CustomRoleRepository {
public void removeRole(final String guildId, final String userId, final String roleId) {
String sql = "DELETE FROM custom_roles WHERE guild_id = ? AND user_id = ? AND role_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setString(3, roleId);
@@ -59,11 +59,11 @@ public class CustomRoleRepository {
List roles = new ArrayList<>();
String sql = "SELECT role_id FROM custom_roles WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
roles.add(rs.getString("role_id"));
}
@@ -79,12 +79,12 @@ public class CustomRoleRepository {
public boolean hasRole(final String guildId, final String userId, final String roleId) {
String sql = "SELECT 1 FROM custom_roles WHERE guild_id = ? AND user_id = ? AND role_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
stmt.setString(3, roleId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
return rs.next();
}
} catch (SQLException e) {
@@ -98,11 +98,11 @@ public class CustomRoleRepository {
public int getUserRoleCount(final String guildId, final String userId) {
String sql = "SELECT COUNT(*) as count FROM custom_roles WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getInt("count");
}
@@ -118,7 +118,7 @@ public class CustomRoleRepository {
public void removeAllUserRoles(final String guildId, final String userId) {
String sql = "DELETE FROM custom_roles WHERE guild_id = ? AND user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, userId);
int deleted = stmt.executeUpdate();
@@ -132,7 +132,7 @@ public class CustomRoleRepository {
public void removeRoleFromAll(final String guildId, final String roleId) {
String sql = "DELETE FROM custom_roles WHERE guild_id = ? AND role_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
stmt.setString(2, roleId);
int deleted = stmt.executeUpdate();
diff --git a/src/main/java/creator/loki/feature/ship/repository/ShipPairRepository.java b/src/main/java/creator/loki/feature/ship/repository/ShipPairRepository.java
index 9636df2..74c9982 100644
--- a/src/main/java/creator/loki/feature/ship/repository/ShipPairRepository.java
+++ b/src/main/java/creator/loki/feature/ship/repository/ShipPairRepository.java
@@ -23,11 +23,11 @@ public class ShipPairRepository {
String sql = "SELECT compatibility FROM ship_pairs WHERE user1_id = ? AND user2_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, normalized[0]);
stmt.setString(2, normalized[1]);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return rs.getDouble("compatibility");
}
@@ -51,7 +51,7 @@ public class ShipPairRepository {
DO UPDATE SET compatibility = excluded.compatibility
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, normalized[0]);
stmt.setString(2, normalized[1]);
stmt.setDouble(3, compatibility);
@@ -73,7 +73,7 @@ public class ShipPairRepository {
String sql = "DELETE FROM ship_pairs WHERE user1_id = ? AND user2_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, normalized[0]);
stmt.setString(2, normalized[1]);
stmt.executeUpdate();
diff --git a/src/main/java/creator/loki/feature/ticket/repository/TicketRepository.java b/src/main/java/creator/loki/feature/ticket/repository/TicketRepository.java
index 9113cee..1d79bb1 100644
--- a/src/main/java/creator/loki/feature/ticket/repository/TicketRepository.java
+++ b/src/main/java/creator/loki/feature/ticket/repository/TicketRepository.java
@@ -29,7 +29,7 @@ public class TicketRepository {
VALUES (?, ?, ?, ?, 0, NULL)
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, channelId);
stmt.setString(2, guildId);
stmt.setString(3, creatorId);
@@ -43,7 +43,7 @@ public class TicketRepository {
public void closeTicket(final String channelId) {
String sql = "UPDATE tickets SET closed = 1 WHERE channel_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, channelId);
stmt.executeUpdate();
} catch (SQLException e) {
@@ -54,7 +54,7 @@ public class TicketRepository {
public void deleteTicket(final String channelId) {
String sql = "DELETE FROM tickets WHERE channel_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, channelId);
stmt.executeUpdate();
} catch (SQLException e) {
@@ -66,10 +66,10 @@ public class TicketRepository {
String sql =
"SELECT channel_id, guild_id, creator_id, created_at, closed, claimed_by FROM tickets WHERE guild_id = ? AND closed = 0";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, guildId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
List results = new ArrayList<>();
while (rs.next()) {
results.add(mapRow(rs));
@@ -86,10 +86,10 @@ public class TicketRepository {
String sql =
"SELECT channel_id, guild_id, creator_id, created_at, closed, claimed_by FROM tickets WHERE channel_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, channelId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return mapRow(rs);
}
diff --git a/src/main/java/creator/loki/feature/tiktok/TempFileManager.java b/src/main/java/creator/loki/feature/tiktok/TempFileManager.java
index 60eaf7e..ad4933d 100644
--- a/src/main/java/creator/loki/feature/tiktok/TempFileManager.java
+++ b/src/main/java/creator/loki/feature/tiktok/TempFileManager.java
@@ -51,8 +51,7 @@ public class TempFileManager {
entries.put(key, entry);
saveMeta();
LoggerDecorator.database(
- logger,
- "TempFileManager: saved " + filename + " (" + (data.length / 1024 / 1024) + "MB)");
+ logger, "TempFileManager: saved " + filename + " (" + (data.length / 1024 / 1024) + "MB)");
return key;
}
@@ -81,13 +80,16 @@ public class TempFileManager {
}
public void cleanup() {
- entries.entrySet().removeIf(e -> {
- if (e.getValue().isExpired()) {
- deleteFile(e.getValue());
- return true;
- }
- return false;
- });
+ entries
+ .entrySet()
+ .removeIf(
+ e -> {
+ if (e.getValue().isExpired()) {
+ deleteFile(e.getValue());
+ return true;
+ }
+ return false;
+ });
}
private void deleteFile(TempFile entry) {
diff --git a/src/main/java/creator/loki/feature/tiktok/TikTokApi.java b/src/main/java/creator/loki/feature/tiktok/TikTokApi.java
index 8a5aa19..25b37ae 100644
--- a/src/main/java/creator/loki/feature/tiktok/TikTokApi.java
+++ b/src/main/java/creator/loki/feature/tiktok/TikTokApi.java
@@ -43,7 +43,7 @@ public class TikTokApi {
.post(RequestBody.create(requestBody.toString(), JSON))
.build();
- try (final Response response = client.newCall(request).execute()) {
+ try (Response response = client.newCall(request).execute()) {
ResponseBody body = response.body();
if (body == null) {
throw new TikTokApiException("Empty response from API");
diff --git a/src/main/java/creator/loki/feature/tiktok/TikTokCommand.java b/src/main/java/creator/loki/feature/tiktok/TikTokCommand.java
index 73a92a8..8834ee9 100644
--- a/src/main/java/creator/loki/feature/tiktok/TikTokCommand.java
+++ b/src/main/java/creator/loki/feature/tiktok/TikTokCommand.java
@@ -29,8 +29,7 @@ public class TikTokCommand implements Command {
private final String externalUrl;
@Inject
- public TikTokCommand(
- TikTokApi tikTokApi, TempFileManager tempFileManager, String externalUrl) {
+ public TikTokCommand(TikTokApi tikTokApi, TempFileManager tempFileManager, String externalUrl) {
this.tikTokApi = tikTokApi;
this.tempFileManager = tempFileManager;
this.externalUrl = externalUrl;
@@ -128,21 +127,14 @@ public class TikTokCommand implements Command {
.withAuthor("@" + result.getAuthor())
.withColor(new Color(0, 0, 0))
.addField("Длительность", durationStr, true)
+ .addField("Размер", String.format("%.1f MB", sizeMb), true)
.addField(
- "Размер",
- String.format("%.1f MB", sizeMb),
- true)
- .addField(
- "Скачать",
- "[Нажми чтобы скачать](" + downloadUrl + ")",
- false)
+ "Скачать", "[Нажми чтобы скачать](" + downloadUrl + ")", false)
.withFooter("Ссылка действительна 24 часа")
.withThumbnail(result.getCover())
.build();
- loadingMsg
- .editMessageEmbeds(embed)
- .queue();
+ loadingMsg.editMessageEmbeds(embed).queue();
}
} catch (TikTokApi.TikTokApiException e) {
@@ -167,7 +159,7 @@ public class TikTokCommand implements Command {
private byte[] downloadVideo(final String videoUrl) throws IOException {
Request request = new Request.Builder().url(videoUrl).build();
- try (final Response response = downloadClient.newCall(request).execute()) {
+ try (Response response = downloadClient.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new IOException("Download failed: HTTP " + response.code());
}
diff --git a/src/main/java/creator/loki/feature/tiktok/TikTokModule.java b/src/main/java/creator/loki/feature/tiktok/TikTokModule.java
index 6ed985f..7077fbb 100644
--- a/src/main/java/creator/loki/feature/tiktok/TikTokModule.java
+++ b/src/main/java/creator/loki/feature/tiktok/TikTokModule.java
@@ -15,9 +15,8 @@ public class TikTokModule extends AbstractModule {
@Singleton
TempFileManager provideTempFileManager(final BotConfig config) {
String dbPath = config.getDbPath();
- String dataDir = Path.of(dbPath).getParent() != null
- ? Path.of(dbPath).getParent().toString()
- : "data";
+ String dataDir =
+ Path.of(dbPath).getParent() != null ? Path.of(dbPath).getParent().toString() : "data";
return new TempFileManager(dataDir);
}
diff --git a/src/main/java/creator/loki/feature/voice/repository/VoiceChannelRepository.java b/src/main/java/creator/loki/feature/voice/repository/VoiceChannelRepository.java
index be06ef0..b4aca19 100644
--- a/src/main/java/creator/loki/feature/voice/repository/VoiceChannelRepository.java
+++ b/src/main/java/creator/loki/feature/voice/repository/VoiceChannelRepository.java
@@ -22,10 +22,10 @@ public class VoiceChannelRepository {
public VoiceChannelData getChannelData(String channelId) {
String sql = "SELECT * FROM voice_channels WHERE channel_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, channelId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
return new VoiceChannelData(
rs.getString("channel_id"), rs.getString("owner_id"), rs.getLong("created_at"));
@@ -49,7 +49,7 @@ public class VoiceChannelRepository {
created_at = excluded.created_at
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, data.getChannelId());
stmt.setString(2, data.getOwnerId());
stmt.setLong(3, data.getCreatedAt());
@@ -62,7 +62,7 @@ public class VoiceChannelRepository {
public void deleteChannelData(String channelId) {
String sql = "DELETE FROM voice_channels WHERE channel_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, channelId);
stmt.executeUpdate();
} catch (SQLException e) {
@@ -74,7 +74,7 @@ public class VoiceChannelRepository {
Map channels = new HashMap<>();
String sql = "SELECT * FROM voice_channels";
- try (final PreparedStatement stmt = database.prepare(sql);
+ try (PreparedStatement stmt = database.prepare(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
diff --git a/src/main/java/creator/loki/feature/voice/repository/VoicePresetRepository.java b/src/main/java/creator/loki/feature/voice/repository/VoicePresetRepository.java
index 4f8a9ad..7ac5043 100644
--- a/src/main/java/creator/loki/feature/voice/repository/VoicePresetRepository.java
+++ b/src/main/java/creator/loki/feature/voice/repository/VoicePresetRepository.java
@@ -22,10 +22,10 @@ public class VoicePresetRepository {
public VoicePreset getPreset(final String userId) {
String sql = "SELECT * FROM voice_presets WHERE user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
- try (final ResultSet rs = stmt.executeQuery()) {
+ try (ResultSet rs = stmt.executeQuery()) {
if (rs.next()) {
VoicePreset preset = new VoicePreset();
preset.setName(rs.getString("name"));
@@ -63,7 +63,7 @@ public class VoicePresetRepository {
denied_role_id = excluded.denied_role_id
""";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
stmt.setString(2, preset.getName());
stmt.setInt(3, preset.getLimit());
@@ -82,7 +82,7 @@ public class VoicePresetRepository {
public void deletePreset(final String userId) {
String sql = "DELETE FROM voice_presets WHERE user_id = ?";
- try (final PreparedStatement stmt = database.prepare(sql)) {
+ try (PreparedStatement stmt = database.prepare(sql)) {
stmt.setString(1, userId);
stmt.executeUpdate();
} catch (SQLException e) {
diff --git a/src/main/java/creator/loki/feature/voice/service/VoiceChannelManager.java b/src/main/java/creator/loki/feature/voice/service/VoiceChannelManager.java
index b9c478b..9dfbc1a 100644
--- a/src/main/java/creator/loki/feature/voice/service/VoiceChannelManager.java
+++ b/src/main/java/creator/loki/feature/voice/service/VoiceChannelManager.java
@@ -139,8 +139,9 @@ public class VoiceChannelManager {
public void applyUserPreset(final VoiceChannel channel, final String userId) {
var preset = getUserPreset(userId);
try {
- if (preset.getName() != null && !preset.getName().isEmpty())
+ if (preset.getName() != null && !preset.getName().isEmpty()) {
channel.getManager().setName(preset.getName()).queue();
+ }
if (preset.getLimit() >= 0) {
channel.getManager().setUserLimit(preset.getLimit()).queue();
}
diff --git a/src/main/java/creator/loki/feature/voice/service/VoiceSetupPrefixCommand.java b/src/main/java/creator/loki/feature/voice/service/VoiceSetupPrefixCommand.java
index df8b18a..02899de 100644
--- a/src/main/java/creator/loki/feature/voice/service/VoiceSetupPrefixCommand.java
+++ b/src/main/java/creator/loki/feature/voice/service/VoiceSetupPrefixCommand.java
@@ -124,11 +124,15 @@ public class VoiceSetupPrefixCommand implements Command {
.withColor(Color.BLUE);
if (triggerId != null) {
embed.addField("Канал-триггер", "<#" + triggerId + ">", false);
- } else embed.addField("Канал-триггер", "❌ Не установлен", false);
+ } else {
+ embed.addField("Канал-триггер", "❌ Не установлен", false);
+ }
if (categoryId != null) {
var category = context.getGuild().getCategoryById(categoryId);
embed.addField("Категория", category != null ? category.getName() : "❌ Не найдена", false);
- } else embed.addField("Категория", "❌ Не установлена", false);
+ } else {
+ embed.addField("Категория", "❌ Не установлена", false);
+ }
context.getChannel().sendMessageEmbeds(embed.build()).queue();
}
diff --git a/src/main/java/creator/loki/integration/nekos/NekosLifeApi.java b/src/main/java/creator/loki/integration/nekos/NekosLifeApi.java
index 0e34a16..432ed01 100644
--- a/src/main/java/creator/loki/integration/nekos/NekosLifeApi.java
+++ b/src/main/java/creator/loki/integration/nekos/NekosLifeApi.java
@@ -45,7 +45,7 @@ public class NekosLifeApi {
for (int attempt = 1; attempt <= maxRetries; attempt++) {
Request request = new Request.Builder().url(API_BASE + category).get().build();
- try (final Response response = client.newCall(request).execute()) {
+ try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
if (response.code() >= 500) {
logger.warn(
diff --git a/src/main/java/creator/loki/util/MuteDurationParser.java b/src/main/java/creator/loki/util/MuteDurationParser.java
index 2420494..aa0e454 100644
--- a/src/main/java/creator/loki/util/MuteDurationParser.java
+++ b/src/main/java/creator/loki/util/MuteDurationParser.java
@@ -24,10 +24,10 @@ public final class MuteDurationParser {
if (t.isEmpty()) {
throw new IllegalArgumentException("empty");
}
- if (t.equalsIgnoreCase("perm")
- || t.equalsIgnoreCase("permanent")
- || t.equals("0")
- || t.equalsIgnoreCase("∞")) {
+ if ("perm".equalsIgnoreCase(t)
+ || "permanent".equalsIgnoreCase(t)
+ || "0".equals(t)
+ || "∞".equalsIgnoreCase(t)) {
return new MuteDuration(true, 0);
}
var m = TOKEN.matcher(t);