PerWorldPlugins — гибкое управление плагинами по мирам в Minecraft
Когда сервер Minecraft объединяет десятки миров с разными режимами, неизбежно возникает хаос. Плагин для мини-игр конфликтует с экономикой выживания, система приватов мешает хардкорным испытаниям, а механики прокачки ломают PvP-арены. Ручное отключение модулей через консоль утомляет, а глобальные настройки лишают гибкости. PerWorldPlugins решает эту проблему элегантно: он позволяет ограничить работу любых плагинов конкретными мирами, не затрагивая остальные.
Как это работает?
PerWorldPlugins внедряет в ядро Bukkit собственную реализацию CommandMap и модифицирует систему событий, используя умные (и совсем не «костыльные») трюки. Благодаря этому плагин перехватывает обработку команд и событий, фильтруя их по миру, в котором находится игрок. Вы просто указываете, каким плагинам разрешено работать в каждом измерении, а всё остальное берёт на себя движок PerWorldPlugins. Важно: начиная с версии 1.2 разработчики отказались от переопределения PluginManager, что резко повысило совместимость с другими расширениями.
Конфигурация: просто и понятно
Настройка сводится к редактированию единственного файла config.yml. Вот минимальный рабочий пример:
limit:
WorldEdit:
- world
- world_nether
ModReq: []
Здесь WorldEdit будет функционировать только в мирах «world» и «world_nether», а ModReq не имеет ограничений и активен везде. Если плагин вообще не указан в списке — он работает во всех мирах. Такой подход позволяет быстро собрать нужную комбинацию без лишней возни.
Два дополнительных параметра делают поведение ещё точнее. exempt-login-events (настоятельно рекомендуется держать включённым) разрешает события входа в любых мирах независимо от лимитов. Если его отключить, плагин мини-игр, заблокированный в лобби, не сможет восстановить инвентарь игрока при возвращении — вещи пропадут навсегда. blocked-msg задаёт сообщение, которое увидит игрок при попытке использовать команду запрещённого плагина. В тексте можно использовать переменные %player%, %world% и %plugin%, чтобы уведомление было информативным.
Команды и права доступа
Управление ведётся через две основные команды:
- /pwp version — показывает текущую версию PerWorldPlugins;
- /pwp reload — перезагружает конфигурацию без перезапуска сервера.
Для их использования требуется право pwp.admin. Никаких сложных деревьев разрешений — только одна нода для администратора.
Установка и первый запуск
Процесс интеграции стандартен для Bukkit-серверов. Скачайте PerWorldPlugins.jar и поместите его в папку plugins. После запуска (или рестарта) сервера автоматически создастся директория PerWorldPlugins с файлом config.yml внутри. Отредактируйте его под свои нужды, сохраните и выполните /pwp reload — плагин сразу применит новые правила. Кстати, если вы пользуетесь лаунчером foxygame.net, установка становится ещё удобнее: этот современный инструмент позволяет скачать и подключить мод прямо из меню, не отвлекаясь на ручное копирование файлов. После этого останется лишь настроить списки миров, и сервер заработает чётко по вашему сценарию.
Зачем нужен PerWorldPlugins? Преимущества
Первое и самое очевидное — предотвращение эксплойтов и нечестных тактик. Например, mcMMO с его прокачкой навыков способен испортить баланс на аренах мини-игр, а LWC с приватными замками разрушает атмосферу хардкорного выживания. PerWorldPlugins позволяет заблокировать эти плагины в конкретных мирах, сохранив их в остальных.
Второй плюс — снижение нагрузки на сервер. Многие плагины вроде SurvivalGames непрерывно отслеживают перемещения игроков, генерируя события даже в тех мирах, где они не нужны. Ограничив область их действия, вы сокращаете расход оперативной памяти и процессорного времени. Наконец, вы получаете свободу добавлять больше контента, не боясь конфликтов: каждый мир живёт по своим правилам.
Совместимость и возможные нюансы
Разработчики проделали большую работу, чтобы PerWorldPlugins дружил с большинством плагинов. Однако старые расширения, которые жёстко привязаны к SimplePluginManager, могут выдавать ошибки. К счастью, проблема решается простым рефакторингом кода: достаточно заменить прямое приведение к SimplePluginManager на работу через интерфейс PluginManager. Пример такой правки описан в документации проекта и занимает пару минут. Если же вы столкнулись с несовместимостью, создатели призывают создавать подробные тикеты — они оперативно помогают с адаптацией.
Заключение
PerWorldPlugins — это незаменимый инструмент для владельцев гибридных серверов, где миры с разными режимами должны существовать без взаимных помех. Простая YAML-конфигурация, минимум команд и высокая совместимость делают его доступным даже новичкам. Плагин не только наводит порядок в экосистеме сервера, но и помогает экономить ресурсы, отсекая лишнюю активность. Попробуйте выделить каждому миру свой набор расширений — и вы удивитесь, насколько прозрачнее станет управление.