Как удалить датапак с сервера

Подготовка и доступ к серверу

1. Вход в панель proxify.cloud

  1. Откройте браузер и перейдите на proxify.cloud.
  2. Авторизуйтесь под своими учетными данными.
  3. В списке услуг найдите выделенный сервер с Ubuntu, на котором развернут Minecraft-сервер.
  4. Нажмите на название сервера, чтобы открыть карточку управления.
  5. Убедитесь, что сервер включен (статус Running). Если нет — нажмите кнопку Start и дождитесь загрузки ОС (обычно 1–2 минуты).

2. Получение данных для SSH-подключения

В карточке сервера на proxify.cloud найдите блок Network или Access:

  • IPv4-адрес (например, 185.123.45.67).
  • SSH-порт (по умолчанию 22, но на proxify.cloud часто назначают случайный внешний порт, например 2022 — проверяйте поле SSH Port).
  • Логин: root (стандарт для выделенных серверов proxify.cloud).
  • Пароль или SSH-ключ: пароль указан в письме при создании сервера или во вкладке Settings → Password; ключ можно добавить в Settings → SSH Keys.

3. Подключение через терминал

Откройте терминал (Linux/macOS) или PowerShell / PuTTY (Windows) и подключитесь:

ssh -p 2022 root@185.123.45.67

Замените порт и IP на свои значения из панели proxify.cloud.

При первом подключении подтвердите отпечаток ключа (yes), введите пароль. Вы окажетесь в консоли Ubuntu.


Остановка Minecraft-сервера

4. Определение способа запуска сервера

На выделенных серверах proxify.cloud чаще всего используют systemd-юнит, Docker или screen/tmux. Выполните проверку:

systemctl list-units --type=service | grep -i minecraft
  • Если есть строка вроде minecraft-server.service — сервер управляется через systemd.
  • Если пусто — проверьте Docker:
    docker ps --filter "name=minecraft"
    
  • Если и там пусто — ищите screen-сессии:
    screen -ls
    

5. Корректная остановка

Вариант А: systemd (рекомендовано на proxify.cloud)

systemctl stop minecraft-server

Дождитесь завершения (5–15 секунд). Проверьте статус:

systemctl status minecraft-server

Должен быть inactive (dead).

Вариант Б: Docker

docker stop minecraft-server

Или, если используется docker-compose в папке /opt/minecraft:

cd /opt/minecraft && docker compose down

Вариант В: screen / ручной запуск

screen -S mc -X stuff "stop$(printf '\r')"
sleep 10
screen -S mc -X quit

Убедитесь, что процесс java больше не висит:

pgrep -f "minecraft_server\|paper\|purpur\|fabric\|forge"

Вывод должен быть пустым.


Локализация папки с датапаками

6. Стандартные пути установки

На выделенных серверах proxify.cloud чаще всего используют одну из структур:

Способ запуска Типичная корневая папка сервера
systemd (Unit файл) /opt/minecraft или /home/minecraft/server
Docker (bind mount) /opt/minecraft/data или /var/lib/docker/volumes/mc_data/_data
Ручной (screen) /root/minecraft или /home/ubuntu/minecraft

Проверьте юнит-файл, если используете systemd:

systemctl cat minecraft-server | grep -E "WorkingDirectory|ExecStart"

Пример вывода:

WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar paper.jar nogui

Значит, корень сервера — /opt/minecraft.

7. Путь к папке датапаков

Датапаки хранятся внутри каждой вселенной (world):

<КОРЕНЬ_СЕРВЕРА>/world/datapacks/
<КОРЕНЬ_СЕРВЕРА>/world_nether/datapacks/
<КОРЕНЬ_СЕРВЕРА>/world_the_end/datapacks/

Если вы используете плагин Multiverse-Core или меняли level-name в server.properties, имена папок могут отличаться. Посмотрите актуальное имя:

grep "^level-name=" /opt/minecraft/server.properties

Пример результата: level-name=survival_world → папка /opt/minecraft/survival_world/datapacks/.


Удаление датапака

8. Переход в рабочую директорию

cd /opt/minecraft/survival_world/datapacks

Замените путь на ваш реальный.

9. Просмотр установленных датапаков

ls -la

Пример вывода:

drwxr-xr-x 3 root root 4096 May 10 12:00 .
drwxr-xr-x 8 root root 4096 May 10 12:00 ..
drwxr-xr-x 5 root root 4096 May 10 12:00 vanilla_tweaks_v3.2
-rw-r--r--1 root root 1245 May 10 12:00 custom_recipes_v1.0.zip
drwxr-xr-x 4 root root 4096 May 10 12:00 anti_xray_pack

Датапаки могут быть распакованными папками или .zip-архивами. И то, и другое допустимо.

10. Точное определение имени удаляемого пака

Если вы знаете название (например, anti_xray_pack), используйте его. Если нет — откройте pack.mcmeta внутри папки/архива для подтверждения:

# Для папки
cat anti_xray_pack/pack.mcmeta

# Для zip
unzip -p custom_recipes_v1.0.zip pack.mcmeta

Ищите поле "description" — там читаемое имя.

11. Удаление файлов/папки

Внимание: действие необратимо. Рекомендую сначала переместить в резерв:

mkdir -p /root/datapack_backup/$(date +%F)
mv anti_xray_pack /root/datapack_backup/$(date +%F)/

Если уверены, что бэкап не нужен — удалите навсегда:

rm -rf anti_xray_pack
# или для zip
rm -f custom_recipes_v1.0.zip

12. Проверка результата

ls -la

Удаленный пак не должен отображаться.


Очистка кэша и данных мира (опционально)

13. Удаление ссылок в datapacks индексе мира

Minecraft кэширует список датапаков в файле world/datapacks/<pack_id>.dat (в новых версиях) или внутри level.dat. Проще всего — дать серверу пересоздать кэш при старте. Но если хотите почистить вручную:

cd /opt/minecraft/survival_world
rm -f datapacks/*.dat 2>/dev/null

Не трогайте level.dat и level.dat_old — это основной сохранение мира.

14. Если датапак добавлял кастомные рецепты/loot tables — сброс кэша advancements

Не обязательно, но полезно при конфликтах:

rm -rf /opt/minecraft/survival_world/advancements
rm -rf /opt/minecraft/survival_world/data/command_storage_*

Сервер восстановит нужное при следующем заходе игроков.


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

15. Запуск через systemd

systemctl start minecraft-server

Следите за логами в реальном времени:

journalctl -u minecraft-server -f

Дождитесь строки Done (X.XXs)! For help, type "help".

16. Запуск через Docker

cd /opt/minecraft && docker compose up -d
# или
docker start minecraft-server

Логи:

docker logs -f minecraft-server

17. Проверка в игре / консоли

Зайдите на сервер или выполните в консоли сервера (через screen -r mc или docker attach):

/datapack list

Вывод должен содержать только оставшиеся паки. Удаленного быть не должно.

В логах при старте ищите блок:

[Server thread/INFO]: Loaded 7 data packs: vanilla, file/vanilla_tweaks_v3.2, file/custom_recipes_v1.0, ...

Удаленный пак не должен фигурировать.


Работа через панель proxify.cloud (альтернатива SSH)

18. Использование VNC/Serial Console

Если SSH недоступен (фаервол, потеря ключа):

  1. В панели proxify.cloud откройте вкладку ConsoleVNC Console или Serial Console.
  2. Авторизуйтесь как root (пароль из панели).
  3. Выполняйте те же команды, что описаны выше.

19. Файловый менеджер (если установлен)

Некоторые образы proxify.cloud включают Filebrowser или Cockpit на порту 8080/9090.

  • Откройте http://<IP>:8080 в браузере.
  • Логин/пароль: root / пароль от сервера.
  • Перейдите в /opt/minecraft/survival_world/datapacks/, выделите пак → Delete.

Автоматизация (скрипт для повторного использования)

20. Готовый скрипт удаления

Создайте /usr/local/bin/remove_datapack.sh:

cat > /usr/local/bin/remove_datapack.sh << 'EOF'
#!/bin/bash
# Удаление датапака с бэкапом и перезапуском сервера
# Использование: remove_datapack.sh <world_folder> <datapack_name>

set -euo pipefail

WORLD_DIR="${1:-/opt/minecraft/survival_world}"
PACK_NAME="${2:-}"
BACKUP_DIR="/root/datapack_backup/$(date +%F_%H-%M-%S)"

if [[ -z "$PACK_NAME" ]]; then
    echo "Usage: $0 <world_dir> <datapack_name>"
    exit 1
fi

DATAPACK_DIR="${WORLD_DIR}/datapacks"
TARGET="${DATAPACK_DIR}/${PACK_NAME}"

if [[ ! -e "$TARGET" ]]; then
    echo "ERROR: Datapack '$PACK_NAME' not found in $DATAPACK_DIR"
    ls -1 "$DATAPACK_DIR"
    exit 1
fi

echo "Stopping Minecraft server..."
systemctl stop minecraft-server || docker stop minecraft-server 2>/dev/null || true
sleep