Рейтинг
42
№ 115 459 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Опыт работы
4 года
На сайте с
2020 года
Юридический статус
Самозанятый

RDuels — Java-плагин дуэльной PvP-системы для Minecraft-серверов на Paper 1.21

Используемые навыки Java Minecraft MySQL

Описание

Клиент — владелец Minecraft-сервера — хотел получить собственную систему дуэлей вместо готовых бесплатных или платных решений с рынка, поскольку они не давали нужной гибкости: ограниченные форматы боёв, отсутствие нормального API для интеграции с другими плагинами сервера, негибкая система арен и наборов снаряжения.

Задача звучала так: разработать плагин с нуля, который поддерживает разные форматы дуэлей (1 на 1, 2 на 2, «отряд на отряд»), даёт игрокам возможность создавать собственные наборы предметов, а администраторам — полный контроль над аренами, очередями и статистикой. Отдельным требованием было предусмотреть открытое API, чтобы другие разработчики и сам клиент могли встраивать систему дуэлей в свои проекты и расширять функциональность без переписывания ядра плагина.

Ключевые требования клиента:
— модульная архитектура, где каждая система (дуэли, отряды, арены, таблички, наборы) работает независимо;
— поддержка до 20 точек спавна на арене и импорт схем через WorldEdit;
— система табличек для быстрого запуска дуэлей и автоматических очередей;
— режим наблюдателя за чужими боями;
— расширенная статистика игроков (килы, смерти, раунды, победы);
— документация и публичное API для сторонних разработчиков.

Решение

Проект реализован на Java 21 под Paper API для Minecraft 1.21.

Спроектировал модульную архитектуру: каждая функциональная область (дуэли, отряды/party, арены, таблички, кастомные наборы) вынесена в отдельный независимый модуль с собственным API-интерфейсом (DuelAPI, PartyAPI, ArenaAPI, SignAPI, CustomKitAPI), что позволяет подключать или отключать компоненты и упрощает дальнейшую поддержку.
Реализовал систему дуэлей с поддержкой форматов 1v1, 2v2 и «пати на пати», включая очередь вызовов, подтверждение боя и логику завершения раунда.
Разработал систему кастомных наборов (Kits) — как серверных пресетов, так и индивидуальных наборов, которые игроки могут сохранять и переиспользовать через /custom-kit и /r-duel savekit.
Добавил систему отрядов (Party) для командных дуэлей с приглашениями и управлением составом.
Реализовал арены с поддержкой до 20 точек спавна и интеграцией со схемами WorldEdit для быстрого создания боевых зон.
Создал систему интерактивных табличек для запуска дуэлей одним кликом, с настраиваемыми режимами и автоматическим формированием очередей.
Добавил вспомогательные механики: локальную смену времени суток (/day, /night) для игроков на арене и режим наблюдателя (/spectator) за чужими боями.
Внедрил систему статистики: подсчёт киллов, смертей, побед и раундов через объект DuelPlayer, доступный как через игровые команды, так и через API.
Спроектировал и задокументировал открытое API (через RDuels.beanScope()), позволяющее сторонним разработчикам получать доступ к состоянию игрока (в бою ли он, состоит ли в отряде), статистике и всем внутренним модулям плагина. Подготовил отдельную wiki-документацию по DuelAPI, CustomKit и ArenaAPI.
Настроил сборку проекта через Gradle, обеспечил совместимость с требованиями Java 21 и Paper.

Результат

Готовый production-ready плагин RDuels, который клиент устанавливает на свой Minecraft-сервер как обычный .jar-файл через папку plugins. Плагин полностью покрывает исходное техническое задание:

— игроки получили гибкую PvP-систему с разными форматами боёв, кастомными наборами, отрядами и наблюдением за чужими дуэлями;
— администраторы получили полный контроль над аренами, табличками, наборами и статистикой через отдельные команды и права доступа;
— благодаря модульной архитектуре плагин легко расширять — каждый компонент можно дорабатывать отдельно, не затрагивая остальные;
— открытое и задокументированное API позволяет клиенту и другим разработчикам интегрировать систему дуэлей с прочими плагинами сервера (экономикой, кланами, рейтингами и т.д.) без обращения к исходному коду ядра.

Плагин выпущен как публичный релиз на GitHub и используется на боевом сервере клиента, а также доступен как основа для дальнейшей коммерческой доработки под конкретные проекты.

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT JavaCrypter — защита байткода Java-приложений от декомпиляции для лицензируемых сборок
JavaCrypter — защита байткода Java-приложений от декомпиляции для лицензируемых сборок
34