Установка StarryPy
StarryPy — это «обертка» над сервером, написанная на Python. StarryPy добавляет в игру новые возможности, такие как: команды администратора, игровые команды, логи входа на сервер, а также расширяет игру дополнительными плагинами.
Некоторые возможности StarryPy:
- Команды администратора
- Быстрый чат с администратором или модератором сервера
- Аннонсер, приветствует новых игроков при входе на сервер
- Баунсер, запрещаем незарегистрированным на сервере игрокам взаимодействовать с миром (отключен по умолчанию)
- Разноцветные ники в чате
- MOTD
- Помощник для новых игроков. По заданным параметрам добавляет новым игрокам в инвентарь вещи
- Защита планеты. Запрещает любые изменения на заданной планете
- Управление плагинами
- Варпы в любом направлении. Позволяет переместиться на чужой корабль или переместить свой или чужой корабль
Установка StarryPy для GNU/Linux
Рассмотрим установку StarryPy на выделенном сервере под управлением GNU/Linux (в данном случае это Debian / Ubuntu Server).

Установка Python
1. Установка Python
В большинстве дистрибутивов Python уже установлен в системе. Для Ubuntu 13.10 это Python версии 2.7.5+
Проверить версию установленного Python можно командой:
Для работы StarryPy необходимо наличие установленных пакетов python-dev и python-pip:

Установка StarryPy
2. Установка StarryPy
Скачиваем последнюю версию StarryPy с GitHub:
Код: Выделить всё
wget https://github.com/CarrotsAreMediocre/StarryPy/archive/master.zip
Распаковываем скачанный архив. Например в свою домашний каталог. Полученный каталог будет иметь путь вида ~/StarryPy-master
Переходим в каталог StarryPy-master:
Выполняем команду:
Дожидаемся завершения операции (операция завершится когда появится приглашение командной строки).
Установка завершена.

Настройка StarryPy
3. Настройка
Важно понять, что StarryPy работает именно как «обертка» над вашим сервером Starbound. Это означает, что StarryPy принимает на себя обработку запросов на стандартный игровой порт Starbound (21025), в то время как сам сервер и StarryPy взаимодействуют на другом порту (20124).
Переходим в каталог ~/StarryPy-master/config и дублируем файл config.json.example в просто config.json
Открываем config.json для редактирования (рекомендуется редактировать файл через редакторы типа Notepad++):
Код: Выделить всё
{
"bind_port": 21025, // ПОРТ ДЛЯ ВХОДА НА СЕРВЕР, ПО УМОЛЧАНИЮ 21025
"chat_prefix": "@",
"colors": {
"admin": "^#C443F7;",
"default": "^#F7EB43;",
"guest": "^#F7EB43;",
"moderator": "^#4385F7;",
"owner": "^#F7434C;",
"registered": "^#A0F743;"
},
"command_prefix": "/",
"core_plugin_path": "./core_plugins",
"debug_file": "debug.log",
"owner_uuid": "!!! SET THIS !!!", // UUID ВЛАДЕЛЬЦА СЕРВЕРА, ИМЕЕТ ВСЕ ПРАВА ПО УМОЛЧАНИЮ
"passthrough": false,
"player_db": "config/player.db",
"plugin_config": {
"motd_plugin": "Welcome to the server! Play nice.", // СТРОКА MOTD
"new_player_greeter_plugin": {
"items": [
[
"coalore",
200
],
[
"alienburger",
5
]
],
"message": "Welcome to the server! Here are some starter items to get you off to a good start."
}
},
"plugin_path": "./plugins",
"upstream_hostname": "localhost", // IP-АДРЕС СЕРВЕРА, ЕСЛИ ЗАПУЩЕН НА ОТДЕЛЬНОЙ МАШИНЕ
"upstream_port": 21024 // ПОРТ СЕРВЕРА, ДОЛЖЕН СОВПАДАТЬ С ПОРТОМ В КОНФИГЕ STARBOUND.CFG
}
Пояснения для самых важных параметров:
"
bind_port": 21025 — порт для входа на сервер. По умолчанию, StarryPy использует стандартный порт Starbound. Можно изменить.
Обязательный параметр.
"
owner_uuid": "!!! SET THIS !!!" — uuid «владельца». Владелец имеет все права, может назначать администраторв и модераторов. UUID можно взять из сохранений для своего персонажа (D:\Games\Steam\SteamApps\common\Starbound\player).
Обязательный параметр.
"
upstream_hostname": "localhost" — IP-адрес сервера Starbound, если он находится на другом физическом сервере. Если StarryPy и Starbound работают на одном сервере, то изменять значение не нужно.
Обязательный параметр.
"
upstream_port": 21024 — порт сервера Starbound. Порт, на котором будет запущен сам выделенный сервер. Его необходимо выбрать и установить в конфиге starbound.config значение "gamePort" : 21024.
Порты должны совпадать, иначе StarryPy не будет работать!
При работе StarryPy и Starbound на одном сервере рекомендуется с помощью файрвола запретить upstream_port для взаимодействия извне.

Запуск StarryPy
4. Запуск StarryPy
Запускаем сервер Starbound, после его инициализации запускаем StarryPy из его каталога:
Удобнее всего запускать StarryPy в отдельной сессии
screen
Для примера:
запустит процесс в отдельном «окне», доступ к которому можно получить набрав одну команду:
Установка StarryPy для Windows
Описана
здесь (на английском). Различия минимальны.
Использование StarryPy
После успешной установки и настройки StarryPy можно попробовать зайти на сервер на порт, который вы указали ранее в параметре "
bind_port".
К примеру, если "
bind_port": 21025, то вход на сервер происходит на стандартный порт, который не нужно явно указывать.
Проверить работоспособность StarryPy можно в чате сервера при входе на сервер. Там будет заданное приветствие и MOTD.
Известные проблемы
- При запущенном StarryPy увеличивается время первого входа на сервер. Это связано с тем, что StarryPy записывает логи и обрабатывает права игроков. На первый взгляд может показаться что игра зависла, но это не так. Просто дождитесь входа на сервер (около 30 секунд).
- При входе на сервер через порт, указанный в "upstream_port" StarryPy НЕ будет функционировать и все его возможности НЕ будут работать. Это означает, что если игрок зайдет на сервер таким путем, он может обойти запреты на взаимодействие с миром, баны, мьюты и прочие вещи. Данная проблема решается запретом на взаимодействие с портом указанным в "upstream_port" извне с помощью файрвола (например iptables).
Используемые материалы:
StarryPy - A plugin driven server wrapper written in Python.
CarrotsAreMediocre / StarryPy