
FlectoneAddons
Guest protection and alt-account detection for FlectonePulse servers. Every message goes through the FlectonePulse pipeline.
Список изменений
➕ New Features and Mechanics
Autonomous RCON Verification: Added the VerifiedStore class and a new configuration setting verification-mode: "RCON". The plugin can now store a database of verified nicknames in a local verified.yml file. This allows the bot to lift restrictions from players via RCON even before they join the server for the first time (LuckPerms support remains and can be selected in config.yml, but RCON is set as the default).
Command System: Added a new command /flectoneguest (and alias /fguest) for access management. Available arguments: verify <player>, unverify <player>, check <player>, list (list of verified players), and reload. The commands are adapted for safe execution from the console (RCON).
Universal Action Interception: The onPlayerInteract logic has been completely rewritten. The plugin now reacts to absolutely any guest clicks (left and right mouse clicks on blocks, items, or simply in the air) and blocks them.
PvP/PvE Notifications: Added a warning dispatch to the onEntityDamageByEntity handler. If a guest attempts to hit a mob or a player, they will receive a guest mode notification (dealing damage/hitting was already blocked previously, but it is now accompanied by a text message).
⚙️ Optimization and Bug Fixes
Chat Spam Eradication: Text warning dispatches have been removed from the block break (onBlockBreak) and block place (onBlockPlace) events. These actions are still reliably, but "silently", blocked. The notification is only issued once based on the mouse click via onPlayerInteract, which allows the built-in delay timer (cooldown) to work perfectly without duplicate messages.
Localization Reset Hotfix (Race Condition): Fixed a critical bug that caused localization to reset during server restarts or core reloads. An initialized failsafe has been added to the main class, forcing the plugin to ignore premature EndReloadEvent triggers from the FlectonePulse core until the onEnable() method fully completes.
Smart Language File Recovery: Strengthened the MessageManager.loadLocales() method. Now, if only a single language file (e.g., ru_ru.yml) is damaged or deleted, the plugin will specifically restore that exact file from the .jar archive without overwriting or resetting other custom localization settings.
➕ Новые функции и механики
Автономная RCON-верификация: Добавлен класс VerifiedStore и новая настройка в конфигурации verification-mode: "RCON". Плагин теперь умеет хранить базу верифицированных никнеймов в локальном файле verified.yml. Это позволяет боту снимать ограничения с игроков через RCON еще до того, как они впервые зайдут на сервер (поддержка LuckPerms осталась ее можно выбрать в config.yml но по умолчанию будет стоять RCON).
Система команд: Добавлена новая команда /flectoneguest (и алиас /fguest) для управления доступом. Доступные аргументы: verify <ник>, unverify <ник>, check <ник>, list (список добавленных) и reload. Команды адаптированы для безопасного вызова из консоли (RCON).
Универсальный перехват действий: Логика onPlayerInteract полностью переписана. Теперь плагин реагирует на абсолютно любые клики гостя (левой и правой кнопкой мыши по блокам, предметам или просто в воздухе) и блокирует их.
Уведомления при ПВП/ПВЕ: В обработчик onEntityDamageByEntity добавлена отправка предупреждения. Если гость попытается ударить моба или игрока, он получит сообщение о гостевом режиме (само получение урона/удар блокировалось и раньше, но теперь сопровождается текстом).
⚙️ Оптимизация и исправление багов
Искоренение спама в чате: Отправка текстовых предупреждений убрана из событий разрушения (onBlockBreak) и установки (onBlockPlace) блоков. Эти действия по-прежнему надежно, но "тихо" блокируются. Уведомление выдается только один раз на основе клика мыши через onPlayerInteract, что позволяет встроенному таймеру задержки (кулдауну) работать идеально без задвоений.
Хотфикс сброса локализации (Race Condition): Устранен критический баг, из-за которого локализация сбрасывалась при рестартах сервера/перезагрузках ядра. В главный класс добавлен предохранитель initialized, заставляющий плагин игнорировать преждевременные события EndReloadEvent от ядра FlectonePulse до момента полного завершения метода onEnable().
Умное восстановление файлов языка: Усилен метод MessageManager.loadLocales(). Теперь, если будет поврежден или удален только один языковой файл (например, ru_ru.yml), плагин точечно восстановит именно его из jar архива, не затирая и не сбрасывая остальные пользовательские настройки локализации.
