Прогнал ещё пару своих идей через ИИ, буду рад если ты выполнишь!
1. Команда удаления компонентов
Добавить команду: /wgt component remove <значение>
Что делает
Команда удаляет указанный компонент из текущего language-файла.
Пример: /wgt component remove break that block
Если в файле перевода есть:
components:
"break that block": "ломать блоки"
После выполнения команды эта строка удаляется из конфига.
Зачем нужно
Если удалить компонент, WorldGuard будет использовать своё дефолтное значение. Это удобно, если владелец сервера не хочет переводить конкретное действие или хочет быстро откатить отдельную строку без ручного редактирования .yml файла.
2. Команда поиска компонентов
Добавить команду:
/wgt component search <значение>
Что делает
Команда ищет все компоненты, в которых есть указанное совпадение.
Пример: /wgt component search block
Если в конфиге есть:
components:
"place that block": "ставить блоки"
"break that block": "ломать блоки"
В игре должно вывести:
place that block -> ставить блоки
break that block -> ломать блоки
Например: /wgt component search ломать
должно найти:
break that block -> ломать блоки
Зачем нужно
Это улучшенная версия /wgt component list. Когда компонентов много, листать полный список неудобно. Поиск прямо в игре сильно упрощает настройку переводов.
3. Команда смены языка
Добавить команду:
/wgt lang <язык>
Примеры:
/wgt lang ru
/wgt lang en
/wgt lang empty
Что делает
Команда автоматически меняет основной язык плагина в главном конфиге.
Например, было:
language: en
После команды:
/wgt lang ru
становится:
language: ru
После этого плагин должен сохранить конфиг и автоматически перезагрузить переводы.
4. Поддержка PlaceholderAPI
Добавить поддержку PlaceholderAPI для сообщений плагина.
Что должно поддерживаться
PlaceholderAPI должен работать в deny-сообщениях и переводах компонентов.
Например:
deny_message: "&#ff5400%player_name%, &fты не можешь &#ff5400%what% &fздесь!"
Или:
deny_message: "&#ff5400%player_name%&f, действие запрещено в этом мире."
Если установлен PlaceholderAPI, плейсхолдеры должны заменяться на реальные значения.
Если PlaceholderAPI не установлен, плагин должен работать как раньше и не выдавать ошибку.
Зачем нужно
Это уже не просто косметика, а реально сильная функция. Через PlaceholderAPI владельцы серверов смогут делать более гибкие сообщения: с ником игрока, миром, балансом, группой, сервером и другими данными.
5. Антиспам сообщений
Добавить встроенный антиспам для deny-сообщений.
Конфиг
anti_spam:
enabled: true
cooldown_ms: 1000
Что делает
Если игрок слишком часто вызывает deny-сообщение WorldGuard, плагин должен ограничивать частоту отправки.
Например, если стоит:
cooldown_ms: 1000
игрок сможет получать максимум одно сообщение в секунду.
В WorldGuard антиспам уже есть, но его нельзя настраивать. Раз плагин всё равно обрабатывает эти сообщения, логично дать владельцу сервера полный контроль над частотой вывода.
6. Пользовательские language-файлы
Добавить возможность создавать любые свои language-файлы в папке:
plugins/WorldGuard-Translator/translations/
Например:
translations/en.yml
translations/ru.yml
translations/empty.yml
translations/abrakabra.yml
translations/spawn.yml
translations/grief.yml
7. Разные языки для разных миров
Добавить настройку языков по мирам.
Конфиг
language: ru
world_languages:
enabled: true
worlds:
spawn: empty
world: ru
world_nether: ru
world_the_end: ru
Результат:
spawn -> сообщения отключены или пустые
rtp -> сообщения на русском
любой другой мир -> используется ru
Зачем нужно
Это очень сильная функция. Например, на спавне можно полностью скрыть сообщения WorldGuard, чтобы игрокам не спамило в чат при кликах по защищённым блокам. А в обычном мире, на ртп или на грифе можно показывать нормальные переведённые сообщения.
8. Пустой язык empty.yml
Добавить в стандартную поставку файл:
translations/empty.yml
Вариант конфига
deny_message: ""
components: {}
Или так:
deny_message: "none"
components: {}
Но лучше именно пустая строка, если плагин сможет корректно её обработать.
9. Дефолтные language-файлы
В папке translations по умолчанию сделать 4 файла:
en.yml
ru.yml
fr.yml
empty.yml
empty.yml
Пустой язык для отключения сообщений в отдельных мирах.
deny_message: ""
components: {}
Итоговая структура конфига
Пример главного config.yml:
language: ru
world_languages:
enabled: true
worlds:
spawn: empty
world: ru
world_nether: ru
world_the_end: ru
anti_spam:
enabled: true
cooldown_ms: 1000
placeholderapi:
enabled: true