Update to Minecraft 1.21.8, add checkstyle, fix compilation errors

- Update Paper API: 1.20.1 -> 1.21.4
- Update plugin version: 1.5.5-1.20.1 -> 1.5.5-1.21.8
- Add checkstyle plugin with reasonable rules
- Fix Enchantment.LUCK -> Enchantment.UNBREAKING
- Fix EntityType.FIREWORK -> EntityType.FIREWORK_ROCKET
- Remove unused imports
- Add temp_*/ to .gitignore
- 118 files changed, 1633 insertions(+), 1301 deletions(-)
This commit is contained in:
loki5512344 2026-02-24 00:04:03 +01:00
parent 6a4c8a7886
commit e78d8a2de4
121 changed files with 1792 additions and 1301 deletions

View file

@ -7,7 +7,10 @@ import org.bukkit.entity.Player;
*/
public interface ChatService {
void sendGlobalMessage(Player sender, Object message);
void sendLocalMessage(Player sender, Object message);
boolean toggleGlobalChat(java.util.UUID player);
boolean isGlobalChatDisabled(java.util.UUID player);
}

View file

@ -7,7 +7,10 @@ import java.util.UUID;
*/
public interface CooldownService {
boolean isOnCooldown(UUID player, String type, int cooldownSeconds);
int getRemainingCooldown(UUID player, String type, int cooldownSeconds);
void setCooldown(UUID player, String type);
void removeCooldown(UUID player);
}

View file

@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
public interface MessageFilter {
/**
* Применить фильтр к сообщению
*
* @return отфильтрованное сообщение или null если заблокировано
*/
Object apply(Player player, Object message, String plainMessage);

View file

@ -7,9 +7,14 @@ import java.util.UUID;
*/
public interface MuteService {
void mute(UUID uuid, String playerName, long duration, String reason, String mutedBy);
boolean unmute(UUID uuid, String unmutedBy);
boolean isMuted(UUID uuid);
long getRemainingTime(UUID uuid);
String formatTime(long millis);
long parseTime(String timeStr);
}

View file

@ -9,6 +9,7 @@ import org.bukkit.entity.Player;
public interface MessageFilter {
/**
* Применить фильтр к сообщению
*
* @return true если сообщение прошло фильтр, false если заблокировано
*/
boolean apply(Player player, ChatMessage message);

View file

@ -9,7 +9,10 @@ import java.util.UUID;
*/
public interface ChatService {
void sendGlobalMessage(Player sender, Object message);
void sendLocalMessage(Player sender, Object message);
boolean toggleGlobalChat(UUID player);
boolean isGlobalChatDisabled(UUID player);
}

View file

@ -7,7 +7,10 @@ import java.util.UUID;
*/
public interface CooldownService {
boolean isOnCooldown(UUID player, String type, int cooldownSeconds);
int getRemainingCooldown(UUID player, String type, int cooldownSeconds);
void setCooldown(UUID player, String type);
void removeCooldown(UUID player);
}

View file

@ -11,39 +11,41 @@ public interface IgnoreService {
* Проверяет, игнорирует ли игрок другого
*/
boolean isIgnoring(UUID player, UUID target);
/**
* Добавляет игрока в список игнорируемых
*
* @return true если успешно добавлен
*/
boolean addIgnore(UUID player, UUID target);
/**
* Удаляет игрока из списка игнорируемых
*
* @return true если успешно удалён
*/
boolean removeIgnore(UUID player, UUID target);
/**
* Получает список всех игнорируемых игроков
*/
Set<UUID> getIgnoredPlayers(UUID player);
/**
* Получает количество игнорируемых игроков
*/
int getIgnoredCount(UUID player);
/**
* Очищает список игнорируемых для игрока
*/
void clearIgnores(UUID player);
/**
* Сохраняет данные на диск
*/
void save();
/**
* Загружает данные с диска
*/

View file

@ -10,26 +10,27 @@ import java.util.Set;
public interface MentionService {
/**
* Обрабатывает упоминания в сообщении
*
* @return сообщение с подсвеченными никами
*/
String processMentions(String message, Set<Player> mentionedPlayers);
/**
* Создаёт персонализированное сообщение для игрока
* Если его ник упомянут — выделяет его особым образом
*/
String getPersonalizedMessage(String message, Player viewer);
/**
* Проверяет, упомянут ли игрок в сообщении (по нику без @)
*/
boolean isPlayerMentioned(String message, Player player);
/**
* Уведомляет упомянутых игроков звуком
*/
void notifyMentioned(Set<Player> players);
/**
* Уведомляет игрока если его ник упомянут (без @)
*/

View file

@ -8,6 +8,7 @@ import org.bukkit.entity.Player;
public interface MessageService {
/**
* Обработать входящее сообщение чата
*
* @return true если сообщение обработано успешно
*/
boolean processMessage(Player player, String message);

View file

@ -13,30 +13,38 @@ import java.util.UUID;
public interface MuteService {
// Основные операции
void mute(UUID uuid, String playerName, long duration, String reason, String mutedBy);
boolean unmute(UUID uuid, String unmutedBy);
boolean isMuted(UUID uuid);
MuteData getMuteData(UUID uuid);
long getRemainingTime(UUID uuid);
// Утилиты времени
String formatTime(long millis);
long parseTime(String timeStr);
// Права доступа
long getMaxDuration(Player player);
boolean canMuteForDuration(Player player, long duration);
// История
List<MuteData.MuteHistoryEntry> getPlayerHistory(UUID uuid);
List<MuteData.MuteHistoryEntry> getMutesByOperator(String operatorName);
UUID getUUIDByName(String name);
// Список активных мутов
Map<UUID, MuteData> getActiveMutes();
// Форматирование сообщений
String formatMessage(String message, String player, String operator, String duration, String reason);
// Сохранение
void save();
}

View file

@ -9,48 +9,54 @@ import java.util.UUID;
* Сервис для управления кастомными никами
*/
public interface NickService {
/**
* Устанавливает кастомный ник игроку
* @param player UUID игрока
*
* @param player UUID игрока
* @param nickname Новый ник (с поддержкой цветов и русских символов)
* @return true если успешно, false если ник занят или невалиден
*/
boolean setNickname(UUID player, String nickname);
/**
* Сбрасывает кастомный ник игрока
*
* @param player UUID игрока
*/
void resetNickname(UUID player);
/**
* Получает кастомный ник игрока
*
* @param player UUID игрока
* @return Optional с ником или empty если нет кастомного ника
*/
Optional<String> getNickname(UUID player);
/**
* Проверяет занят ли ник
*
* @param nickname Ник для проверки
* @return true если ник уже используется
*/
boolean isNicknameTaken(String nickname);
/**
* Валидирует ник (длина, символы)
*
* @param nickname Ник для проверки
* @return true если ник валиден
*/
boolean isValidNickname(String nickname);
/**
* Обновляет displayName и tabName игрока
*
* @param player Игрок
*/
void updatePlayerDisplay(Player player);
/**
* Сохраняет данные
*/

View file

@ -11,17 +11,17 @@ public interface PMService {
* Устанавливает последнего собеседника для игрока
*/
void setLastConversation(UUID player, UUID target);
/**
* Получает последнего собеседника игрока
*/
Optional<UUID> getLastConversation(UUID player);
/**
* Удаляет информацию о последнем разговоре
*/
void removeConversation(UUID player);
/**
* Проверяет, есть ли у игрока активный разговор
*/

View file

@ -7,5 +7,6 @@ import java.util.UUID;
*/
public interface PlayerDataService {
void clearPlayerData(UUID player);
void saveAll();
}

View file

@ -9,25 +9,26 @@ import org.bukkit.entity.Player;
public interface SpyService {
/**
* Переключает режим шпиона для игрока
*
* @return true если шпион включен, false если выключен
*/
boolean toggleSpy(java.util.UUID player);
/**
* Проверяет, находится ли игрок в режиме шпиона
*/
boolean isSpying(java.util.UUID player);
/**
* Отправляет сообщение всем шпионам (для обычного чата)
*/
void sendToSpies(Player sender, Component message, boolean isGlobal);
/**
* Отправляет информацию о личном сообщении шпионам
*/
void broadcastPM(Player sender, Player receiver, String message);
/**
* Удаляет игрока из списка шпионов
*/