Мы провели значительную работу по улучшению плагина, добавив новый функционал, исправив ошибки и сделав его более удобным и стабильным. Вот все ключевые изменения:
1. Интерактивное управление авто-обменом опыта через GUI
Добавлено: В меню /vexp вернулась кнопка для управления автоматическим обменом опыта.
Если авто-обмен уже включён, клик по кнопке отключит его.
Если авто-обмен выключен, меню закроется, и плагин предложит игроку ввести желаемый уровень для авто-обмена прямо в чат. Это позволяет тонко настроить авто-обмен без использования команд.
Новая логика обработки ввода в чате: Добавлен специальный обработчик для сообщений игрока в чате после клика на кнопку авто-обмена.
Игрок может ввести числовой уровень, чтобы активировать авто-обмен на этом уровне.
Игрок может ввести "отмена" или "cancel", чтобы отменить настройку авто-обмена.
После ввода (успешного, отмены или неверного), меню /vexp автоматически открывается обратно, обеспечивая плавный пользовательский опыт.
Сохранена команда /vexpauto: Команда /vexpauto <уровень|disable> по-прежнему полностью функциональна и предоставляет альтернативный, более быстрый способ управления авто-обменом.
Добавлены/Обновлены сообщения: В config.yml добавлены новые сообщения для взаимодействия с игроком при настройке авто-обмена через чат, а также обновлены существующие для лучшей ясности.
2. Улучшенные и точные сообщения об ошибках для авто-обмена
Улучшено: Плагин теперь предоставляет конкретные причины, по которым автоматический обмен опыта отключается. Вместо общего сообщения, игроки получают точную информацию:
auto-exp-disabled-not-enough-exp: Если у игрока недостаточно опыта для создания бутылочки.
auto-exp-disabled-inventory-full: Если инвентарь игрока полон и нет места для новой бутылочки опыта.
auto-exp-disabled-no-glass-bottles: Если у игрока нет пустых стеклянных бутылочек для обмена.
Оптимизация логики инвентаря: Пересмотрена логика проверки места в инвентаре, чтобы авто-обмен не отключался ошибочно, если у игрока есть стеклянная бутылочка, которую можно заменить на готовую.
3. Улучшенная логика авто-починки брони и информативность
Более точное сообщение об отсутствии брони: Исправлено сообщение при попытке починки. Теперь, если на игроке нет надетой брони, будет выведено сообщение no-armor-equipped вместо repair-full-armor.
Оптимизация вызовов починки: Метод repairArmorWithBottle теперь используется более единообразно и с параметром returnLeftoverExp, что обеспечивает корректный возврат неиспользованного опыта после починки.
Проверки наличия брони: Дополнительные проверки гарантируют, что плагин не будет пытаться чинить броню, которой нет, или целую броню, что снижает ненужные операции.
4. Оптимизация частиц опыта для ванильных бутылочек
Добавлено: При использовании "ванильного" режима для бутылочек опыта (experience.optimized-orbs: true в config.yml), плагин теперь спавнит одну большую частицу опыта (ExperienceOrb), содержащую весь опыт.
Преимущество: Это значительно снижает нагрузку на сервер и улучшает производительность, особенно при выдаче большого количества опыта, так как избегается создание множества мелких частиц.
5. Требование пустой стеклянной бутылочки для обмена опыта
Добавлено: Теперь для обмена уровня опыта на бутылочку через GUI (/vexp) игроку требуется иметь одну пустую стеклянную бутылочку (Material.GLASS_BOTTLE) в инвентаре.
Исправлено: Предотвращено создание бутылочек опыта "из воздуха", что улучшает игровой баланс.
6. Контроль создания кастомных бутылочек опыта через /vexpadd
Добавлено: В config.yml появился новый параметр allow-custom-bottle-creation.
Настройка: Администраторы сервера теперь могут отключить возможность создания бутылочек с произвольным уровнем опыта через команду /vexpadd, что даёт больше контроля над экономикой и балансом.
7. Удаление устаревшей секции "Починка брони" в GUI
Удалено: Отдельная кнопка для "Починить броню" (Material.ANVIL) из меню /vexp была убрана.
Причина: С добавлением функции авто-починки, эта кнопка стала избыточной, что упрощает интерфейс и логику плагина.