Майнкрафт как писать плагины


Туториал - "От а до я" Создания плагина Minecraft | Bukkit по-русски


Сегодня я заново открываю цикл статей и на этот раз. забрасывать его не буду и даже буду отвечать на ваши коментарии. Ну что ж, от слов к делу. Поехали!
Подготовка

Для написания своих плагинов нам понадобятся:
Так же понадобятся базовые знания по Java. Если таковых нет, то вот ссылки по “поднятию скила”:Установка и настройка Eclipse
Если вы уже знакомы с Eclipse или увас другая IDE, то пропускайте этот раздел.

Проблем с установкой эклипса возниктуть не должно: его нужно просто распаковать в любоую папку и запустить. Сразу после этого, эклипс попросит указать, какое рабочее пространство(workspace) сейчас открыть. Это папка, в которой будут сохранятся все созданные проекты и где ее располагать – лично ваше решение. Если вам всеранво, то оставляйте все как есть. Если вдруг захотите изменить рабочее пространстро, то не переживайте: при каждом следующем запуске, эклипс сново спросит вас о рабочем пространстве. Таких пространств можно наделать сколько угодно и каждое может быть настроено по разному, под какие-то определенные цели. К примеру у меня есть 2 рабочих пространства: для написания обычных java-приложений и для написания плагинов под “ведро”. Если вдруг вам надоест это сообщение, там есть галочка «Use this as the default and do not ask again», что позволяет задать workspace по-умолчанию.+

Как только вы определитесь с выбором места и загрузится Eclipse, то мы увидим пригласительную вкладку… которую сразу же закрываем. Она нам ни к чему.

Теперь же мы видим рабочее пространство самого эклипса. Из всего этого, нам понадобится только следующие панели:

  • Package Explorer
    Здесь будут отображаться ваши проекты, пакеты(о них позже) и всевозможные файлы наших будующих плагинов.
  • Problems
    Этой панелькой мы будем редко пользоваться(если вообще до нее дело дойдет), но сказать о ней стоит. Здесь будут показываться ошибки, допущенные в коде, а так же предупреждающие сообщения о возможных ошибках или неточностях.
  • Outline
    Тут будет отображаться навигация непосредственно по коду открытого java исходника.
Последние 2 описанные панели можно вообще свернуть, т.к. пользоваться ими будем редко.

Рабочее место почти готово. Осталось только поставить еще 2 галочки в настройках.

Переходим в меню Window -> Preferences, далее по древу General -> Editor -> Text Editors и выставляем галочку «Show line numbers», чтобы включить отображение нумерации строк. Теперь переходим в General -> Workspace и в группе «Text file encoding» выставляем кодировку UTF-8, самым установив кодировку по-умолчанию.

С установкой и настройкой покончено. Теперь поясню, как создавать новый проект для плагина. Это можно сделать одим из 3-х способов:

  • Меню File -> New -> Java Project
  • Кнопка на панели инструментов
  • Правый клик в Package Explorer
Перед нами откроется окно New Java Project. В Project name указываем название нашему проекту

Нажимаем Next.
В появившемся окне, переходим на вкладку Libraries, нажимаем кнопку Add External JARs и выбираем скаченный Bukkit API

Жмем Finish.

Слева, в Package Explorer, показался наш проект с папкой src, в которой будут храниться наши исходные коды. Теперь созданим новый класс. Делается это точно так же, как и с Java Project.

В окне New Java Class нам понадобятся только следующие графы:

  • Package
    указывается пакет, в котором будет хранится наш класс. Формат имени должен быть примерно такой: ru.dmitriymx.bukkit.tutorial.
    Если в двух словах и на пальцах, то пакеты в ява – это пространство имен(namespace) или «виртуальные папки», в которые помещаются классы. Подробнее про это можно прочитать здесь: [1], [2], [3].
  • Name
    указываем название класса (у меня это DmxFirstPlugin)
Все остальные пункты оставляем как есть и жмем Finish.

Вот теперь переходим непосредственно к коду.
Пишем простой плагин
Как только мы создали новый класс, нашему взору предстает уже готовый пустой шаблон

Пока это всего лишь пустой класс, который абсолютно бесполезен в быту. Будем это исправлять. Изменяем вот это

на это

Эклипс подчеркнет нам JavaPlugin, указывая на ошибку в коде. Если подвести мышь к такому подчеркнутому коду, то откроется окошко с описанием ошибки и способы ее решения. В данном случае нам нужно импортировать класс из Bukkit API, для чего выбираем пункт «Import ‘JavaPlugin’(org.bukkit.plugin.java)»

Сразу же замечаем, как над всем нашим кодом вписалась строчка

Немного теоретического материала. У плагинов есть 3 основных метода: onEnable(), onDisable() и onLoad(). Первые два отвечают за включение и отключение плагина, а последний срабатывает когда плагин непосредственно подгружается в память сервера. Из этого следует, что onLoad выполняется самым первым, но сам плагин начинает работать только после вызова onEnable со стороны сервера. По выключению или перезагрузки сервера, вызывается метод onDisable.

С “точками входа-выхода” разобрались. Давайте теперь напишем что-нибудь более-менее работоспособное. Приведем общий код класса к следующему виду:

кому невидна вторая часть:
о что мы сейчас написали – готовый плагин. Все что он делает – это пишет в чат о приходе и уходе игрока на сервер. Разбираться в его работе будем по порядку(а как иначе?).
Сперва обращу внимание на строку объявления класса. Как видно, к нашему классу добавилось расширение Listener. Не углубляясь в дебри явы, скажу проще: указывая данное расширение, мы тем самым расширяем область применения класса не только как плагина(JavaPlugin), но и как обработчика событий(Listener). А вот как раз в методе onEnable() мы регистрируем наш класс на сервере как обработчик событий(this – это указание «на самого себя», если кто забыл).

Далее следует 2 наших обработчика событий onJoin() и onQuit(). Первый отвечает а событие входа игрока на сервер, а второй – за уход. С помощью метода event.getPlayer().sendMessage(), мы можем отправить сообщение тому игроку, которое вызвал данное событие(в нашем случае игроку, который зашел). Статический класс ChatColor хранит в себе константы цветов для окраски. Думаю как им пользоваться уже видно из примера. Так же, оба наших обработчка оповещают других игроков на сервере о произошетших событиях, но делают это по разному. В onJoin() с помощью метода event.setJoinMessage() мы меняем привычное сообщение «Player joined the game» на любое другое. А в onQuit() мы поступили инача(в целях примера): убрали вывод сообщения о выходе и сообщаем об этом через метод getServer().broadcastMessage(), который просто посылает всем игрокам на сервере указанное сообщение.+

Дело осталось за малым: написание важного файлика plugin.yml и упаковка всего этого в jar-файл.

plugin.yml – это файл описания плагина. В нем задается название плагина, главный класс, описание и какие комманды зарегестрировать за плагинов(об этом позже) и т.д. В нашем случае, файлик должен выглядеть так:

Ой, забфл сказать, где этот файлик должен находится. Жмем правой кнопкой мыши в PackageExplorer по папке src и через меню New выбираем File. В поле File name пишем plugin.yml и жмем Finish. В открывшемся текстовом редакторе, пишем то, что я указывал выше. Всё сохраняем и переходим к последней фазе: упаковке.

Правый тык по папке src -> Export. В древе папок, открываем Java и выбираем JAR file и жмем Next. Из голочек оставляем только «Export generated class files and resources» и «Compress the contents of the JAR file». В поле JAR file указываем, куда будем сохранять полученный плагин. После нажатия на Finish, плагин можно класть в папку plugins, запускать сервер и проверять его работу.

Видите? Это совсем просто. С практикой вы наберетесь больше опыта и сможете делать более крутые плагины, даже такие легендарные как WorldEdit и WorldGuard.
Источник

 

Как легко изменить Minecraft с помощью TypeScript

от Джоша Вульфа

Обычно для модификации Minecraft требуется кодирование на Java и множество строительных лесов. Теперь вы можете писать и делиться модами Minecraft, используя TypeScript / Javascript.

ScriptCraft - это библиотека моддинга JavaScript для Minecraft с открытым исходным кодом, и мы написали поддержку TypeScript и набор инструментов для создания знакомого интерфейса разработчика для тех, кто пришел из страны JavaScript (включая Yeoman и NPM).

В этой статье я расскажу, как настроить и собрать свой первый мод TypeScript Minecraft менее чем за час - всего за 20 минут, в зависимости от вашего интернет-соединения.

В этом видео (щелкните здесь, если встраивание не работает выше) я покажу вам, как написать базовый мод Minecraft с помощью TypeScript и запустить его на локальном компьютере с настольным компьютером и мобильным сервером Minecraft.

Ниже я расскажу вам о шагах со ссылками на ресурсы.

Предварительные требования

Вам понадобится некоторое программное обеспечение, установленное на вашем компьютере, чтобы запустить сервер Minecraft и инструменты для написания вашего плагина.Установите все четыре следующих компонента:

Клиент Minecraft

Вам понадобится клиент Minecraft для тестирования вашего плагина.

Установите хотя бы одно из следующего:

  • Minecraft Java Edition - настольный клиент, если вы хотите протестировать на сервере Bukkit.
  • Minecraft Pocket Edition - мобильный клиент, если вы хотите протестировать на сервере Nukkit
.

Почему вы никогда не должны / перезагружать на Spigot, Bukkit и Paper |

Команда / reload существует в Букките с самых первых дней. Идея была проста - позволить владельцам серверов быстро перезагружать конфигурацию плагинов без перезапуска сервера. Эта идея была похожа на старую одноименную команду hMod. Однако, чтобы упростить написание плагинов, команда перезагрузки просто отключила плагин и повторно запустила механизмы загрузки плагинов Bukkit. Хотя эта концепция существовала в hMod в виде отдельных команд, она требовала более контролируемого использования.Одновременно можно было включить / отключить только отдельные плагины.

Поскольку Java не предоставляет надлежащего способа «выгрузить» классы, которые сервер уже загрузил, это начало вызывать несколько тонких проблем и ошибок. Повторная загрузка всего в некоторых случаях вызывала конфликты между старой и новой версиями классов, что было особенно плохо при изменении файлов jar плагина. По этой причине Spigot всегда не рекомендовал использовать команду перезагрузки. Существенное отвращение к команде перезагрузки было очевидно еще в 2011 году, только вскоре после запуска Bukkit.

По мере развития Minecraft то, что требовалось для перезагрузки, становилось намного сложнее, пока концепция перезагрузки не стала невозможной. В каждом недавнем обновлении команда перезагрузки вызывала больше проблем. Прямо сейчас никто не должен использовать команду / reload. Это вызывает значительную нестабильность в Minecraft, Bukkit и практически в любом плагине, который использует Bukkit API. В настоящее время такое простое действие, как проверка разрешений игрока, может вызвать проблемы после перезагрузки.

Если вам нужно:

  • Добавить плагин после того, как сервер уже запущен
  • Обновить подключаемый модуль во время работы сервера
  • Удалить плагин во время работы сервера

ПЕРЕЗАГРУЗИТЕ СЕРВЕР (Или, в худшем случае, для первого, включите его с помощью PlugMan).

Если вам нужно:

  • Обновить конфигурацию плагинов

Используйте предоставленную плагином команду перезагрузки, например / cb reload перезагрузит конфигурацию CraftBook.

Если вы изменили какие-либо файлы jar, при перезагрузке сервера создаст нестабильный сервер, даже если вы этого не заметите. Команда / reload - это ВСЕГДА либо ненужная, либо небезопасная.

Примечание! Это не относится к команде перезагрузки Sponge.Команда перезагрузки Sponge не выполняет того, что делает Bukkit, а вместо этого отправляет плагинам событие, сообщающее им, что была запрошена перезагрузка. После этого плагин должен перезагрузить конфигурации.

Примечание 2! Если вы хотите использовать команду Minecraft / reload для перезагрузки пакетов данных на Bukkit, вы можете смело использовать / minecraft: reload .

Обновление CraftBook до Minecraft 1.13

Опубликовано 18 ноября 2018 г.

Обновление CraftBook до версии 1.13 имел несколько проблем, но теперь он работает правильно. В будущем также ожидаются несколько серьезных изменений.

Что нового в WorldEdit 7.1?

Опубликовано 24 января 2020 г.

Прошло более полугода с момента последнего большого обновления WorldEdit, и теперь мы выпускаем WorldEdit 7.1 с множеством новых функций и улучшений!

Как сохранять и загружать схемы с помощью WorldEdit

Опубликовано 27 июня 2019 г.

Узнайте, как загружать и вставлять файлы схем в Minecraft с помощью WorldEdit, и даже сделать свои собственные, чтобы поделиться ими с друзьями или в Интернете!

.

PrismarineJS / mineflayer: создавайте ботов Minecraft с помощью мощного, стабильного и высокоуровневого JavaScript API.

перейти к содержанию Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
.

bukkit - Как наложить текстуру на объект в подключаемом модуле Minecraft

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.

Смотрите также