Выводим приветствие игроку. Моддинг Minecraft

Привет! На днях я сделал обзорчик на мод Fragile Glass and Thin Ice. Этот тот, где добавлено сахарное стекло, которое можно разбить собой, стрелой и все в этом роде. Еще лёд и бутафорский камень, но не суть.

Сразу же я увидел ссылку на исходный код этого мода. И предупреждаю! Воровать плохо. Код воровать тоже плохо. Но чужой код может быть источником новых знаний, новых идей или даже поможет вам самим перейти на качественно новый уровень коддинга. В эпоху opensource было бы глупо упускать все это. Единственное, если таки решили взять чей-то код прям куском, то желательно оставлять ссылку на автора, можно даже комментом в коде =) Будем уважать чужую работу!

Итак, приветствие…

Первым делом я открыл файлик FragileGlassBase.java, который является главным файлом данного мода. И размышляя, что же интересного по этому поводу написать я снова запустил мод и увидел сообщение об успешной загрузке мода, которое вывелось тогда, когда я вошел в мир. Идея! Почему бы не сделать урок о приветствии?

Вот, кстати, об этом я и говорил. Не воровство, идея! Ну да ладно…

Думаю вы уже не раз видели моды, которые что-то сообщали при загрузке в мир. Это может быть новая версия, приветствие или какая-либо полезная информация. Вот и мы сделаем подобное.

Тут сообщение об успешной загрузке конфига, мы же просто напишем приветь

Просмотреть запись

Переходим к коду

Поехали. Урок без номера, но я буду продолжать с проектом из уже существующих уроков, а потому не буду повторять то, что уже встречалось тут.

Когда игрок заходит в мир (сингл или мультиплеер, не важно), то срабатывает событие onPlayerLogin. Именно его нам и нужно определить.

Открываем главный файл мода, у меня это TutorialGSMod. Перед классом мы писали интерфейс @Mod, который сообщал Forge, что наш этот файл — основа мода. Теперь нам нужно дополнить былой код регистратором событий

И теперь мод должен выглядеть приблизительно так:

Первый пункт — готово!

Далее нам нужно в конструкторе класса зарегистрировать наш класс для обработки событий.

Конструктор — готово!

Теперь переходим непосредственно к самому обработчику события.

В любом месте внутри класса добавляем новую функцию:

Тут то и будет происходить вся магия.

Сначала мы получаем из события объект игрока.

И если вы хотите просто вывести текст, то вот ваш код.

Теперь любой игрок будет получать Hi! при входе в игру или подключении серверу с этим модом.

Но если мы хотим получать разные сообщения для сингла и мультиплеера?

Для этого из PlayerEntity получаем сервер. Для справки, одиночная игра — тоже сервер, просто доступ к нему имеете только вы.

И теперь делаем проверку на синглу:

Мы создаём объекты класса ITextComponent, и именно они представляют сообщения для игрока. Им можно задать не только текст, а и его стиль.

Чтобы добавить нашему сообщению какой-либо цвет, нам нужно вызвать его функцию:

И все, текст будет красного цвета!)

Та-дам!

И еще локализация. Я люблю английский, но если игрок хочет русский, а я могу ему его дать, то почему нет?

Для вывода русского приветствия в нашем json файлике локализации (урок 7) пишем такое:

hello_msg не закон, имя может быть любым

И вместо текста в коде мы пишем такую вот ссылку на него:

Завершение и результаты

И в завершение подскажу как сделать разноцветный текст. Ведь пока мы выводи строки только одного цвета. На деле нужно сделать все то же, но вместо одной строки задать несколько разных цветов и соединить их при помощи функции appendSibling.

Например так:

Запускаем и наслаждаемся результатом!

И русский, и цвета, идеально!

В конечном итоге разумный выбор цветов может помочь создать реально прикольные и красивые приветствия!

Тут я получил ник игрока Dev (я ж в режиме разработки), а задал разные цвета каждой букве при помощи цикла
Тут лучше видно =)

Хух, на этом все. Уметь бы еще все нормально пояснять :D. Ну, все еще будет. Спасибо за внимание!

https://geekstand.top/games/sozdanie-modov-dlja-minecraft-1-15-1/#codding_minestart

Оставьте комментарий