- Update **ReadMe.md** with: - Spark console command syntax correction - New **Adventure Platform Mod** and **Better Fabric Console** entries - Resolved TODO items: server template setup and datapack sync - Add **bash/init-local-server.sh** to automate server template deployment - Enhance **bash/export-serverpack.sh** with datapack synchronization via `rsync`
43 lines
1.6 KiB
Bash
Executable File
43 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
pakku() { pakku-mc "$@"; }
|
|
|
|
# Определяем директории
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
|
|
REPO_ROOT="${SCRIPT_DIR}/.."
|
|
SOURCE_ZIP="${REPO_ROOT}/build/serverpack/*.zip"
|
|
TARGET_DIR="/home/dimti/Seafile/minecraft/installers/m2612"
|
|
|
|
cd "${REPO_ROOT}" || exit 1
|
|
|
|
# Side CLIENT-модов, нужных на сервере: pakku cfg prj -s BOTH lambdynamiclights xaeros-world-map
|
|
# (один раз; пишет override в pakku.json, дальше export подхватывает сам)
|
|
pakku export
|
|
|
|
# Проверяем, существует ли архив
|
|
if ls ${SOURCE_ZIP} 1> /dev/null 2>&1; then
|
|
echo "Нашел архив серверной сборки: ${SOURCE_ZIP}"
|
|
else
|
|
echo "Ошибка: Архив серверной сборки не найден в ${SOURCE_ZIP}"
|
|
exit 1
|
|
fi
|
|
|
|
# Очищаем целевые папки mods и config
|
|
echo "Очистка папок mods и config в ${TARGET_DIR}..."
|
|
rm -rf "${TARGET_DIR}/mods"
|
|
rm -rf "${TARGET_DIR}/config"
|
|
|
|
# Распаковываем архив в целевую директорию
|
|
echo "Распаковка архива в ${TARGET_DIR}..."
|
|
unzip -o ${SOURCE_ZIP} -d "${TARGET_DIR}"
|
|
|
|
# Синхронизируем датапаки в мир локального сервера
|
|
DATAPACKS_SRC="${REPO_ROOT}/datapacks/"
|
|
DATAPACKS_DST="${TARGET_DIR}/world/datapacks/"
|
|
echo "Синхронизация датапаков: ${DATAPACKS_SRC} → ${DATAPACKS_DST}"
|
|
mkdir -p "${DATAPACKS_DST}"
|
|
rsync -a "${DATAPACKS_SRC}" "${DATAPACKS_DST}"
|
|
|
|
echo "Синхронизация завершена успешно."
|