Если Вы хотите сделать свой сервер Minecraft и также хотите вносить в него любые изменения без использования модов и плагинов, то этот вариант по сборке сервера Minecraft может Вам подойти.
Переходим на сайт spigotmc.org, и кликаем по ссылке Spigot/BuildTools.
И скачиваем BuildTools.jar:
Для запуска файла BuildTools.jar необходимо скачать JRE с официального сайта java.com, описывать процесс не буду, т.к. если Вы не сможете самостоятельно поставить Java с помощью установщика, то надежды на установку сервера у Вас нет (шутка).
Еще необходимо (обязательно!) произвести установку GIT (в переводе с английского «мерзавец»), GIT — это система контроля версий. Скачиваете установочный файл с сайта https://git-scm.com, и запускаете установку, на все впредложеные вопросы установщика, отвечаете согласием. Уствновака не сложная. Хочется сразу спросить: зачем нам система контроля версий в истории с Minecraft сервером? Но парадокс в том, что компания Spigot предоставила возможность кастомной сборки сервера именно через GIT. Насколько это оправдано не нам судить, но получилось довольно удобно. Для тех, кто никогда не работал с GITом, процесс может показаться несколько сложным, но есть неоспоримый аргумент в пользу его использования: с GITом должен уметь работать каждый системный администратор или программист или желающий им стать :).
У нас есть файл BuildTools.jar:
Предлагаю создать для файла BuildTools.jar отдельную папку(у меня это папка Minecr), перемещаем файл BuildTools.jar в папку Minecr и запускаем его. Далее необходимо подождать от 5 до 30 минут, т.к. данный файл производит сборку сервера Minecraft. Ждем ровно до появления файла spigot.jar, возможно в названии файла могут присутствовать цифры, наподобие — spigot-1.15.2.jar.
По большому счету, файл spigot-1.15.2.jar — это и есть сборка сервера Minecraft. Остается понять, как нам ее можно изменить (кастомизировать).
Предлагаю, для примера, добавить какое-нибудь не свойственное действие для блока, например для блока TNT.
Открываем файл BlockTNT.java в любом редакторе. У меня IDE VSCode.
Предлагаю добавить метод stepOn() к классу BlockTNT. Этот метод будет срабатывать, при наступании на блок TNT. Я этот метод взял из класса BlockMagma, файла BlockMagma.java, таким образом блок TNT будет вести себя как блок Магмы.
Напишу код этого метода, для наглядности:
@Override
public void stepOn(World world, BlockPosition blockposition, Entity entity) {
if (!entity.isFireProof() && entity instanceof EntityLiving && !EnchantmentManager.i((EntityLiving) entity)) {
org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); // CraftBukkit
entity.damageEntity(DamageSource.HOT_FLOOR, 1.0F);
org.bukkit.craftbukkit.event.CraftEventFactory.blockDamage = null; // CraftBukkit
}
super.stepOn(world, blockposition, entity);
}
Файл BlockTNT.java будет выглядеть так:
Уровень повреждений можно изменить (в красном прямоугольнике).
Сохраняем файл и звкрываем редактор. Следующим этапом нужно в GIT закомитить (зафиксировать) наши изменения.
Для этого открываем консоль, и переходим (в консоли) в папку \Spigot\Spigot-Server.
Далее вводим команды:
git status
git add .
git commit -m 'turn-n-your-imagination'
После того как мы закомитили наши изменения, нужно прописать патчи для этих изменений. Делается это автоматически, после запуска файла rebuildPatches.sh, Файл располагается в папке Spigot.
Ждем от одной до пяти минут, пока происходит ребилд патчей.
И остается финальный этап — компиляция сборки. Компиляцию будем производить с помощью компилятора Maven, который располагается в корневой папке проекта, на данный момент это папка «apache-maven-3.6.0».
В консоли переходим в папку Spigot, командой:
cd ..
И вводим команду MVN для компиляции проекта:
C:\Users\Dmitriy\Desktop\Minecr\apache-maven-3.6.0\bin\mvn clean install
Здесь «C:\Users\Dmitriy\Desktop\Minecr\apache-maven-3.6.0\bin» — это путь до файла(компилятора) mvn.exe, у Вас путь может быть немного другой. По-подробнее: файл mvn.exe хранится в папке apache-maven-3.6.0 \ bin, а папка apache-maven-3.6.0 располагается в корне проекта. Команда «clean» — это команда очистки директории, куда будет добавлена Ваша кастомная сборка. «Install» думаю понятно.
Ждем пару минут, и переходим в папу target, путь — Spigot\Spigot-Server\target
Файл spigot-1.15.2-R0.1-SNAPSHOT.jar — это и есть наша кастомная сборка, где при наступлении персонажем на блок TNT, герой начинает терять здоровье.
Для установки нашей кастомной сборки, можете воспользоваться гайдом — https://ithazard.com/установка-сервера-minecraft/, начиная сразу со второго пункта, т.к. сервер у Вас уже есть — spigot-1.15.2-R0.1-SNAPSHOT.jar.