WorldGuard-Translator — Редактируй строки WorldGuard быстро и удобно + MiniMessage

WorldGuard-Translator — Редактируй строки WorldGuard быстро и удобно + MiniMessage 1.1

Создайте и подтвердите аккаунт для скачивания
SuperCHIROK1 обновил(а) ресурс You must be logged in to see this link. новой записью:

You must be logged in to see this link.

  • 🥖 Добавлен французский язык (Спасибо )
  • Улучшена работоспособность загрузки переводов
  • Исправлено отображение времени перезагрузки.
  • Исправлено проверка обновлений плагина

You must be logged in to see this link.
 
Исправляем 💩, которое должны были исправить сами разработчики плагина ещё почти 10 лет назад. EngineHub кринжовые.

Ну что уж поделать, других выходов нет. Разве что делать полноценный форк Worldguard или вот такие плагины 🤣
 
Ого, реально крутая идея и исполнение. Впервые вижу тут что-то настолько годное
Если бы тут была ещё возможность переместить сообщения из чата в экшнбар - вообще супер было бы
 
Посмотрел я сейчас код WG и вижу, что в методах, которые вызываются при нарушении правил региона, передается обьект Player. В теории как будто что-то провернуть можно, буду пробовать в ближайшее время реализовать такой функционал.
 
Посмотрел я сейчас код WG и вижу, что в методах, которые вызываются при нарушении правил региона, передается обьект Player. В теории как будто что-то провернуть можно, буду пробовать в ближайшее время реализовать такой функционал.

Можно сделать форк по типу этого, главное наладить чтобы можно было удобно его поддерживать с обновлениями и изменениями от enginehub в новых версиях

WorldGuardMinimessage - думаю наберёт популярность. Особенно если будет возможность редактировать 100% текста.
 
Последнее редактирование:
Можно сделать форк по типу этого, главное наладить чтобы можно было удобно его поддерживать с обновлениями и изменениями от enginehub в новых версиях
Форк хуже, тк вг под каждую версию сервера свой, да и поддержки форк требует гораздо больше. Именно это решение тем и круто, что на условной 1.21.4 актуального вг уже нет, а патчер всё равно справится
 
Если бы тут была ещё возможность переместить сообщения из чата в экшнбар - вообще супер было бы
Можно ловить сообщение через пакет и отменять его, а свой отправлять в action bar. Единственное нужно будет сделать правильную валидацию контекста
 
Можно ловить сообщение через пакет и отменять его, а свой отправлять в action bar. Единственное нужно будет сделать правильную валидацию контекста
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений

привет, в обновлении помимо #RRGGBB попрошу добавить ещё в табкомплит фильтр по префиксу (а то пока я писал component у меня глаз пару раз дёрнулся от 5 строк табкомплита), спасиба :)

Дополнение: а так плагин очень упрощает жизнь, прям ОЧЕНЬ. Весьма печально что это не было сделано в самом ворлдгуард, но спасибо тебе за столь чудесное решение!
 
Последнее редактирование:

Прогнал ещё пару своих идей через ИИ, буду рад если ты выполнишь! :)

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
 
привет, в обновлении помимо #RRGGBB попрошу добавить ещё в табкомплит фильтр по префиксу (а то пока я писал component у меня глаз пару раз дёрнулся от 5 строк табкомплита), спасиба :)
Привет, спасибо за идеи, постараюсь сделать все что ты перечислил. Но скажу сразу, сделаю я все не одним большим обновлением, а распределю на 2-3 небольших, из-за ряда своих причин.

1. Команда удаления компонентов​

Добавить команду: /wgt component remove <значение>

Что делает​

Команда удаляет указанный компонент из текущего language-файла.


Пример: /wgt component remove break that block

Если в файле перевода есть:
components:
"break that block": "ломать блоки"

После выполнения команды эта строка удаляется из конфига.

Зачем нужно​

Если удалить компонент, WorldGuard будет использовать своё дефолтное значение. Это удобно, если владелец сервера не хочет переводить конкретное действие или хочет быстро откатить отдельную строку без ручного редактирования .yml файла.
Я хотел это сделать еще в первой версии, но к сожалению, я не нашел прямой метод, который удаляет параметр (в данном случае - строку) в конфиге.
Если найду способ - реализую.

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
Такая возможность была всегда.

Логика загрузки:
 
Я хотел это сделать еще в первой версии, но к сожалению, я не нашел прямой метод, который удаляет параметр (в данном случае - строку) в конфиге.
Если найду способ - реализую.
Если используешь баккитовский конфиг, то вроде как в методе сета можно передать значение null, тогда будет удалено поле из файла.
 
Назад
Сверху Снизу