НАЖМИ, чтобы запустить свой Сервер Майнкрафт + 8🎁
pluginПлагины/PAPIProxyBridge
PAPIProxyBridge

PAPIProxyBridge

Плагин-мост PAPIProxyBridge для связки прокси-сетей (Velocity, BungeeCord) с PlaceholderAPI. Позволяет прокси-плагинам подставлять плейсхолдеры в текст.

Оцените первым
Открыть в FateLauncher
54.1K
88

PAPIProxyBridge - это плагин-библиотека для прокси-серверов Minecraft, которая решает одну конкретную, но очень назойливую проблему владельцев сурвов из нескольких серверов. Если вы когда-нибудь собирали сеть на Velocity или BungeeCord, то знаете боль: PlaceholderAPI живёт только на бэкенд-серверах (Spigot, Paper, Fabric), а прокси о нём вообще ничего не знает. Из-за этого прокси-плагины не могут подставить в свои сообщения ник, ранг, баланс или любые другие данные игрока через привычные плейсхолдеры. PAPIProxyBridge как раз и строит этот мост между двумя мирами.

Зачем это вообще нужно

По факту схема работы простая. Вы ставите плагин на обе стороны: и на бэкенд (туда же, где уже стоит PlaceholderAPI), и на сам прокси. После этого любой прокси-плагин, который умеет работать с API этого моста, получает возможность форматировать текст с плейсхолдерами PlaceholderAPI. Хотите показать в прокси-чате данные из экономики на конкретном сервере? Пожалуйста. Нужно вывести кастомные данные игрока из плагина, который стоит только на Paper-сервере? Тоже можно.

Важно понимать: сам по себе ПАПИПроксиБридж ничего в игре визуально не меняет. Это инфраструктурная библиотека от разработчика WiIIiam278, и она нужна именно как основа для других плагинов. Если ни один из ваших плагинов его не требует, ставить его бессмысленно. А вот когда какое-то дополнение просит его в зависимостях - без этого моста никак.

Установка для владельцев серверов

Настраивать тут буквально нечего, конфигов нет. Порядок действий такой:

  1. Установите свежую версию плагина вместе с PlaceholderAPI на ваш Spigot-сервер (Minecraft 1.16.5 и новее) или мод PlaceholderAPI на Fabric (1.19.3 и новее).
  2. Поставьте тот же плагин на ваш прокси - BungeeCord, Waterfall или Velocity.
  3. Всё. Плагины, которые используют API моста, начнут работать автоматически.

Частая ошибка новичков - думать, что этот плагин заменяет PlaceholderAPI. Нет, это не замена. PlaceholderAPI по-прежнему должен стоять на бэкенде, мост лишь передаёт его данные на прокси. Скачать PAPIProxyBridge стоит вместе с самим PlaceholderAPI, иначе связка просто не заведётся.

Кстати, проект живой и активно обновляется: последние сборки (версия 1.8.4) вышли буквально пару недель назад, заявлена поддержка Minecraft от 1.16.5 вплоть до 1.21.8. Из платформ поддерживаются BungeeCord, Waterfall, Velocity, Paper, Spigot, Folia и Fabric - то есть покрыт практически весь современный стек серверов Майнкрафт. Лицензия проекта - Apache-2.0, так что использовать его можно свободно даже в своих разработках.

Где всё это запустить

Если вы собираете свою сеть серверов и вам нужен хостинг Майнкрафт под прокси-связку, удобнее всего арендовать сервер Майнкрафт на BungeeHost. Судя по названию, ребята спецом заточены под BungeeCord-архитектуры: можно создать сервер Майнкрафт на Bungee.Host, развернуть Velocity или BungeeCord в пару кликов и без танцев запустить сервер Майнкрафт с полноценной сетью из бэкендов. Для связки с PAPIProxyBridge это идеальная площадка - хостинг серверов Майнкрафт, где прокси и бэкенды живут под одной крышей, поэтому задержки между ними минимальны. А это важно: каждый запрос плейсхолдера - это сетевой вызов с прокси на бэкенд.

Для разработчиков

Для тех, кто пишет свои плагины под прокси, PAPIProxyBridge отдаёт кроссплатформенный API для форматирования текста с плейсхолдерами.

Подключение библиотеки к проекту

Библиотека лежит на repo.william278.net. Сначала добавьте maven-репозиторий в build.gradle:

repositories {
    maven { url 'https://repo.william278.net/releases/' }
}

Затем подключите зависимость:

dependencies {
    implementation 'net.william278:papiproxybridge:1.6'
}
Пример использования API

Класс PlaceholderAPI и предоставляет всё нужное для форматирования. На текущий момент поддерживаются только одиночные плейсхолдеры без скобок (расширенные варианты обещают позже).

Получите инстанс через PlaceholderAPI.getInstance(), а затем вызовите метод #formatPlaceholders, передав строку с плейсхолдерами и UUID игрока (UUID выбран ради кроссплатформенной простоты).

Метод возвращает CompletableFuture - это сделано специально, чтобы прокси не блокировал потоки, пока общается по сети с бэкендом. Результат принимаете через thenAccept:

// Форматируем строку с плейсхолдерами
final PlaceholderAPI api = PlaceholderAPI.createInstance();
final UUID player = player.getUniqueId();
api.formatPlaceholders("Hello %player_name%!", player).thenAccept(formatted -> {
    player.sendMessage(formatted);
});

Никогда не вызывайте #join() на результатах #formatPlaceholders - это небезопасно и может подвесить прокси.

Чтобы не заваливать сетевые каналы сервера лишним трафиком, плагин кэширует разрешённые запросы на 30000 миллисекунд (30 секунд). Время жизни кэша можно скорректировать методом PlaceholderAPI#setCacheExpiry(long).

Есть и метод #formatComponentPlaceholders - он принимает строку с плейсхолдерами и возвращает adventure component, который может содержать форматирование и чат-события. Удобно, если вам нужно не просто "у Милого нынче%d_уровень%", а полноценное стилизованное сообщение.

Нюансы, о которых стоит знать

  • Кеширование на 30 секунд - палка о двух концах. С одной стороны, сеть не задыхается от запросов. С другой - если данные игрока (например, баланс) только что изменились, прокси-плагин ещё полминуты может показывать старое значение. Для динамичных данных уменьшайте setCacheExpiry.
  • Плагин работает на Fabric именно как мод, поэтому на бэкенд под Fabric нужна модовая версия PlaceholderAPI, а не Bukkit-плагин.
  • Ограничение на одиночные плейсхолдеры без скобок иногда кусается: вложенные конструкции вроде %javascript_...% с внутренними скобками могут не сработать. Проверяйте свои плейсхолдеры до продакшена.

Если вы владелец сети серверов и хотите, чтобы прокси-плагины показывали живые данные игроков - скачивайте PAPIProxyBridge и ставьте его на все звенья сети. Для разработчиков под Velocity и BungeeCord это, пожалуй, самый простой способ подружить свои плагины с PlaceholderAPI без изобретения своих велосипедов на plugin messaging channels.

Часто задаваемые вопросы

Зависимости

Создатели

Детали

Лицензия:
Опубликован:3 года назад
Обновлён:1 месяц назад

Версии плагина PAPIProxyBridge

Доступно 273 версий. Сначала показаны самые популярные и самые свежие.

16 из 273 версий
Самые популярные
R
1.8.4PAPIProxyBridge (Spigot) v1.8.4
1.17.11.18.x1.19.x1.20.x
R
1.8.4PAPIProxyBridge (Velocity) v1.8.4
1.17.11.18.x1.19.x1.20.x
A
1.8.4-c4d2079PAPIProxyBridge (Velocity) v1.8.4-c4d2079
1.17.11.18.x1.19.x1.20.x
A
1.8.4-d479e5cPAPIProxyBridge (Velocity) v1.8.4-d479e5c
1.17.11.18.x1.19.x1.20.x
A
1.8.4-c4d2079PAPIProxyBridge (Spigot) v1.8.4-c4d2079
1.17.11.18.x1.19.x1.20.x
R
1.6.2PAPIProxyBridge v1.6.2
1.17.11.18.x1.19.x1.20.x
Самые Новые
A
1.8.4-1959e64PAPIProxyBridge (Velocity) v1.8.4-1959e64
1.17.11.18.x1.19.x1.20.x
A
1.8.4-1959e64PAPIProxyBridge (Bungee) v1.8.4-1959e64
1.17.11.18.x1.19.x1.20.x
A
1.8.4-1959e64PAPIProxyBridge (Fabric) v1.8.4-1959e64
1.21.8
A
1.8.4-1959e64PAPIProxyBridge (Fabric) v1.8.4-1959e64
1.21.5
A
1.8.4-1959e64PAPIProxyBridge (Fabric) v1.8.4-1959e64
1.21.4
A
1.8.4-1959e64PAPIProxyBridge (Fabric) v1.8.4-1959e64
1.21.1
A
1.8.4-1959e64PAPIProxyBridge (Fabric) v1.8.4-1959e64
1.20.1
A
1.8.4-1959e64PAPIProxyBridge (Spigot) v1.8.4-1959e64
1.17.11.18.x1.19.x1.20.x
A
1.8.4-72367f6PAPIProxyBridge (Velocity) v1.8.4-72367f6
1.17.11.18.x1.19.x1.20.x
A
1.8.4-72367f6PAPIProxyBridge (Bungee) v1.8.4-72367f6
1.17.11.18.x1.19.x1.20.x
Главная