Spigot майнкрафт что это
🐹 Minecraft: Создание и настройка сервера с игрой версии 1.17.1. Серверная модификация Spigot. Скрипты сопровождения. Резервное копирование каталога с игровым сервером.
Опубликовано 2021-10-12 · Обновлено 2021-10-26
Содержание:
1. Что такое Minecraft?
Наверняка почти все слышали о такой компьютерной игре как Minecraft от детей, друзей, знакомых и так далее и, возможно, задавались вопросом, почему эта игра такая популярная?
Minecraft — компьютерная инди-игра в жанре песочницы, разработанная шведским программистом Маркусом Перссоном и выпущенная его компанией Mojang AB, то же LEGO, но только в компьютерной игре. Строй и разрушай различные блоки с определёнными характеристиками и текстурой. Всего в игре больше 250 различных блоков.
Minecraft появилась в 2009 году. На тот момент игра была сырой — с огромным количеством технических проблем и багов. Всё равно вокруг проекта сформировалось сообщество поклонников. Что и говорить, тогда концепция безграничной «песочницы» казалась необычной и притягательной. Minecraft позволила игрокам создавать все что угодно: от хлипких хибар до величественных средневековых замков.
Minecraft пробуждает в человеке творца. Игра про строительство дарит возможность творить в рамках пиксельного мира. И это ее главный козырь. Еще в Minecraft нужно выживать — отбиваться или прятаться от всяческой нечисти, которая без приглашения приходит в мир игрока с наступлением ночи.
Принцип работы системы Minecraft: есть сервер с игровым миром, к нему подключается клиент с игроком.
В данном руководстве мы создадим свой игровой сервер Minecraft для игры с друзьями по локальной сети или сети Интернет, если вы арендуете белый IP-адрес у провайдера.
И так, нам понадобится:
2. Особенности сборки.
2.1. Сервер Minecraft.
На момент написания этой инструкции крайней актуальной версией сервера Minecraft была версия 1.17.1.
2.2. Серверная модификация Spigot.
Spigot — глобальная серверная модификация, предоставляющая API для взаимодействия с игровым миром и созданная для упрощения создания плагинов к SMP-серверу. Spigot создан на основе ядра CraftBukkit и призван заменить «старшего брата» стабильностью и производительностью. Кроме этого, почти все плагины, написанные для CraftBukkit, пойдут и на Spigot, но на Spigot написаны и собственные, недоступные CraftBukkit плагины.
Последнюю актуальную версию серверной модификации Spigot всегда можно скачать с официальной странички программного обеспечения, сразу запустить и играть.
3. Установка и настройка серверной части.
3.1. Установка mc, git, java.
Обновим все компоненты CentOS 7 под пользователем root и их зависимости до крайних версий:
Установим текстовый редактор mc для редактирования файлов конфигурации:
Когда вы устанавливаете CentOS 7, функция SELinux включена по умолчанию. Из-за этого некоторые приложения в вашей системе могут фактически не поддерживать этот механизм безопасности. Поэтому, чтобы такие приложения функционировали нормально, вам необходимо отключить SELinux.
Для получения актуального алгоритма, для сборки программного обеспечения для сервера Minecraft, потребется установить систему контроля версий програмного обеспечения.
Одной из наиболее популярных систем контроля версий является Git. Репозиторий Git хранит файлы огромного количества проектов, а сайты GitHub и Bitbucket позволяют быстро и просто распространить и улучшить код.
Проще и быстрее всего установить Git с помощью стандартного репозитория CentOS 7.
Итак, чтобы установить Git используйте:
Если команда не выдала ошибок, система управления версиями Git будет загружена и установлена.
Чтобы протестировать установку программы, запустите встроенную проверку версии:
Если эта команда выдала номер установленной версии, то установка прошла успешно.
Чего бы у вас не было предустановленно, оно уже устарело для версии игры Minecraft 1.17.1 и нам нужно будет установить версию Java 17.
Самую крайнюю и актуальную версию Java можно получить только на официальном сайте производителя этого программного обеспечения, но для этого приёдется зарегистрироваться на сайте.
Примечание: Если регистрироваться лень, то далее по иструкции, крайняя версия установочного пакета Java 17 отлично скачивается утилитой wget и без регистрации на сайте. Ссылка на скачивание ничем не ограничена. В итоге, можете не регистрироваться и не заходить на сайт вообще. Установлено опытным путем.
Переходим в раздел Downloads.
К примеру, скачаем в каталог /tmp :
Кроме того, можно проверить, какой конкретный пакет RPM предоставляет файлы JAVA:
Ответ:
3.2. Установка и настройка межсетевого экрана.
Для корректной работы сервера Minecraft нужно настроить правила межсетевого экрана.
В данном руководстве используется программа iptables, как установить и настроить iptables читайте в отдельном материале на моем сайте.
3.2.1. Отключение firewalld.
Первым делом отключим firewalld, который присутствует в CentOS 7 по-умолчанию:
# systemctl stop firewalld
Теперь удалим его из автозагрузки, чтобы он не включился снова после рестарта:
# systemctl disable firewalld
Удалим с сервера CentOS 7 межсетевой экран firewalld:
После этого на сервере настройки сетевого экрана становятся полностью открытыми.
Посмотреть правила iptables можно командой:
Как видно, правила межсетевого экрана полностью отключены.
3.2.2. Установка и настройка iptables.
На самом деле межсетевой экран у нас на сервере уже стоит и работает, просто нет никаких правил, все открыто. Установить нам нужно будет дополнительные утилиты управления, без которых конфигурировать iptables невозможно.
Теперь можно добавить iptables в автозагрузку и запустить:
# systemctl start iptables.service
# systemctl enable iptables.service
Открываем файл конфигурации iptables текстовым редактором:
И в середине массива строк, под разрешением работы с портом 22, добавляем строку точно такую же строку:
Теперь строки конфигурации для межсетевого экрана:
Изменения должны получиться такими:
Чтобы iptables это учел в работе, нужно его перезапустить:
# systemctl restart iptables
Если после этой команды вышла ошибка:
Внимательно проверяйте, что вы там написали. В вашем конфигурационном файле содержатся опечатки!
Проверим какие правила межсетевого экрана у нас установились:
Ответ:
Сервер игнорирует входящие соединения по всем портам, кроме тех, которые мы указали в файле конфигурации, не пересылает ничего, но, при этом, сам может отправлять всё что ему потребуется кому угодно.
Для доступа из интернета игрового сервера Minecraft просто пробросите порты через маршрутизатор и можно будет пользоваться ими вне локальной сети.
4. Технология BuildTools: получение Spigot.
Можно скачать готовый сервер Minecraft, а можно его сделать самому с помощью технологии BuildTools. С его помощью можно собрать любую нужную для вас версию ядра Minecraft, которая работает автономно. Все что нужно, это скачать BuildTools и выполнить несколько команд, в результате чего, будет создано необходимое для вас ядро.
4.1. Где взять?
Скачиваем BuildTools можно на официальном сайте Spigotmc.ORG, в разделе Maven project BuildTools.
Нужно нажать на ссылку крайняя стабильная сборка, это означает, что вы скачаете крайнюю актуальную протестированную сообществом сборку.
Для заскачивания в CentOS 7 установим программу для скачивания из Интернета:
И скачаем по ссылке BuildTools.jar :
4.2. Создание технического пользователя.
Можно скачать готовый сервер Minecraft, а можно его сделать самому с помощью технологии BuildTools. Этим мы и займёмся в этом разделе инструкции.
Создадим учетную запись пользователя, который будет обслуживать данную систему, почти без участия системного администратора.
Обращаю внимание, что мы создали пользователя minecraftuser с полноценной возможностью пользоваться консолью и заходить на сервер по ssh. Данную способность у этой учетной записи мы отключим позднее, когда настроим автоматический запуск игрового сервера.
Будет предложено ввести 2 раза пароль, чтобы его запомнить в системе.
Для ленивых существует генератор паролей онлайн.
4.3. Применение BuildTools.
Пройдем по пути /home/minecraftuser/ и приступим к работе:
Таким способом, по аналогии, можно поставить и старые версии сервера Spigot.
Список версий и команд прилагается!
На экране побегут строки… Много-много разных строк! В каталоге /home/minecraftuser/ начнут появляться новые каталоги и файлы. Это будет длиться довольно долго. Порой будет казаться что он просто завис, но это не так! Запаситесь терпением и всё пройдет исправно.
Полная версия инструкции по установки находится на официальном сайте Spigot.
Внимание! Ждем завершения процедур, не в коем случае не закрываем!
Можно смело идти пить чай до самого окончания процесса создания серверной модификация Spigot. Процесс реально будет долгим.
Окончание долгой установки будет отмечено вот такими строками:
Таким образом вы можете быстро получить чистое ядро серверной модификации Spigot для крайней Minecraft версии 1.17.1.
4.4. Первый запуск Spigot.
Добавим права на использование ресурсов игры в каталоге /home/minecraftuser/ пользователем minecraftuser :
Перейдем в учетную запись minecraftuser :
Проверим, как прошел процесс сборки ядра серверной модификации Spigot:
Серверная модификация Spigot добросовестно запустится, сгенерирует еще несколько новых файлов с своем каталоге и предложит прочитать и принять лицензионное соглашение от разработчиков сервера Minecraft:
Открываем текстовый файл eula.txt в текстовом редакторе.
Меняем false на true значение по смыслу.
4.5. Настройка и конфигурирование сервера.
Посмотрим у сервера CentOS 7 его текщий IP-адрес:
Наш сервер получил IP-адрес. Запомним его.
В файле конфигурайии нужно отключить проверку лицензий на клиентах сервера Minecraft и добавить в него IP-адрес нашего сервера CentOS 7.
Содержимое файла server.properties :
Ищем главные строки ‘ server-ip = ‘ (он содержит пустой параметр), ‘ online-mode =true ‘ (активирована проверка), ‘ debug=false ‘ (параметр разрешает отправку с вашего сервера), которые содержат некоторые обязательные параметры и заменяем их на вот эти значения:
Вот официальная страничка этого файла конфигурации.
Рассмотрим подробнее каждый пункт и его возможные значения:
Параметры, которых нет в версии 1.17.1, но они были в предыдущих версиях:
Сохраняем файл конфигурации после настройки под ваши возможности оборудования и игровые планы.
4.6. Создание каталогов для плагинов.
С принятием лицензии и первоначальной настройкой сервера мы закончили.
Снова запустим сервер, но уже из-под пользователя minecraftuser с минимальными настройками, чтобы он прогрузился и создал еще несколько каталогов и файлов.
Внимание! Снова прийдется подождать некоторое время. Иногда будет казаться, что сервер подвис и ничего не происходит. Он генерирует первоначальную нового карту мира и создает новые каталоги для плагинов и настроек. Ждем завершения процедур, не в коем случае не закрываем!
Окончанием успешно развернутого в оперативной памяти сервера будут вот такие строки:
Сервер запущен! Поставим на него плагины!
Сохраняем сгенерированную карту своего игрового мира:
Останавливаем работу сервера сервисной командой stop :
4.7. Тонкая настройка запуска игрового сервера.
Для комфортной и интересной игры нужно настроить запуск сервера с конкретными параметрами, которые подойдут именно вам и и менно для вашего оборудования.
Minecraft требует наличия 1 Gb оперативной памяти для работы операционной системы сервера + 4 Gb оперативной памяти на компанию из 10 игроков.
Подробнее обоснования таких параметров запуска сервера можете почитать в Интернете.
Максимальное и минимальное значение выделяемой памяти не рекомендуется делать равным. Это приводит к медленной работе сервера Minecraft.
Вариант щедрого запуска сервера на 4 Gb оперативной памяти.
Запускаем снова из-под пользователя minecraftuser :
Сохраняем карту игрового мира:
Останавливаем работу сервера:
5. Создание shell-скрипта start.sh.
Всё у нас работает, всё у нас хорошо, но почему бы не упростить себе запуск сервера с любимой игрой?
Если вам надоело каждый раз вводить длинную команду и пользоваться утилитой screen:
Выход есть — это создание shell ( *.sh ) скрипта и запуск его в фоновом режиме при любой перезагрузке сервера.
Создадим из под root :
Поместим в него строки:
Сохраним файл start.sh и выйдем из текстового редактора.
# chown minecraftuser:minecraftuser /sh/minecraft/start.sh
Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости.
Для этого используется команда chmod +x и имя файла скрипта:
# chmod +x /sh/minecraft/start.sh
Очень удобно! Сервер запускается всего с одной простой команды.
Сохраняем карту игрового мира:
Останавливаем работу сервера:
На этом этапе можно начать пользоваться запуском игрового сервера в фоновом режиме с помощью утилиты screen.
6. Установка и настройка файлов клиентской части.
Пришло время настроить клиент игры Minecraft и погрузиться в этот удивительный игровой мир:
7. Настройка системы rcon.
Rcon — это система, которая может локально или удаленно управлять вашим Minecraft сервером через web-интерфейс, если вы находясь далеко от компьютера на котором запущен сервер.
8. Создание shell-скриптов — restart.sh, save_all.sh, stop.sh.
Почему бы не автоматизировать и други основные команды сервера Minecraft: перезапуск, сохранение игрового Мира и полную остановку?
Внимание! Дальнейшие действия в инструкции предусматривают, что вы настроили rcon и mcrcon на предыдущем, шаге №7, данной инструкции.
8.1. Скрипт restart.sh.
Создадим файл restart.sh — скрипт перезапуска игрового сервера Minecraft:
Поместим в него строки:
Сохраним файл и выйдем из текстового редактора.
Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:
# chmod +x /sh/minecraft/restart.sh
Протестируем в консоли пользователя minecraftuser :
Если сервер Minecraft функционировал на сервере CentOS 7, то он успешно уйдет на перезагрузку. Перезагрузится, подхватит скрипт start.sh по ссылке в его игровом каталоге и успешно запустится!
8.2. Файл save_all.sh.
Создадим файл save_all.sh — скрипт запуска игрового сервера Minecraft:
Поместим в него строки:
Сохраним файл и выйдем из текстового редактора.
Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:
# chmod +x /sh/minecraft/save_all.sh
Протестируем в консоли пользователя minecraftuser :
8.3. Скрипт stop.sh.
Создадим файл stop.sh — скрипт запуска игрового сервера Minecraft:
Поместим в него строки:
Сохраним файл и выйдем из текстового редактора.
Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости. Для этого используется команда chmod +x и имя файла скрипта:
# chmod +x /sh/minecraft/stop.sh
Протестируем в консоли пользователя minecraftuser:
Если сервер Minecraft функционировал на сервере CentOS 7, то он успешно сохранит файлы с Миром игры и полностью отключится. После выключения сервера Minecraft, его прийдется включать любым удобным способом. После данной команды он окончательно и бесповоротно отключен!
Для обратного ввода в эксплуатацию сервера Minecraft активируйте скрипт start.sh из под учетной записи пользователя minecraftuser :
Сервер запустится в штатном режиме.
9. Автоматизация запуска сервера Minecraft.
9.1. Автоматизация запуска с помощью crontab.
Для реализации данного способа требуется внести задачу скрипта start.sh в каталоге /sh/minecraft/ на исполнение в программу cron на сервере CentOS 7.
Проверим, работает ли у нас вообще cron в фоновом режиме?
Открываем файл заданий cron:
Добавляем строки по смыслу общего синтаксиса в файле:
Где указаны следующие параметры:
В консоли останавливаем сервер Minecraft и перезагружаем сервер CentOS 7:
Ждем некоторое время. Минут 3-5, в зависимости от производительности сервера CentOS 7.
Готово! Сервер CentOS 7 перезагрузился и стартовал сервер Minecraft.
9.2. Автоматизация запуска в качестве отдельного сервиса.
10. Организация резервного копирования игрового мира.
Создадим файл backup.sh — скрипт запуска игрового сервера Minecraft:
Поместим в него строки:
Сохраним файл и выйдем из текстового редактора.
Чтобы выполнить скрипт в указанной оболочке, нужно установить для него флаг исполняемости.
Для этого используется команда chmod +x и имя файла скрипта:
# chmod +x /sh/minecraft/backup.sh
Если вы не хотите писать полный путь к скрипту, это можно сделать, достаточно переместить скрипт в один из каталогов, которые указаны в переменной PATH.
Один из них, который предназначен для ручной установки программ – /usr/local/bin :
Протестируем в консоли пользователя minecraftuser :
Для реализации автоматического резервного копирования игрового мира требуется внести задачу скрипта backup.sh в каталоге /home/minecraftuser на исполнение в программу cron на сервере CentOS 7.
Проверим, работает ли у нас вообще cron в фоновом режиме?
Открываем файл заданий cron:
Добавляем строки по смыслу общего синтаксиса в файле:
Где указаны следующие параметры:
11. Организация доступа к ресурсам сервера по sFTP.
11.1. Отключение shell-оболочки.
Ранее мы создавали пользователя minecraftuser с возможностью пользоваться shell-оболочкой в CentOS 7. Это было нам полезно. Мы с вами всё настроили из под него. Все работает в автоматическом режиме. Данную способность у пользователя нужно забрать, так как если мы передадим учетку посторонним людям на администрирование сервера, то у нас будет некоторая прямая угроза в безопасности сервера CentOS 7.
Зайдем в системный файл, где хранятся все записи о пользователях:
Найдем строку про нашего minecraftuser :
Заменяем ее на эту строку по смыслу синтаксиса:
Таким образом, если minecraftuser соберется воспользоваться консолью, то сервер CentOS 7 ему это сделать не даст!
11.2. Подключение FTP.
12. Мелкий тюнинг.
12.1. Как добавить текстуры на сервер?
В server.properties пропишите путь к *.zip архиву с текстурпаком:
12.2. Как загрузить свой мир на сервер?
Для того, чтоб загрузить свой мир, Вам нужно зайти по FTP, удалить содержимое каталога world (или другого каталога с миром, если у вас не стандартное название мира) и загрузить свой мир в каталог с тем же названием.
13. Если что-то пошло не так.
13.1. Ошибка лицензии при запуске.
Ошибка: Бывает, что вы запускаете сервер Minecraft, а он постоянно простит принять лицензию в файле eula.txt и никак не хочет стартовать.
13.2. Игровой сервер Minecraft завис.
Ошибка: Игровой сервер Minecraft глюканул, вышел из под контроля, не хочет перезапускаться, пишет что уже запущен и не стартует, ведет себя странно? Выход есть!
Решение: Остановим все процессы без разбора, которые принадлежат пользователю minecraftuser :
Сбрасываем. Готово! Можно запустить всё заново и с чистого листа!