Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [MISC] ProxyPackFix — предотвращение повторной установки ресурспака

FeniksDEV

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Feniksovich
IzPTZCI.png

Аналог плагина BungeePackFix от LoneDev, написанный с использованием Protocolize.

Функциональность:

— Предотвращает повторную установку ресурспака при переходе между серверами.
— Предотвращает повторную установку ресурспака, выполняемую другими плагинами.

Поддержка версий:
Протестирована работа плагина на версиях 1.16-1.19.
Теоретически возможна работа и на других версиях, вплоть до 1.8, поскольку маппинги для пакетов этих версий уже включены в плагин.

Установка:
Требуется установка Protocolize на прокси-сервер.
ProxyPackFix также устанавливается на прокси-сервер (BungeeCord).


PHP:
# Включает расширенное логгирование для используемых пакетов
debug-mode: false
# Отправлять ли фейк-пакет, передающий статус установки ресурспака.
# Всегда передает значение 0 (SUCCESSFULLY_LOADED), если игрок уже устанавливал ресурспак.
# https://wiki.vg/Protocol#Resource_Pack_.28serverbound.29
# В большинстве случаев необходимо для вызова PlayerResourcePackStatusEvent на бекенд-сервере.
# https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/player/PlayerResourcePackStatusEvent.html
send-fake-resourcepack-status-packet: true

Команды и права:
/ppf reload
— перезагрузка конфигурации.
/ppf clearcache — принудительная очистка истории установок ресурспаков игроками.
Для работы с командами требуется разрешение proxypackfix.commands.

P.S. Плагин был написан с целью опробовать Protocolize на практике. На странице репозитория GitHub опубликован список возможных обновлений, которые могут появится, если плагин будет востребован или мне снова не станет скучно.

Исходный код: https://github.com/Feniksovich/ProxyPackFix/

 
Последнее редактирование:
Звучит как то, чего мне очень давно не хватало. Да и наверное решит древнюю проблему с плагином, который выдавал ресурс паки. Очень хотелось бы версию под велосити
 
Звучит как то, чего мне очень давно не хватало. Да и наверное решит древнюю проблему с плагином, который выдавал ресурс паки. Очень хотелось бы версию под велосити
Как только совладаю с реализацией конфигов на Velocity, так будет релиз (если не найдется других попутных проблем, конечно).
 
Н-да, без проблем не обошлось.
Protocolize отказывается работать на последней дев-версии Velocity, что автоматически урезает список поддерживаемых версий — максимум 1.18 (+ др. проблемы). Думаю, релиз так быстро не выйдет, но я продолжу ковырять дальше.
 
По-моему у Velocity и так достаточно API для покрытия функционала без Protocolize?
 
По-моему у Velocity и так достаточно API для покрытия функционала без Protocolize?
Хорошо, если так и есть. Спасибо за наводку, посмотрю.
UPD: Да, для реализации этой фичи можно попробовать использовать built-in ивент. Но он впервые появился в версии 3.1.2, которая ныне не является релизной.
 
Последнее редактирование:
Да, для реализации этой фичи можно попробовать использовать built-in ивент.
Возможно больше подойдет PlayerResourcePackStatusEvent.
Но он впервые появился в версии 3.1.2, которая ныне не является релизной.
Как правило, это не то, о чем стоит задумываться. Как и у Paper, коммиты в мастер автоматически обновляют сборку на странице скачивания.
 
Возможно больше подойдет PlayerResourcePackStatusEvent.

Как правило, это не то, о чем стоит задумываться. Как и у Paper, коммиты в мастер автоматически обновляют сборку на странице скачивания.
Энивей, для игрока, установившего ресурспак ранее, требуется отменять ServerResourcePackSendEvent, однако в таком случае downstream серверу придет PlayerResourcePackStatusEvent со статусом DECLINED, а это не то, что нужно.

В любом случае разработчик Velocity заверил, что постарается реализовать это на уровне ядра, поскольку над этой проблемой команда разработчиков уже задумывалась. Так что и плагин не понадбится :)
 

Поделиться этой страницей

Назад
Верх