- Поддерживаемые версии
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 16
Это уникальный плагин, который напрямую связывает ваш майнкрафт сервер с живым ютуб стримом. Превратите зрителей вашего канала в полноценных участников игрового процесса!
Как это работает?
1. Админ создает арену — двумя командами задаются границы.
2. Стример запускает сессию — указывает ссылку на текущий стрим.
3. Плагин подключается к live-чату через YouTube API и начинает отслеживать сообщения.
4. Зрители пишут команды в чат ютуба, и на арене мгновенно спавнится TNT.
5. Задача игрока — полностью заполнить арену блоками и удержать её целой до конца обратного отсчета, пока зрители всячески мешают ему с помощью TNT-атак.
Интеграция с YouTube
Интерактивные атаки зрителей
Геймплей удержания арены
Примечания
Код:
settings:
prefix: "&7[&#FDBE00Сервер&7]&f "
youtubeApiKey: ""
youtubeDefaultPollIntervalMs: 5000
tntCommands:
- "!tnt"
tntCooldownMs: 5000
tntFuseTicks: 60
tntYield: 4.0
countdownSeconds: 5
messages:
usageSetpos: "{prefix}/hyoutubeblockevent setpos &7(Айди арены) (pos1 | pos2)"
invalidPoint: "{prefix}Точка &#FDBE00должна&f быть &#FDBE00pos1&f или &#FDBE00pos2"
setposSaved: "{prefix}Точка &#FDBE00{point}&f сохранена для арены &#FDBE00{arenaId}"
arenaReady: "{prefix}Арена готова, объём&7: &#FDBE00{blocks}&f блоков"
usageStart: "{prefix}/hyoutubeblockevent start &7(Айди арены) (Ссылка)"
usageStop: "{prefix}/hyoutubeblockevent stop &7(Айди арены)"
usageStatus: "{prefix}/hyoutubeblockevent status &7(Айди арены)"
stopReason: "{prefix}Сессия &#FDBE00остановлена&f командой"
stopNotRunning: "{prefix}Для арены &#FDBE00{arenaId}&f нет &#FDBE00активной&f сессии"
stopSuccess: "{prefix}Сессия арены &#FDBE00{arenaId}&f остановлена"
helpSetpos: "/hyoutubeblockevent setpos &7(Айди арены) (pos1 | pos2)"
helpStart: "/hyoutubeblockevent start &7(Айди арены) (Ссылка)"
helpStop: "/hyoutubeblockevent stop &7(Айди арены)"
helpStatus: "/hyoutubeblockevent status &7(Айди арены)"
helpReload: "/hyoutubeblockevent reload"
reloadSuccess: "{prefix}Конфигурация &#FDBE00успешно &fперезагружена"
sessionArenaIdEmpty: "{prefix}Идентификатор &#FDBE00арены&f не может быть пустым"
sessionAlreadyRunningArena: "{prefix}Для этой &#FDBE00арены&f уже &#FDBE00запущена&f сессия"
sessionAlreadyRunningOwner: "{prefix}У тебя уже есть &#FDBE00активная&f сессия"
sessionArenaNotConfigured: "{prefix}Арена не настроена, сначала задай &#FDBE00pos1 &fи &#FDBE00pos2"
sessionArenaWorldNotLoaded: "{prefix}Мир &#FDBE00арены &fне загружен"
sessionResolveStarted: "{prefix}Получаю &#FDBE00данные&f стрима и чата &#FDBE00трансляции &fYouTube..."
sessionStartedSuccess: "{prefix}Сессия &#FDBE00запущена&f для арены &#FDBE00{arenaId}&f. Привязан videoId&7: &#FDBE00{videoId}"
sessionCountdownBroken: "{prefix}Обратный &#FDBE00отсчет&f отменен&7: блоки &#FDBE00были&f разрушены"
sessionCountdownIntegrityBroken: "{prefix}Обратный &#FDBE00отсчет&f отменен&7: целостность &#FDBE00арены&f нарушена"
sessionStoppedPluginDisabled: "{prefix}Плагин выключен"
sessionStoppedStreamEnded: "{prefix}Стрим закончился, &#FDBE00сессия&f остановлена"
sessionChatEnded: "{prefix}Чат &#FDBE00трансляции&f завершен"
sessionArenaWorldNotLoadedStop: "{prefix}Мир &#FDBE00арены &fне загружен, &#FDBE00сессия&f остановлена"
sessionOwnerOffline: "{prefix}Владелец &#FDBE00сессии &fоффлайн, &#FDBE00сессия&f остановлена"
sessionCountdownNotFilled: "{prefix}Обратный &#FDBE00отсчет&f отменен&7: арена &#FDBE00больше&f не заполнена"
sessionCountdownStart: "{prefix}&fАрена заполнена, удержи ее &#FDBE005&f секунд, чтобы победить"
sessionWinTitle: "&a&lПОБЕДА"
sessionWinSubtitle: "&fАрена очищена"
sessionStatusNotRunning: "{prefix}У арены &#FDBE00{arenaId}&f нет &#FDBE00активной&f сессии"
sessionStatusRunning: "{prefix}Арена &#FDBE00{arenaId} &fактивна для игрока &#FDBE00{ownerName}&f, videoId&7: &#FDBE00{videoId}"
viewerNameFallback: "Зритель"
1. Админ создает арену — двумя командами задаются границы.
2. Стример запускает сессию — указывает ссылку на текущий стрим.
3. Плагин подключается к live-чату через YouTube API и начинает отслеживать сообщения.
4. Зрители пишут команды в чат ютуба, и на арене мгновенно спавнится TNT.
5. Задача игрока — полностью заполнить арену блоками и удержать её целой до конца обратного отсчета, пока зрители всячески мешают ему с помощью TNT-атак.
- Прямое подключение к live-чату активной трансляции.
- Использование официального YouTube Data API v3.
- Асинхронный опрос чата с учетом `pollingIntervalMillis.
- Любая команда из списка tntCommands вызывает спавн TNT.
- У каждой падающей TNT отображается ник зрителя, который её вызвал.
- Настраиваемые параметры: сила взрыва (yield), время до взрыва (fuseTicks), глобальный кулдаун между атаками.
- TNT падает по краям арены сверху, а не в одной точке — атаки непредсказуемы!
- Игроки защищены от прямого урона от "зрительской" TNT.
- Игрок должен заполнить арену блоками полностью.
- Как только арена заполнена — запускается обратный отсчет победы.
- Если блоки ломаются, взрываются или арена становится неполной — отсчет сбрасывается.
- Победа засчитывается только после успешного удержания заполненной арены в течение заданного времени.
- Для работы требуется YouTube Data API key (получить можно в Google Cloud Console).
- Одна арена = одна активная сессия. Один игрок = одна активная сессия.
- Команды и права
Команда Право Описание /hyoutubeblockevent setpos (ID) (pos1/pos2) hyoutubeblockevent.admin Команда для установки точек арены /hyoutubeblockevent start (ID) (Ссылка) hyoutubeblockevent.admin Команда для запуска ивента /hyoutubeblockevent stop (ID) hyoutubeblockevent.admin Команда для остановки ивента /hyoutubeblockevent status (ID) hyoutubeblockevent.admin Команда для просмотра статуса ивента /hyoutubeblockevent reload hyoutubeblockevent.admin Команда для перезагрузки конфига