Как писать плагины для майнкрафт


Туториал - "От а до я" Создания плагина 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 / Bukkit для Spigot 1.14 - блог Джастдейва

Сообщество Minecraft, кажется, одержимо тем, чтобы делать все на YouTube. Для некоторых людей это здорово, но как тому, кто уже является программистом, и мне просто нужно знать детали среды для кодирования для Minecraft, мне очень трудно просидеть час обучающих видео, чтобы получить четыре вещи, которые мне нужны чтобы знать, что я еще не знал, как это сделать. Здесь вам пригодится текстовая и графическая версия учебного пособия, так что вы можете просмотреть ее в поисках частей, которые вам все еще нужно знать, и легко пропустить то, что вы уже знаете.Другой мой друг также недавно пытался написать плагин для Spigot, и все, что я мог найти, чтобы указать ему на текстовое, а не видео на YouTube, было очень устаревшим, содержало инструкции, которые больше не были актуальны, потому что Bukkit и С тех пор Spigot и Eclipse эволюционировали и т. Д. Итак, я подумал, что напишу один, и вот он!

Обновление

: с тех пор, как я написал это, я обнаружил очень хорошую страницу в Spigot Wiki, документирующую большую часть этого, которая, кажется, таинственным образом отсутствует в поисковых запросах, которые я пытался найти эту информацию (или, по крайней мере, ранжируется достаточно низко, чтобы видео на YouTube и куча сообщений на форуме, которые обходят эту проблему, опережают ее).Как создать плагин Minecraft / Bukkit / Spigot на сайте SpigotMC. Я все равно публикую это, потому что кое-что делаю иначе. Выберите свой вкус. 🙂

Настройка среды разработки

Установить Java

Вам нужен Java Development Kit, а не среда выполнения. Загрузите Java SE JDK с сайта Oracle. Убедитесь, что вы получили JDK, а не JRE, и убедитесь, что у вас правильный вариант для вашей операционной системы. На Java.com есть только JRE, вам нужно перейти на сайт Oracle для JDK.Пользователи Linux могут попробовать установить пакет java-8-openjdk .

Примечание для пользователей OS X: OS X больше не поставляет Java по умолчанию. Он будет автоматически установлен, если вы попытаетесь запустить что-то, для чего требуется Java, однако устанавливаемая им версия старая (Java 6), а для разработки Bukkit / Spigot требуется как минимум Java 7, поэтому вам нужно будет загрузить более новую Java, даже если вы уже есть системная Java.

Загрузите и соберите втулку

Вам необходимо связать Spigot для компиляции подключаемых модулей, поэтому вам понадобится локальная копия Spigot для связи, даже если вы никогда не запускали его.

Загрузите BuildTools.jar с https://hub.spigotmc.org/jenkins/job/BuildTools/

Поместите его в пустой каталог. Откройте командную строку (или окно терминала) и перейдите в каталог, в который вы ее поместили. Выполните следующую команду, чтобы построить его:

java -jar BuildTools.jar

Это, вероятно, займет некоторое время. Если все пойдет хорошо, вы должны получить файл Spigot-1.14.2.jar в том же каталоге, что и BuildTools.jar (номер версии в имени файла может быть другим, если Spigot был обновлен после того, как я опубликовал это).Запомните, где находится этот каталог, он понадобится вам позже при создании проекта в Eclipse.

Установить Eclipse

Разработка подключаемого модуля выполняется с помощью Java IDE. Если у вас уже есть любимая Java IDE, я думаю, вы сможете заставить ее работать, но если нет, я рекомендую Eclipse, и именно на этом будут основываться мои инструкции.

Вы можете получить Eclipse здесь: http://www.eclipse.org/downloads/

В большинстве дистрибутивов Linux Eclipse уже упакован, и вы, вероятно, сможете установить его с помощью диспетчера пакетов.Ваш опыт может отличаться от того, чтобы заставить его работать. Лично у меня были проблемы с правильной работой плагинов Eclipse, потому что обновление плагинов иногда нарушает способ упаковки основного приложения, а иногда плагинам требуется более новая версия Eclipse (Ubuntu поставляет более старую версию), поэтому я использую копию Eclipse загружен с eclipse.org, а не с Ubuntu.

Если у вас установлено более одной версии Java (пользователи OS X, вероятно, это вы), перейдите в настройки Eclipse, щелкните треугольник рядом с «Java» и найдите раздел «Установленные JRE».Убедитесь, что тот, который вы только что установили, указан там и отмечен флажком. Если это не так, нажмите «Добавить», затем нажмите «Каталог» справа, перейдите туда, где вы установили Java JDK, и найдите внутри него каталог «jre». В OS X установщик Oracle будет установлен в / Library / Java / VirtualMachines /. Примеры:

 Mac OS X:  /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre  Linux:  / usr / lib / jvm / java-8-openjdk-amd64 / jre  
.
Установите плагин редактора YAML в Eclipse

Файл, который вы создаете, который сообщает Spigot, как взаимодействовать с вашим плагином, имеет формат YAML.В исходном состоянии Eclipse не понимает, как редактировать файлы YAML (хотя на самом деле это просто текстовый файл). Однако есть несколько плагинов, которые научат этому, как это сделать.

Перейдите в раздел «Справка» -> «Торговая площадка Eclipse» и введите «yaml» в поле «Найти». Есть несколько плагинов, которые могут это сделать, найдите тот, который вам нравится, и установите его.

ОБНОВЛЕНИЕ 2019/07/13: Раньше я рекомендовал YEdit здесь (в то время, когда я писал это, он был единственным), но он исчез из Eclipse Marketplace.Сейчас доступно несколько других, любой из них должен работать.

Создание вашего первого проекта в Eclipse

Создайте сам проект
  1. Выберите File -> New -> Java Project
  2. Введите имя вашего плагина
  3. Выберите Next ( not Finish)
  4. Щелкните вкладку Libraries .
  5. Щелкните Добавить внешние файлы JAR…
  6. Выберите затененную версию файла JAR Spigot-API из каталога Spigot, который вы скомпилировали выше.В каталоге с BuildTools.jar файл API будет находиться в Spigot / Spigot-API / target и, вероятно, будет называться примерно как spigot-api-1.14.2-R0-SNAPSHOT-shaded.jar
  7. Переключить треугольник слева от spigot-api
  8. Выберите Местоположение Javadoc
  9. Нажмите Edit…
  10. В Путь местоположения Javadoc введите: https://hub.spigotmc.org/javadocs/spigot/ . Это позволит автозаполнению в Eclipse автозаполнение объектов и методов Spigot API.
  11. Нажмите ОК
  12. Нажмите Готово
Создайте пакет
  1. Выберите Файл -> Новый -> Пакет.
  2. Введите имя вашего пакета. Обычно его структура похожа на доменное имя, но наоборот. Он должен начинаться с того, что вас идентифицирует, а затем иметь название проекта в конце и быть полностью в нижнем регистре. Сам Minecraft - это net.minecraft.server, например, Spigot - это org.spigotmc, а API плагина Bukkit - o
.

Как легко изменить 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 (телефон / планшет / Xbox). Если вы используете это, вы получите
.

CmdrDats / clj-minecraft: плагин Clojure Bukkit, Minecraft.

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

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

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

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