「 RDang 」Уникальный плагин на кастом данжи для вашего майнкрафт сервера

「 RDang 」Уникальный плагин на кастом данжи для вашего майнкрафт сервера 1.4

**1.4 - Производительная обнова**

**Атомарное удаление из конфига:**
> Переписал логику в Undo. Теперь запись в `block.yml ` стирается в ту же секунду, как только начался откат. Это гарантирует, что если процесс прервется, в файлах не останется "мусора" и битых ссылок.

**Thread Safety:**
> Полностью изолировал `save() ` и работу с конфигами от асинхронных задач. Файлы теперь пишутся только в основном потоке, что исключает риск повреждения данных (`ConcurrentModificationException` или битые `.yml`).

**Локальный кэш координат: **
> Теперь перед запуском асинхронного восстановления блоков все нужные координаты и данные мира копируются в локальные переменные. Задача больше не лезет в конфиг во время выполнения — она работает с уже готовым "снимком" данных.

**Защита от "зависших" шалкеров: **
> Изменил алгоритм очистки списка шалкеров. Теперь плагин сначала собирает все цели в отдельный список и удаляет их "одним махом" после итерации. Это решает проблему ошибок при попытке изменить коллекцию во время перебора.

**Умный ActionBar: **
> Добавил жесткие проверки на `null` и дефолтные значения. Если в конфиге не прописан текст таймера или сообщения, плагин подставит стандартную фразу и не выдаст ошибку в консоль.

**Flyweight для предметов: **
> В меню внедрен кэш шаблонов `(dungeonTemplates)`. Предметы создаются один раз при запуске и просто клонируются при открытии GUI. Это в разы снижает нагрузку на память.

**Авто-нормализация в MessageUtil: **
> Добавил механизм, который сам превращает `{world}, {region}` и прочее в `%s`. Теперь вместо кучи медленных `.replace()` используется один быстрый `String.format()`.

**Кэш HEX-цветов: **
> Все раскрашенные строки теперь живут в `ConcurrentHashMap`. Если сообщение уже красилось один раз, оно берется из памяти мгновенно.

**Оптимизация HeadUtil: **
> Внедрил проверку длины через `&&` в `isBase64Head`. Теперь код не делает лишних проверок, если строка слишком короткая. Также ускорил чтение `NBT` голов, убрав лишние циклы.

**Очистка от Legacy-мусора: **
> Вырезал все старые и медленные методы поиска высоты в `SpawnManager`. Оставил только современную работу через `API` и эффективные циклы для ада и энда.

**Человеческие логи: **
> Заменил стандартный логгер на понятный `System.out.println` с префиксом [Rdang]. Теперь в консоли четко пишется состояние плагина, ошибки бэкапов или прогресс вставок.

**Полная чистка кода: **
> Убрал все старые комментарии, лишние пробелы и "мусорные" строки. Код теперь плотный, профессиональный и легко читается.

**Фикс бага со схематиками:**
> Пофиксили баг что бывало не удалялись схематики данжей
**1.3 - мини обнова**

> Добавили логи для секции messages и удалили `setDefaultMessages()`
> Убрал `= "" и = new ArrayList<>() ` в объявлении полей
> И убрали метод `getDisplayName` в классе `WorldHeightManager`
**1.2 - мини обнова**

> Обновил дизайн сообщения в консоли об новой версии плагине.
> Теперь в логах вместо [ERROR] будет [Rdang].
> Пофиксили баг с меню, что не закрывалось
  • Добавили кд для компаса и такие параметры, как в items.yml
    • сooldown: "30s" # Поддерживает 1m, 1h, 10s и т.д.
    • sounds: "item_totem_use" # Звук при активации
  • Убрали полностью def к предметам, и вместо этого добавили логи, если material: и т. д. неправильный или нет, при этом плагин не будет ломатса.
  • Исправили некоторые баги и т.д

Помочь проекту 💕

Собрано
"52,204.60" ₽
Цель
"60,000.00" ₽