minecraft-usu

В тази статия ще ви покажа как под УСУ Линукс (а също и други Ubuntu-базирани дистрибуции) да си инсталирате и настроите автоматично стартиращ се Minecraft сървър, който веднъж пуснат, не изисква никаква намеса от ваша страна. За хората които не са чували са Minecraft или не са опитвали да го играят, ще кажа само че са изгубили – играта е изключително креативна и занимателна (особено в Survival режим) 🙂
Препоръчвам я опитате – може да се играе и напълно безплатно, въпреки че не е свободна.
Изисква само еднократна регистрация на адрес https://minecraft.net/ – нужно е само веднъж да се регистрирате и да я пуснете в браузъра за да се изтеглят нужните файлове. След това може да си я играете локално чрез launcher-а който се изтегля от там.
Но да не се отклоняваме – искам да ви покажа как да направите собствен сървър. Въпреки че в мрежата има най-различни помощни скриптове и програми за управление на Minecraft сървъри, тук ще разгледаме възможно най-простия пример.

Minecraft е Java приложение, и като такова, се нуждае от виртуалната машина на Java за да работи. За щастие, в УСУ Линукс си я имате предварително инсталирана, така че не е нужно да правите нищо в това отношение.
В примера ще инсталираме Minecraft в папка minecraft в домашната ви папка (в моя случай това е /home/lokster/minecraft).
Пуснете си един терминал от основното меню > Система -> Терминал.
В него изпълнете следните команди:

sudo wget -O/etc/init.d/minecraft "http://www.minecraftwiki.net/wiki/Tutorials/Server_startup_script/Script?action=raw"
sudo chmod a+x /etc/init.d/minecraft
sudo update-rc.d minecraft defaults
sudo apt-get install screen

Командите изискват root права, и ще ви попитат за паролата.
Следва да направите няколко малки корекции в скрипта за стартиране на Minecraft.
За целта изпълнете следната команда:

sudo nano /etc/init.d/minecraft

Това ще отвори скрипта за редактиране.
По принцип е възможно да създадете отделен потребител за Minecraft, чрез който да се стартира сървъра, но в текущите инструкции за простота ще използваме потребителя, с който се вписвате.
След като сте отворили /etc/init.d/minecraft за редактиране, намерете следния ред (местейки курсора със стрелките на клавиатурата):

USERNAME='minecraft'

и го променете така, че да съответства на вашето потребителско име (можете да разберете името си с команда „whoami“). В моя случай, това е „lokster“, така че реда ще изглежда така:

USERNAME='lokster'

След това променете и реда

MCPATH='/home/minecraft/minecraft'

съответно на

MCPATH='/home/lokster/minecraft'

и

BACKUPPATH='/media/remote.share/minecraft.backup'

на

BACKUPPATH='/home/lokster/minecraft/backup'

(с вашето потребителско име пътищата ще са различни!)

Също така е необходимо да се зададе и името на нивото, което сървъра хоства. По подразбиране е „world“, но може да го промените като редактирате реда

WORLD='world'

примерно на

WORLD='myworld'

Ако го променяте обаче, ще трябва в една от следващите стъпки да зададете същото име и в конфигурационния файл на сървъра.
Щом направите промените, щракнете Ctrl+O, после Enter, и след това Ctrl+X. Това ще запази и затвори файла.
Създайте директорията която посочихте в BACKUPPATH – в моя случай това е /home/lokster/minecraft/backup:

mkdir -p /home/lokster/minecraft/backup

Сега изпълнете следните две команди:

sudo service minecraft update
sudo service minecraft stop

Те ще изтеглят самия изпълним файл на Minecraft, ще стартират сървъра с опции по подразбиране, и след това ще го спрат (като резултат, това ще създаде няколко конфигурационни файла, които ще трябва да редактирате с опции според вашите нужди).

Сега отворете за редактиране файла server.properties от директорията на Minecraft, пак, в моя случай това е /home/lokster/minecraft/server.properties:

nano /home/lokster/minecraft/server.properties

Там има няколко параметъра, които като за начало може да промените:

  • level-name – задава името на нивото което ще се генерира, например level-name=myworld
  • online-mode – задава дали сървъра ще е „онлайн сървър“, изискващ да имате Premium регистрация, или ще може всеки да се свързва към него. За нашите цели ще го направим да не изисква Premium регистрация като зададем online-mode=false. Като краен резултат обаче, абсолютно всеки ще може да се свъже към вашия сървър. Затова обърнете внимание на следващата опция, която ще променим.
  • white-list – ако е „true“ позволява САМО потребителите с имена, посочени на отделен ред във файла white-list.txt да могат да се просъединяват към сървъра ви. Ако си правите „частен“ сървър, на който да играете само с познати хора, сложете white-list=true, и след това във файла white-list.txt в същата директория изредете на отделни редове потребителските им имена (не е нужно да са регистрирани на сайта на Minecraft)
  • gamemode – задава режима на игра – „0“ за Survival и „1“ за Creative. В примера ще играем Survival, затова gamemode=0

Ето го целият ми конфигурационен файл:

#Minecraft server properties
#Tue Jan 29 16:03:56 EET 2013
generator-settings=
allow-nether=true
level-name=myworld
enable-query=false
allow-flight=false
server-port=25565
level-type=DEFAULT
enable-rcon=false
level-seed=
server-ip=
max-build-height=256
spawn-npcs=true
white-list=true
spawn-animals=true
snooper-enabled=true
hardcore=false
texture-pack=
online-mode=false
pvp=true
difficulty=1
gamemode=0
max-players=20
spawn-monsters=true
view-distance=10
generate-structures=true
spawn-protection=16
motd=A Minecraft Server

Повече информация относно параметрите в този файл, може да откриете на адрес http://www.minecraftwiki.net/wiki/Server.properties
Запазете и затворете файла, и сте готови.
Може да стартирате сървъра с команда:

sudo service minecraft start

Можете да го спрете така:

sudo service minecraft stop

А ако искате да забраните автоматичното му стартиране със системата, изпълнете това:

sudo update-rc.d -f minecraft remove

Самият скрипт има още няколко възможности, върху които обаче няма да се спирам подробно. Например, възможността за създаване на резервно копие на нивото чрез Cron задача, а също така и възможност за автоматично актуализиране на изпълнимия файл на сървъра.