среда, 14 марта 2012 г.

MineCraft Server (CraftBukkit) на Linux

Решил раскрутить сервер MineCraft у себя на линуховой машине.

Подготовка

Буду я все это делать на свеже установленном Linux, установку производил

с CentOS-6.2-i386-minimal.iso (необходимый минимум и ничего лишнего).

Подготовим наш сервер к запуску серверной части MineCraft:

# yum update -y

Установим screen, mysql-server (wget, vim и mc по желанию)
# yum install -y  screen mysql-server wget vim mc

Установим Java

как это делать я описывал тут 
PS: # yum install -y java - такой метод нем не подходит, сервер не запустится.

# mkdir minecraft && cd minecraft

Установка и русификация

Последний рекомендуемый билд сервера

http://wiki.bukkit.org/Setting_up_a_server/

Нужен именно последний рекомендуемый билд, а не просто последний. Иначе прощайте плагины.

Русификатор

http://minecraft-game.ru/tag/rusifikator/

Из русификатора нужно взять папку lang и font.txt и заменить ими файлы внутри файла .jar сервера. Это удобно сделать в менеджере архивов, так как .jar почти обычный .zip.

После того как прорусифицировали заливаем файло на сервер. (как вариант через WinScp)

Запуск сервера

Запускать сервер тоже будем скриптом и обернём в screen. Скрипт запускает сервер и перезапускает если он уже запущен.(без сохранения мира и т.д.).

# vim start.sh

В нем рисуем:

#!/bin/bash
screen -X -S minecraft quit
cd ~/minecraft
screen -A -d -m -S minecraft java -Xincgc -Xmx1G -jar craftbukkit-1.1-R6-20120301.142116-2.jar

Делаем наш скрипт исполняемым

# chmod +x start.sh

Если нам неведомым образом удалось наплодить скринов minecraft, то для этого случая
приготовим скрипт который убьет все сессии screen со словом minecraft

# vim kill.sh

В нем рисуем:

#!/bin/bash
kill `ps -ef | awk '! /awk/ && /minecraft/ {print $2}'`

Скрипт на "правильный"  перезапуск:

# vim restart.sh

В нем рисуем:
#!/bin/bash
screen -x minecraft

Далее в консоль сервера ручками вбиваем:
save-all
stop

Запускаем сервер:

# ./start.sh

Файлов после этого прибавится, в том числе будут созданы файлы настроек.

Настройка
server.properties

Исчерпывающая информация по файлу настроек на русском


Многие значения имеют два параметра — true или false. Рассмотрим некоторые из них:

allow-nether=true — разрешить/запретить Нижний мир на сервере

level-name=world — имя карты. В большинстве случаев менять не требуется. Если вы закинули мир из сингла, то поменяйте значение на имя папки с вашим миром, или переименуйте его в world

allow-flight=false — вкл/выключить встроенную защиту от полетов. Будет кикать летающих игроков без creative режима. Если вы планируете другую защиту от полетов, можете отключить этот параметр.

enable-query=false
enable-rcon=false — эти 2 строки используются для удаленного подключения к консоли.

server-port=25565 — порт, по которому будет доступен сервер.

level-seed= — сид для генерации мира.

server-ip= — ip сервера. В большинстве случаев можно оставить пустым, особенно если все работает.

white-list=false — вкл/выкл вайтлист на сервере. При включенном параметре, зайти смогут только те игроки, которые прописаны в файле white-list.txt

spawn-animals=true — будут ли появляться нейтральные мобы
spawn-monsters=true — будут ли появляться агрессивные мобы

online-mode=true — при true зайти смогут только игроки с лицензией. При false — все. Не стоит выставлять его в false, если на сервере нет парольной защиты для игроков, иначе любой сможет зайти под вашим администраторским ником и натворить делов..

pvp=true — вкл/откл ПвП на сервере. при выключенном параметре, игроки не смогут атаковать друг друга.

difficulty=1 — сложность игры. Варьируется от 0 до 3
gamemode=0 — режим игры на сервере. 0 — выживание, 1 — креатив режим.

max-players=20 — максимальное количество игроков.

view-distance=10 — дальность вида на сервере. Влияет на то, сколько чанков в каждую сторону видит игрок. Может принимать значения от 1 до 15

motd=A Minecraft Server — имя сервера, будет отображаться в списке серверов в главном меню.


Bukkit.yml 
Bukkit.yml - файл, который предоставляет Вам большое разнообразие опций для того, чтобы сконфигурировать Ваш сервер CraftBukkit.

Меняем БД на Mysql:

database:
  username: minecraft
  isolation: SERIALIZABLE
  driver: com.mysql.jdbc.Driver
  password: pass
  url: jdbc:mysql://localhost:3306/minecraft

Здесь мы указываем настройки Mysql, чтобы не указывать их для каждого плагина отдельно.
На будущее, пока не все плагины могут брать настройки отсюда.

Многие из них предлагают на выбор хранить базу данных в Mysql или локально. Первый вариант всегда лучше. Во-первых он намного быстрее, во-вторых работать с базой будет проще - например если плагин создаст дубликаты записей и вам нужно будет это исправить.

Для удобства храните все данные плагинов в одной базе, но используйте для разных плагинов префиксы, например lwc_ для LWC.

Применение настроек, управление сервером

Чтобы применить настройки, сервер нужно перезапустить:
Юзаем на скрипт на "правильный"  перезапуск:

# restart.sh

и мы попадаем в консоль управления сервером.

Иногда достаточно дать комманду reload и этого бывает достаточно, иначе сначала необходимо сохраниться save-all остановить сервер stop и запустить ./start.sh

Получить помощь по командам сервера можно если вбить help


Общая информация о плагинах

Плагины можно найти на http://dev.bukkit.org/ http://rubukkit.org/forums/, обычно информация об установке и использовании находится в самом топике.

Чтобы включить плагин скопируйте .jar в папку plugins и перезапустите сервер, хотя обычно можно обойтись командой reload. После этого может появиться папка plugins/, в ней хранятся настройки (как правило в .yml) и локальные базы данных.

Некоторые плагины идут сразу с настройками в комплекте (папка , соответсвенно её нужно скопировать в plugins), некоторые работают вообще без папки с настройками.

Никогда не используйте символы табуляции при редактировании .yml, сервер просто не будет запускаться. Чтобы рекурсивно заменить табуляцию на четыре пробела во всех .yml файлах используйте этот скрипт:

# vim convert_tabs.sh

#!/bin/bash

find ~/minecraft -name "*.yml" |while read line
do
expand --tabs=4 $line > $line.new
mv $line.new $line
done

# chmod +x convert_tabs.sh

Он удобен, если вы работает в редакторе, который автоматически вставляет табы.

Список всех плагинов покажет команда plugins.

PS:  Версия клиента и сервера должна совпадать, иначе не подключимся. Например если сервер версии 1.1, то клиентом версии 1.2 мы подключиться не сможем, справедливо и обратное.

Комментариев нет:

Отправить комментарий