Собственная кастомная сборка сервера Minecraft

Если Вы хотите сделать свой сервер 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.

Добавить комментарий