Плагин [INFO/MISC] rscFirstJoinDemo v0.8.0b — потасканные игроки [1.5.x-1.8.x]

Пригодился ли?

  • Лайк!

    Голосов: 87 84,5%
  • Не лайк :(

    Голосов: 16 15,5%

  • Всего проголосовало
    103

Reality_SC

Старожил
Пользователь
Баллы
123
Ник в Minecraft
Reality_SC
Плагин позволяет создавать траектории, по которым будут принудительно двигаться игроки (проигрывание траекторий).


Описание.
Изначально предназначен для того, чтобы показать подключающимся игрокам, если они не заходили ранее на сервер, что есть что — я называю это "потаскать по пути". Траектория (путь) представляет собой набор точек с характеристиками:
  • Координаты (по сути — Location, т.е. название мира, координаты x, y, z и углы поворота pitch и yaw).
  • Число тиков, на которое нужно заморозить игрока на этой точке.
  • Скорость после неё до следующей точки, в блоках/сек. Если равно нулю, то произойдёт мгновенная телепортация.
  • Сообщение, которое будет выведено игроку в чат при достижении этой точки.
  • Опционально: обновление времени и погоды (вкл/выкл): сброс, установка значения и блокировка.
Движение между двумя соседними точками при известных их координатах и скорости между ними вычисляется по понятным всем знакомым с элементарной физикой формулам.

Игроки, которых несёт по такому пути, скрыты от всех и не могут писать команды и текст.

Конфигурационный файл config.yml.
YAML:
settings:
  # Настройки траектории для игроков, которые впервые зашли на сервер
  first-join-trajectory: 'firstjoin'
  first-join-enable: true
  first-join-delay: 20
  # Требовать ли от игроков права на использование табличек?
  require-permissions-for-signs: false
  # Настройки логирования в консоль
  logging:
    player-start-stop: true
    player-point-reached: false

Список команд.
upload_2016-1-20_12-16-14.png
И ещё немного информации есть в посте ниже...

Список прав.
  • rscfjd.admin — право использовать все команды плагина (/rscfjd ...).
  • Для использования полёта через таблички по умолчанию никакие права не требуются, но можно сделать, чтобы требовались:
    1. Включить config.yml/settings.require-permissions-for-signs, тогда будет требоваться rscfjd.sign.<название траектории>, можно дать * если кому-то можно летать везде.
    2. /rscfjd permission <право> устанавливает свойство редактируемой траектории, которая тоже требуется игроку для её использования.
      Если включить требование пермишена обоими способами, любой один из них уже даёт право на полёт.
Траектории хранятся в папке плагина в .json файлах с любыми именами, так что их тоже весьма просто редактировать руками.

Кроме того, в мире можно устанавливать таблички, ПКМ по которым потащит игроков по указанным на них путям. Формат табличек: первая строка — [rscfjd], вторая строка — название траектории.
Я у себя на сервере сделал красивые телепорты со спавна за границы города и быстрые эскалаторы вниз к станциям метро.

История изменений.
  • v0.8.0b — проверка обновлений и их автоматическая установка; новые команды pause и resume; очередной фикс команды play; много других фиксов поведения плагина; добавлена метрика.
  • v0.7.0b — изменения в конфиге, в синтаксисе команд play и info, новые команды time и permission. Можно включить требование пермишенов для табличек. При настройке чуть более удобен в использовании совместно с плагинами оффлайн-регистрации. Подробности об этом обновлении.
  • v0.6.7b — незначительные исправления.
  • v0.6.5b — улучшенная работа с /rscfjd load и /rscfjd save + их автоматическая отработка при выходе/перезаходе игрока. Управление погодой при достижении точки (/rscfjd weather). Исправления мелких недочётов.
  • v0.6.3b — добавлены подкоманды delete, merge, select (без указания id точки), next, prev. Изменена стилистика чата, исправления ошибок.
  • v0.6.1b — изменены команды плагина. Теперь они позволяют почти полноценно и нелинейно редактировать точки траекторий (кроме времени и погоды).
  • v0.6.0b — поддержка показа Title и Subtitle на серверах 1.8+ (с помощью ProtocolLib 3.6.4+). Поддержка текстовых замен PlaceholderAPI в строках messageOnReach, showTitle, showSubtitle каждой точки. Убил несколько багов, но угол зрения всё ещё иногда дёргается при пролёте какой-то точки.
  • v0.5.11b — мелкие исправления багов; улучшения в обработке команд; первые попытки выделить из кода отдельно API.
  • v0.5.8b — начато ведение истории изменений; возможность выключения режима SPECTATOR на серверах старых версий, которые его не поддерживают.
 
Последнее редактирование:
Чем-то напомнило Mineplex, ну а все же плагин хороший.
 
Гайд по работе с плагином не помешал бы.. Например как создавать эти самые json'ы, как активировать и т.д.
 
Даа, гайд бы не помешал.
Полезный плагин. Поставлю себе.
 
Описание файлов траекторий.

Каждая траектория это JSON-файл следующего вида:
JavaScript:
{
   "points": [
   точка1,
   точка2,
   ...,
   ]
}
Каждая точка на траектории описывается так:
JavaScript:
{
   # Координаты точки
   "world": "Starland",
   "x": 2073.345884658478,
   "y": 88.62833813602307,
   "z": -2983.552883507182,
   # Направление взгляда
   "yaw": 48.578983,
   "pitch": 1.8016635,
   # Число тиков заморозки
   "freezeTicks": 20,
   # Скорость до следующей точки
   "speedAfter": 7.0,
   # Сообщение игроку
   "messageOnReach": "{_NL}{_NL}{_I}Загрузка...",
   # Кастомизация времени
   "timeUpdate": false,
   "timeReset": false,
   "timeUpdateValue": 0,
   "timeUpdateLock": false,
   # Кастомизация погоды
   "weatherUpdate": false,
   "weatherUpdateStormy": false,
   "weatherReset": false,
   # Титры (будут работать только на серверах 1.8+)
   "showTitle" : "<текст титров>",
   "showSubtitle" : "<текст субтитров>",
   "showTitleTicks" : 60
}
Рассмотрим основные элементы:
  • world, x, y, z — координаты точки на сервере
  • yaw, pitch — направление взгляда игрока в этой точке
  • freezeTicks — число тиков, на которые игрок должен "зависнуть" на этой точке при её достижении
  • speedAfter — новая скорость, которую получит игрок при движении между этой точкой и следующей.
    • Если скорость равна нулю, происходит телепортация (а также, если новая точка находится в другом мире)!
    • Время полёта от этой точки до следующей считается как в школе: t = distance / speedAfter.
  • messageOnReach — сообщение, которое будет выведено игроку при достижении этой точки.
  • timeReset — если равно true, тогда сброс времени для игрока (имеет смысл если оно менялось ранее); если равно false, тогда:
    • timeUpdate — нужно ли как-то повлиять на время в этой точке? Если true, тогда:
      • timeUpdateValue — новое значение времени (см. майнвики).
      • timeUpdateLock — заблокировать на указанном значении.
  • weatherReset — если равно true, тогда сбросить погоду для игрока на фактическую в его местоположении (имеет смысл если погода для игрока менялась ранее); если равно false, тогда:
    • weatherUpdate — установить игроку кастомную погоду? Если true, тогда:
      • weatherUpdateStormy — штормовая (true) или ясная (false).
  • showTitle — текст титров для серверов 1.8+.
    • Поскольку текст в этом поле — JSON-строка, следует всё конкретно заэкранировать!
  • showSubtitle — тоже самое, только под титрами.
    • Поскольку текст в этом поле — JSON-строка, следует всё конкретно заэкранировать!
  • showTitleTicks — сколько тиков показывать титры и субтитры. Скорость появления и угасания константна и равна 20 тикам (1 сек).

Таблички.

Чтобы поставить табличку с нужным путём: на верхней строке пишите [rscfjd], на второй — название пути. Регистр, кстати, никогда не имеет значения, файл будет именован всегда в нижнем.

Интересные факты о плагине.
  • Перед полётом плагин сохраняет значения allowFlight и flying, временно заменяя своими. При окончании полёта восстанавливает. Окончание пути всегда означает восстановление прежних значений некоторых внутренних переменных и телепортацию на конечную точку.
  • Дисконнект игрока тоже корректно оканчивает ему путь.
  • Во время полёта нельзя писать и выполнять команды.
  • Иногда сервер не грузит чанки во время полёта, но только если игрок движется. Сделайте небольшую паузу на какой-нибудь точке (freezeTicks > 0), чтобы чанки настигли игрока.
  • Плагин выставляет игроку на время проигрывания визуально хорошую погоду. Погоду можно сменять на любой точке. Можно выставлять и кастомное время, и даже заблокировать его, но только руками в .json-файле. Кстати, там же можно выключить режим fly на точке, но я никогда этого не пробовал, ибо бред немного.
Залил в ВК небольшое видео о том, как это визуально выглядит:
https://vk.com/video-58436642_169273784
Интересно посмотреть, что получается у других. Заливайте свои видео и постите ссылки в этой теме.
 
Последнее редактирование:
Будет ли обновление для поддержки последних версий worldguard?
 
Я ещё не установил его на свой сервер, руки не доходят, пользуюсь последним из 5.9, соответственно меня оно ещё не пнуло к обновлению 🙂
А что, не работает? ☹️ Я предполагал, но не проверял ... Попробую сегодня что-нибудь сделать.
Обновил на своём сервере WorldGuard до 6.0 beta 02: rscFJD работает без проблем!
Мне в голову и не пришло, что, по факту, он никак и не взаимодействует с WG!
Также отпишись, какие именно ошибки возникали(ют) у тебя, мне интересно.
 
Последнее редактирование:
Респект создателю и уважуха! Плагин мне ну очень поможет, но одно уточнее...работает на 1.5.2?
Протестить смогу не скоро прост.
 
Респект создателю и уважуха! Плагин мне ну очень поможет, но одно уточнее...работает на 1.5.2?
Протестить смогу не скоро прост.
Работает.

Кстати, а с Essentials Chat будет ли работать, vault установлен?
 
Последнее редактирование:
Спасибо за ответ, пошел тестить.
 
Дам небольшой совет:
У вас в плагине в полном объеме лежит либа GSON, которая и так доступна в двух экземплярах
(Из Bukkit и из Minecraft Server)
Не очень хорошо

А так плагин отличный, спасибо 🙂
 
У вас в плагине в полном объеме лежит либа GSON, которая и так доступна в двух экземплярах
Спасибо, возможно уберу её в будущем 🙂

Ребят, все, извините, но я не в курсе вообще на чём оно способно идти, я делал это чисто для себя, и пытаюсь не нести ответственности за этот выкидыш 🙂 Скоро выкину на GitHub.
 
Подскажите как сделать, чтобы автоматически воспроизводило какой-то маршрут при заходе нового игрока. Возможно ли это?!
 
У вас в плагине в полном объеме лежит либа GSON, которая и так доступна в двух экземплярах
Спасибо, возможно уберу её в будущем 🙂 Хотя есть рассмотреть вопрос детально, в разных версиях серверов могут быть разные версии Gson, а я хочу, чтобы плагин работал вообще всегда → лучше зашейдить в .jar.
P.S. Вообще-то Gson не идёт ни с Minecraft, ни с Bukkit. так есть json-simple, она немного другая.

Ребят, извините, но я не в курсе вообще на чём оно способно идти, я делал это чисто для себя, и пытаюсь не нести ответственности за этот выкидыш 🙂
Подскажите как сделать, чтобы автоматически воспроизводило какой-то маршрут при заходе нового игрока. Возможно ли это?!
Плагин изначально именно для этого и был создан.
Как можно заставить проиграть всё, что я сделал, по координатам когда игрок только вошел на сервер? Этот момент не со всем понял или оно будет автоматически?
Когда игрок впервые (определяется через Bukkit API, фактически наличием у него .dat файла в папке с игровым миром) заходит на сервер, ему будет автоматически проиграна указанная в конфиге траектория:
YAML:
settings:
  trajectory: public
 
Последнее редактирование:
Спасибо, за шикарный плагин.
Последняя версия не работает на 1.7.10 ругается на SPECTATOR поставил предыдущий. Полет пока нормальный.
Вопрос: Можно ли как-то сделать для каждой таблички индивидуальное название ??
На счёт новой версии можно сделать так что если 1.7.10 правило SPECTATOR игнорировалось ( к примеру меняется в конфиге с true на false )
 
Спасибо, за шикарный плагин.
Последняя версия не работает на 1.7.10 ругается на SPECTATOR поставил предыдущий. Полет пока нормальный.
Вопрос: Можно ли как-то сделать для каждой таблички индивидуальное название ??
На счёт новой версии можно сделать так что если 1.7.10 правило SPECTATOR игнорировалось ( к примеру меняется в конфиге с true на false )
SPECTATOR -=> Работает на 1.8
 
@SinBan, Я в курсе. По этому я и написал решение которое можно сделать для 1.7.10 и других версий.
 
Назад
Верх Низ