Установка и настройка дополнений (addons) на Bedrock сервере

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск

Установка и настройка дополнений (addons) на Bedrock сервере

1. Подготовка

  • Убедитесь, что Bedrock сервер установлен и находится в `/opt/bedrock`.
  • Имейте права доступа для редактирования файлов сервера.
  • Приготовьте `.mcpack` или `.mcaddon` файлы дополнений.
  • Рекомендуется использовать Ubuntu 24.04 LTS.

2. Что такое дополнения (Addons)

Типы дополнений

Bedrock поддерживает два типа дополнений:

1. Behavior Packs (BP) - поведенческие пакеты

  * Изменяют поведение игры
  * Добавляют механики, сущности, предметы

2. Resource Packs (RP) - ресурсные пакеты

  * Изменяют внешний вид
  * Текстуры, модели, звуки

3. Addons - комбинация BP и RP в одном файле

Форматы файлов

  • `.mcpack` - пакет ресурсов или поведения
  • `.mcaddon` - дополнение (оба пакета вместе)
  • `.zip` - архив с дополнением

3. Структура директорий для дополнений

Расположение пакетов

1. Behavior Packs находятся в:

cd /opt/bedrock
ls -la behavior_packs/

2. Resource Packs находятся в:

ls -la resource_packs/

3. Структура директорий:

/opt/bedrock/
├── behavior_packs/
│   └── [название_пакета]/
│       └── manifest.json
└── resource_packs/
    └── [название_пакета]/
        └── manifest.json

4. Установка дополнений

Метод 1: Ручная установка

1. Скачайте дополнение (`.mcpack`, `.mcaddon` или `.zip`)

2. Распакуйте в соответствующие директории:

cd /opt/bedrock

\# Для .mcpack или .mcaddon (это zip файлы)
unzip дополнение.mcaddon -d temp_addon

3. Определите тип пакета:

ls temp_addon/
\# Если есть manifest.json с "type": "data" - это BP
\# Если есть manifest.json с "type": "resources" - это RP

4. Переместите в нужную директорию:

\# Для Behavior Pack
mv temp_addon/* behavior_packs/название_пакета/

\# Для Resource Pack
mv temp_addon/* resource_packs/название_пакета/

\# Очистка
rm -rf temp_addon

Метод 2: Через скрипт

1. Создайте скрипт установки:

sudo nano /usr/local/bin/bedrock-addon-install.sh

2. Добавьте содержимое:

\#!/bin/bash

if [ -z "$1" ]; then
    echo "Usage: $0 <addon-file.mcpack|mcaddon|zip>"
    exit 1
fi

ADDON_FILE="$1"
SERVER_DIR="/opt/bedrock"
TEMP_DIR="/tmp/bedrock-addon-$$"

if [ ! -f "$ADDON_FILE" ]; then
    echo "File not found: $ADDON_FILE"
    exit 1
fi

\# Создание временной директории
mkdir -p "$TEMP_DIR"
cd "$TEMP_DIR"

\# Распаковка
if [[ "$ADDON_FILE" == *.zip ]] || [[ "$ADDON_FILE" == *.mcpack ]] || [[ "$ADDON_FILE" == *.mcaddon ]]; then
    unzip -q "$ADDON_FILE" -d .
else
    echo "Unsupported file format"
    exit 1
fi

\# Определение типа пакета
if [ -f "manifest.json" ]; then
    PACK_TYPE=$(grep -o '"type": "[^"]*"' manifest.json | cut -d'"' -f4)
    PACK_NAME=$(grep -o '"name": "[^"]*"' manifest.json | head -1 | cut -d'"' -f4 | tr ' ' '_')
    
    if [ "$PACK_TYPE" == "data" ]; then
        TARGET_DIR="$SERVER_DIR/behavior_packs/$PACK_NAME"
        echo "Installing Behavior Pack: $PACK_NAME"
    elif [ "$PACK_TYPE" == "resources" ]; then
        TARGET_DIR="$SERVER_DIR/resource_packs/$PACK_NAME"
        echo "Installing Resource Pack: $PACK_NAME"
    else
        echo "Unknown pack type: $PACK_TYPE"
        rm -rf "$TEMP_DIR"
        exit 1
    fi
    
    mkdir -p "$TARGET_DIR"
    cp -r . "$TARGET_DIR"
    echo "Addon installed to: $TARGET_DIR"
else
    \# Попытка найти вложенные пакеты
    for dir in */; do
        if [ -f "$dir/manifest.json" ]; then
            PACK_TYPE=$(grep -o '"type": "[^"]*"' "$dir/manifest.json" | cut -d'"' -f4)
            PACK_NAME=$(grep -o '"name": "[^"]*"' "$dir/manifest.json" | head -1 | cut -d'"' -f4 | tr ' ' '_')
            
            if [ "$PACK_TYPE" == "data" ]; then
                TARGET_DIR="$SERVER_DIR/behavior_packs/$PACK_NAME"
                echo "Installing Behavior Pack: $PACK_NAME"
            elif [ "$PACK_TYPE" == "resources" ]; then
                TARGET_DIR="$SERVER_DIR/resource_packs/$PACK_NAME"
                echo "Installing Resource Pack: $PACK_NAME"
            fi
            
            mkdir -p "$TARGET_DIR"
            cp -r "$dir"* "$TARGET_DIR"
            echo "Pack installed to: $TARGET_DIR"
        fi
    done
fi

\# Очистка
rm -rf "$TEMP_DIR"
echo "Installation completed!"

3. Сделайте исполняемым:

sudo chmod +x /usr/local/bin/bedrock-addon-install.sh

4. Использование:

sudo /usr/local/bin/bedrock-addon-install.sh /path/to/addon.mcaddon

5. Активация дополнений на сервере

Через world_behavior_packs.json

1. Найдите файл для мира:

cd /opt/bedrock
find . -name "world_behavior_packs.json"

2. Отредактируйте файл:

nano worlds/ваш_мир/world_behavior_packs.json

3. Добавьте пакет:

[
  {
    "pack_id": "uuid-пакета",
    "version": [1, 0, 0]
  }
]

4. UUID пакета находится в `manifest.json`:

cat behavior_packs/название_пакета/manifest.json | grep "uuid"

Через world_resource_packs.json

1. Отредактируйте файл:

nano worlds/ваш_мир/world_resource_packs.json

2. Добавьте пакет:

[
  {
    "pack_id": "uuid-пакета",
    "version": [1, 0, 0]
  }
]

Примеры конфигураций

1. Активация одного Behavior Pack:

\# worlds/ваш_мир/world_behavior_packs.json
[
  {
    "pack_id": "12345678-1234-1234-1234-123456789abc",
    "version": [1, 0, 0]
  }
]

2. Активация нескольких пакетов:

\# worlds/ваш_мир/world_behavior_packs.json
[
  {
    "pack_id": "12345678-1234-1234-1234-123456789abc",
    "version": [1, 0, 0]
  },
  {
    "pack_id": "87654321-4321-4321-4321-cba987654321",
    "version": [1, 0, 0]
  }
]

3. Комбинация BP и RP:

\# worlds/ваш_мир/world_behavior_packs.json
[
  {
    "pack_id": "bp-uuid-1234-5678",
    "version": [1, 0, 0]
  }
]

\# worlds/ваш_мир/world_resource_packs.json
[
  {
    "pack_id": "rp-uuid-5678-9012",
    "version": [1, 0, 0]
  }
]

6. Проверка установки =

Проверка структуры

1. Проверьте наличие пакетов:

ls -la /opt/bedrock/behavior_packs/
ls -la /opt/bedrock/resource_packs/

2. Проверьте manifest.json:

cat /opt/bedrock/behavior_packs/название_пакета/manifest.json

3. Проверьте конфигурацию мира:

cat /opt/bedrock/worlds/ваш_мир/world_behavior_packs.json

Проверка через консоль

1. Подключитесь к консоли:

screen -r minecraft-bedrock

2. Проверьте загруженные пакеты через логи:

tail -f /opt/bedrock/logs/*.log | grep -i "pack"

7. Удаление дополнений =

Ручное удаление

1. Удалите из world_behavior_packs.json или world_resource_packs.json:

nano /opt/bedrock/worlds/ваш_мир/world_behavior_packs.json
\# Удалите запись о пакете

2. Удалите директорию пакета (опционально):

rm -rf /opt/bedrock/behavior_packs/название_пакета

Скрипт удаления

1. Создайте скрипт:

sudo nano /usr/local/bin/bedrock-addon-remove.sh

2. Добавьте содержимое:

\#!/bin/bash

if [ -z "$1" ]; then
    echo "Usage: $0 <pack-name> [behavior|resource]"
    exit 1
fi

PACK_NAME="$1"
PACK_TYPE="$2"
SERVER_DIR="/opt/bedrock"

if [ -z "$PACK_TYPE" ]; then
    \# Попытка определить автоматически
    if [ -d "$SERVER_DIR/behavior_packs/$PACK_NAME" ]; then
        PACK_TYPE="behavior"
    elif [ -d "$SERVER_DIR/resource_packs/$PACK_NAME" ]; then
        PACK_TYPE="resource"
    else
        echo "Pack not found: $PACK_NAME"
        exit 1
    fi
fi

if [ "$PACK_TYPE" == "behavior" ]; then
    PACK_DIR="$SERVER_DIR/behavior_packs/$PACK_NAME"
    WORLD_CONFIG="$SERVER_DIR/worlds/*/world_behavior_packs.json"
elif [ "$PACK_TYPE" == "resource" ]; then
    PACK_DIR="$SERVER_DIR/resource_packs/$PACK_NAME"
    WORLD_CONFIG="$SERVER_DIR/worlds/*/world_resource_packs.json"
else
    echo "Invalid pack type: $PACK_TYPE"
    exit 1
fi

if [ ! -d "$PACK_DIR" ]; then
    echo "Pack directory not found: $PACK_DIR"
    exit 1
fi

\# Удаление из конфигурации миров
for config in $WORLD_CONFIG; do
    if [ -f "$config" ]; then
        echo "Removing from world config: $config"
        \# Можно использовать jq для более точного удаления
    fi
done

\# Удаление директории
echo "Removing pack directory: $PACK_DIR"
rm -rf "$PACK_DIR"
echo "Pack removed successfully!"

3. Сделайте исполняемым:

sudo chmod +x /usr/local/bin/bedrock-addon-remove.sh

4. Использование:

sudo /usr/local/bin/bedrock-addon-remove.sh название_пакета behavior

8. Обновление дополнений =

Процесс обновления

1. Сделайте резервную копию:

cp -r /opt/bedrock/behavior_packs/название_пакета /backup/

2. Удалите старую версию:

rm -rf /opt/bedrock/behavior_packs/название_пакета

3. Установите новую версию:

sudo /usr/local/bin/bedrock-addon-install.sh новая_версия.mcaddon

4. Обновите версию в world_behavior_packs.json:

nano /opt/bedrock/worlds/ваш_мир/world_behavior_packs.json
\# Измените version на новую версию

5. Перезапустите сервер:

sudo systemctl restart minecraft-bedrock

9. Популярные дополнения =

Примеры дополнений

1. Моды на мобов

  * Новые сущности
  * Изменения поведения существующих мобов

2. Моды на предметы

  * Новые инструменты
  * Новые блоки и ресурсы

3. Моды на механики

  * Новые игровые механики
  * Изменения существующих систем

Где найти дополнения

  • Официальный маркетплейс Minecraft
  • Сторонние сайты с дополнениями
  • GitHub репозитории

10. Устранение неполадок =

Дополнение не загружается

1. Проверьте формат manifest.json:

python3 -m json.tool /opt/bedrock/behavior_packs/название_пакета/manifest.json

2. Проверьте UUID в конфигурации мира:

cat /opt/bedrock/worlds/ваш_мир/world_behavior_packs.json

3. Проверьте логи:

tail -f /opt/bedrock/logs/*.log | grep -i error

Конфликты дополнений

1. Отключите все дополнения 2. Включайте по одному 3. Определите конфликтующее дополнение

Проблемы с версиями

1. Убедитесь, что версия дополнения совместима с версией сервера 2. Проверьте версию в manifest.json:

cat /opt/bedrock/behavior_packs/название_пакета/manifest.json | grep "minecraft"

Заключение

Установка и настройка дополнений (addons) на Bedrock сервере позволяет значительно расширить возможности сервера. Правильная установка и активация дополнений обеспечит стабильную работу сервера с новым контентом.

Для размещения ваших Bedrock серверов с дополнениями на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с установкой и настройкой дополнений на Bedrock серверах!