CannonRTP (WorldCannon)
CannonRTP — это плагин случайной телепортации с множественными пушками для серверов Minecraft. Проект внутренне называется WorldCannon, но плагин регистрируется в Bukkit как CannonRTP — именно это имя видят игроки и администраторы.
Важные детали именования:
- Имя плагина:
CannonRTP - Корневая команда:
/cannonrtp - Псевдонимы:
/crtp,/wc - Разрешения:
cannonrtp.admin,cannonrtp.use - Папка конфигурации:
plugins/CannonRTP/
Что он делает
CannonRTP — это система случайной посадки с множественными пушками, а не единственный фиксированный пусковой механизм.
Каждая пушка может:
- обнаруживать игроков, входящих в радиус срабатывания
- предварительно загружать и поддерживать очередь безопасных точек посадки в настроенном целевом мире
- отклонять опасную местность, заблокированные пространства и защищённые территории
- опционально требовать дополнительное разрешение для каждой пушки
- запускать игроков через фазу левитации с предварительным просмотром координат, вертикальное ускорение, телепортацию и последовательность медленного падения
- опционально отображать пользовательскую модель FreeMinecraftModels на месте пушки (для каждой пушки или через глобальный приоритетный список)
Процесс запуска
Когда игрок входит в радиус срабатывания подходящей пушки:
- CannonRTP проверяет
cannonrtp.use. - Проверяет опциональное
requiredPermissionпушки. - Убеждается, что пушка включена, имеет корректную конфигурацию и предзагруженные точки посадки.
- Использует одну предзагруженную безопасную точку посадки из очереди этой пушки.
- Фаза поиска (66 тиков / ~3,3 секунды): игрок получает Левитацию и видит заголовок/подзаголовок со случайными предварительными координатами. Если у пушки есть пользовательская модель, воспроизводится анимация
fireмодели. - Фаза выстрела: Левитация снимается, воспроизводится звук старта и применяется вертикальное ускорение на настроенное количество тиков. Раскрываются истинные координаты назначения.
- Фаза телепортации: игрок телепортируется на 50 блоков над местом назначения, и применяется Медленное падение.
- Фаза спуска: игрок медленно опускается. Во время падения отображается дымовой след.
- Фаза приземления: Медленное падение снимается, когда игрок касается земли (или истекает максимальная длительность), и воспроизводится взрыв частиц при ударе.
Правила безопасности посадки
Перед добавлением точки в очередь предзагрузки код проверяет:
- загружен ли целевой мир
- действителен ли центр поиска
- находится ли точка внутри границы мира
- существует ли наивысшая безопасная поверхность (твёрдая, не жидкая, не воздух)
- проходимы ли пространства ног и головы
- не входит ли поверхность посадки в настроенный список опасных материалов пола
- не входят ли блоки ног и головы в настроенный список опасных материалов тела
- разрешают ли все включённые интеграции защиты эту точку
Состояния пушки
Каждая пушка имеет внутреннее состояние, видимое через /wc status:
| Отображение | Внутреннее состояние | Значение |
|---|---|---|
| Disabled | -- | Пушка явно отключена в конфигурации |
| Charging | SEARCHING (очередь пуста) | Ещё предзагружает первую партию безопасных точек |
| Maintaining | SEARCHING (очередь не пуста) | Имеет некоторые точки, но ещё пополняет использованные слоты |
| Ready | READY | Имеет достаточно предзагруженных точек для запуска игроков |
| Exhausted | EXHAUSTED | Время истекло, не найдено достаточно корректных точек |
| Invalid | INVALID_CONFIGURATION | Ошибка конфигурации (напр. целевой мир не загружен) |
Пушка становится готовой к запуску, когда сохранит не менее chargedLocationsPerCannon корректных назначений.
Требования для работы
- Minecraft API:
1.21 - Java:
21 - Рекомендуемое серверное ПО: Paper или актуальный совместимый форк
- Опциональная зависимость: FreeMinecraftModels (для пользовательских моделей пушек)