Настройка локального тестового сервера

Вам нужен тестовый сервер

Вы, наверное, читаете эту страницу и думаете: «У меня уже есть сервер, зачем мне это?»… У большинства людей есть какой-то сервер, но большинству стоит завести продакшн-сервер и тестовый сервер. В чём разница?

  • Продакшн-сервер — это тот, на который заходят игроки; его вы, скорее всего, не хотите неожиданно крашнуть или сломать.

  • Тестовый сервер — тот, на котором в любой момент времени сидите только вы и, может быть, один друг; его не страшно уронить или сломать.

Когда вы пишете скрипты, особенно поначалу, вполне можно случайно сделать что-то, что крашнет сервер, или устроить что-нибудь «весёлое» — например, чтобы трава взрывалась каждый раз, когда вы её ломаете… Держите всё это на тестовом сервере, чтобы нечаянно не испортить игровой день ни одному игроку.

Лучше, чтобы он был локальным

У некоторых уже есть удалённый тестовый сервер… это на самом деле больше похоже на «staging-сервер» — то есть сервер, который настроен в точности как продакшн, но без игроков под ногами. Тестовый сервер — это тот, который можно удалить, выбросить, обнулить, перекроить по первому капризу, и в этом не участвует никто другой.

Самый простой и удобный способ — просто запустить сервер на вашем локальном компьютере (не переживайте, это действительно просто).

Как настроить локальный сервер

Всё очень просто! Давайте по шагам…

Сразу оговорюсь: это руководство ориентировано на Windows, поскольку это самая распространённая ОС (но отличия для других систем я буду отмечать там, где это важно).

  • Шаг 0: установите Java. Вполне возможно, что на вашем ПК Java ещё не установлена — если так, её нужно поставить. Скачать OpenJDK 21 можно отсюда. (для Linux/Mac — просто загуглите, как установить OpenJDK 21 под вашу конкретную ОС/дистрибутив). При установке обязательно отметьте опции «Add to PATH» и «Set JAVA_HOME variable». Учтите, что нужная версия Java зависит от версии вашего Minecraft-сервера. В актуальных версиях используется JDK 21, в недавних прошлых — JDK 17, а в совсем далёком прошлом стандартом была Java 8.

../../_images/javainstall.png

  • Шаг 1: скачайте серверный jar. Обычно для этого берут Spigot… но со Spigot скачивание — это небольшой квест. Можете почитать страницу BuildTools в вики, если хотите пройти этот путь, но я рекомендую просто взять Paper — он скачивается одним кликом: скачать Paper отсюда. Для справки: Paper — это форк Spigot, заточенный под более эффективную работу, и вдобавок его гораздо проще начать использовать. В 99% случаев Paper и Spigot jar-файлы взаимозаменяемы без каких-либо проблем.

Также многие предпочитают переименовать jar в paper.jar (то есть убрать версию из имени файла), чтобы потом не пришлось править стартовый скрипт, который мы сделаем на шаге 3.

../../_images/paperdownload.png

  • Шаг 2: создайте папку сервера. Можно сделать папку где угодно, хоть на рабочем столе, — главное, чтобы в ней больше ничего не лежало (сервер сгенерирует вокруг себя кучу файлов). Положите скачанный серверный jar в эту папку.

../../_images/myserverfolder.png

  • Шаг 3: сделайте стартовый скрипт. Самый простой путь — открыть Блокнот и создать файл с именем start.bat (при сохранении выберите «все файлы», а не «текстовые документы»). В этот файл поместите следующее: java -Xms1G -Xmx1G -jar paper.jar nogui … детали можно подкрутить — две «1G» означают, сколько RAM вы хотите выделить серверу (1G — это «один гигабайт оперативки», можно также писать 2G для 2 гигабайт, 500M для 500 мегабайт и т. п. Если меняете — поменяйте и Xms, и Xmx.), а paper.jar — это имя вашего серверного jar-файла. (На Linux или Mac создайте файл start.sh и отредактируйте его в любимом текстовом редакторе. Команда внутри остаётся той же.)

../../_images/startbat.png

  • Шаг 4: запустите сервер один раз. Для этого просто дважды кликните по стартовому скрипту. Если всё хорошо, на минуту откроется окно командной строки, оно покажет несколько сообщений и закроется, а в папке появится новый файл eula.txt. Поскольку Mojang теперь живёт в мире юристов, вам нужно открыть этот файл и заменить false на true — так вы соглашаетесь с EULA Minecraft. Пока не перезапускайте сервер.

../../_images/seteulatotrue.png

  • Шаг 5: добавьте плагины. Создайте папку plugins, если её ещё нет, и скачайте актуальные jar-файлы Denizen, Citizens и т. п. (любых нужных вам плагинов), после чего положите их в эту папку. Для тестового сервера вам, скорее всего, захочется поставить свежий Developmental-билд Denizen, а вот для продакшн-сервера обычно лучше брать последний Release-билд Denizen.

../../_images/denizeninpluginsfolder.png

  • Шаг 6: первый «настоящий» запуск. Запустите стартовый скрипт ещё раз… в первый раз всё будет грузиться заметно дольше, в дальнейшем — быстрее. Папки плагинов, данные мира и т. п. сгенерируются автоматически.

../../_images/firstlaunch.png

  • Шаг 7: зайдите на сервер. Добавьте сервер в меню мультиплеера Minecraft, указав в качестве адреса просто localhost. Это специальный адрес, означающий «сервер на той же машине, на которой я играю». Если всё прошло без ошибок, вы спокойно зайдёте (а если что-то пошло не так — у вас будет сообщение об ошибке, которое можно изучить или приложить к репорту). В том же окне командной строки вы можете выдать себе op и сделать всё, что вам нужно. Держите это окно на виду — потом пригодится отладочный вывод, который туда сыпется.