1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Как изменить цвет неба

Тема в разделе "Разработка плагинов для новичков", создана пользователем Lama_Ke, 6 окт 2022.

  1. Автор темы
    Lama_Ke

    Lama_Ke Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Lama_Ke
    У меня появилась потребность изменить цвета неба в мире на красный для всех игроков.
    Желательно это сделать без дождя и лагов для игроков.
    На сервере почти все используют оптифайн с нашим ресурспаком.

    Я наткнулся на плагины SkyColor и SkyChanger.
    Как я понял, они отправляют игроку пакет, который содержит в себе информацию об интенсивности дождя.
    Попробовал на сервере отправить подобные пакеты себе и столкнулся с уже обозначенными в начале проблемами: Дождь с огромным до ужаса количеством частиц, который вызывает лаги.

    Можно ли как-то изменить цвет неба? Если это можно сделать только с помощью пакетов, то могу ли я сделать это без дождя?

    И мне стала интересна тема самих пакетов, но, видимо, я плохо искал и не нашёл каких-либо ресурсов, на которых можно подробнее узнать, какие виды пакетов существуют и насколько правильно вообще их использование.

    Поэтому ещё просьба поделиться подобными ресурсами, если такие существуют.
     
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    На новых версиях это делается без проблем (кажется, с 1.16). А вот с 1.12.2 не всё так просто.
    Есть два способа, но каждый из них имеет недостатки.

    1) При помощи смены погоды и времени суток (то, как это делают SkyColor и SkyChanger). При использовании данного метода полностью от дождя не избавиться никак. Единственное, что можно сделать - на всей карте сменить биом на пустынный или любой другой, где дожди не идут (вернее не отображаются на клиенте). Либо же можно поместить на максимальную высоту мира слой блоков барьера.

    2) При спауне игрока в мире подменять тип мира (с обычного на нижний). Я делал подобное, это работает, но начинают возникать довольно странные баги с респауном, телепортацией и чем-то ещё. В чём конкретно они заключаются, я уже не помню, но будь уверен, что тебе придётся изрядно поизвращаться, чтобы всё работало корректно.

    Оба варианта реализуются с использованием пакетов (отправка или модификация). Но я допускаю, что есть уже готовые решения, апи которых ты можешь использовать. Но опять же, всё это костыли, которые, скорее всего, корректно работать никогда не будут. Адекватное решение этой задачи можно сделать только на новых версиях
     
  3. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Документации нет, так как это недобаг-недофича клиента. Со сменой уровня дождя и грозы меняется цвет неба. Если вкинуть в пакет Game Event значения за пределами 0-1, то клиент начинает упарывать и показывать различные цвета. Соответственно, без дождя не обойтись.
    Подмечу, что это касается лишь старых версий. На последних технически возможно реализовать смену цветов посредством создания кастомных биомов. Но конкретно API для этого до сих пор нет ни в Spigot, ни в Paper, а биомы клиенту нужно предоставлять заранее при входе.
     
  4. DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder

    Могу попросить рассказать об этом адекватном решении на новых версиях?
     
  5. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Датапаками добавляются новые биомы. У биомов можно указать цвет неба. Правда как поменять биом на кастомный - не интересовался, но наверняка сложностей с этим нет.
    Также в теории можно попробовать поменять цвет неба в стандартных биомах. Но не уверен, что это сработает на практике
     
  6. DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder
    Спасибо за информацию, будет интересно полагаю погуглить, да порыться в коде в этом ключе)
     
  7. Автор темы
    Lama_Ke

    Lama_Ke Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    Lama_Ke
    Так может кто-нибудь запилит очередную статью, в которой будет уже рассказано про пакеты? И ещё я заметил, что в данном разделе очень много полезных тредов, которые просто теряются за кучей вопросов, было бы хорошо хотя бы ссылки на все эти треды объединить и закрепить.
     
  8. imDaniX

    imDaniX Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Пакеты постоянно меняются - то, что работало на одной версии, может не работать уже на следующей. Меняется специфика пакетов, их состав, наименование. В твоем случае вообще используется "непредусмотренная функциональность" клиента, которая может быть пофикшена в любой момент. Пакеты - не API, и не предусмотрены для использования напрямую. Документировать все подобные моменты - адский, и что немаловажно для некоторых, неоплачиваемый труд.
    Единственное, соглашусь, что статейки по самой работе с пакетами не хватает - как читать, создавать, манипулировать пакетами, да чего-нибудь по чтению https://wiki.vg/Protocol
    Было бы и правда неплохо, но в конце концов, для этого существует поиск. Либо сразу на форуме, либо через гугл/яндекс с указанием "site:rubukkit.org"
     

Поделиться этой страницей