Как включить командные блоки

Введение

По умолчанию в Minecraft командные блоки отключены из соображений безопасности. На выделенном сервере с Ubuntu под управлением панели proxify.cloud (Proxmox) их активация требует редактирования конфигурационного файла server.properties и перезагрузки игрового процесса. Ниже приведена полная пошаговая инструкция для администраторов, имеющих доступ к консоли Proxmox или SSH к контейнеру/ВМ с игрой.


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

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

  1. Откройте браузер и перейдите по адресу вашей панели управления (обычно https://panel.proxify.cloud или кастомный домен, выданный хостером).
  2. Введите логин и пароль от аккаунта.
  3. В списке серверов выберите нужный Node (узел) или контейнер (CT/VM), где развернут Minecraft-сервер.

1.2. Способы доступа к файловой системе

Есть два основных пути: через Web-консоль Proxmox (noVNC/xtermjs) или через SSH. SSH предпочтительнее для удобства копирования команд.

Вариант А: SSH (рекомендуется)

ssh root@<IP-адрес_вашего_сервера>
# Если контейнер не привилегированный или использует отдельного пользователя:
ssh minecraft@<IP-адрес_вашего_сервера>

IP-адрес виден в панели proxify.cloud на вкладке «Сеть» (Network) выбранного контейнера/ВМ.

Вариант Б: Консоль Proxmox (Web-терминал)

  1. В панели proxify.cloud выберите контейнер (CT) или виртуальную машину (VM).
  2. Нажмите кнопку Console (Консоль) в левом меню.
  3. Авторизуйтесь под root или пользователем сервера.

2. Остановка игрового сервера

Критически важно: Никогда не редактируйте server.properties, пока сервер запущен. Изменения будут перезаписаны при сохранении мира или остановке.

2.1. Если используется systemd (стандарт для Ubuntu на выделенных серверах)

Проверьте точное имя сервиса:

systemctl list-units --type=service | grep -i minecraft

Типичные имена: minecraft.service, mc-server.service, paper.service.

Остановите сервис:

systemctl stop minecraft.service

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

systemctl status minecraft.service

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

2.2. Если сервер запущен в Screen/Tmux (ручной запуск)

  1. Зайдите в сессию:
    screen -r minecraft
    # или
    tmux attach -t minecraft
    
  2. В консоли сервера введите команду мягкой остановки:
    stop
    
  3. Дождитесь сообщения Server stopped и выхода в оболочку.

2.3. Если используется Docker (редко на чистом Ubuntu + Proxmox, но возможно)

docker stop <container_name_or_id>

3. Локация файла конфигурации

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

Способ установки Типичный путь к server.properties
Systemd сервис (Paper/Spigot/Purpur) /opt/minecraft/server.properties
Скрипт установки (например, Lee's script) /home/minecraft/server/server.properties
Docker (volume) /var/lib/docker/volumes/mc_data/_data/server.properties
Ручная установка в домашней папке /home/minecraft/server.properties

Универсальный поиск, если путь неизвестен:

find / -name "server.properties" -type f 2>/dev/null | grep -v ".git\|backup\|old"

Результат вернет абсолютный путь. Запомните его. Допустим, это /opt/minecraft/server.properties.


4. Редактирование server.properties

4.1. Создание резервной копии (обязательно)

cp /opt/minecraft/server.properties /opt/minecraft/server.properties.backup.$(date +%F_%H-%M-%S)

4.2. Редактирование через sed (быстро, для автоматизации)

Выполните команду, которая найдет строку enable-command-block и заменит значение на true:

sed -i 's/^enable-command-block=.*/enable-command-block=true/' /opt/minecraft/server.properties

Флаг -i редактирует файл на месте. Регулярное выражение ^enable-command-block=.* ищет строку, начинающуюся с этого ключа, и заменяет всё значение.

4.3. Редактирование через nano (визуально, для проверки контекста)

nano /opt/minecraft/server.properties
  1. Нажмите Ctrl+W, введите enable-command-block, нажмите Enter.
  2. Курсор перепрыгнет на строку:
    enable-command-block=false
    
  3. Измените false на true:
    enable-command-block=true
    
  4. Нажмите Ctrl+O (Write Out), Enter (подтверждение имени файла).
  5. Нажмите Ctrl+X (Exit).

4.4. Проверка применения изменений

grep "enable-command-block" /opt/minecraft/server.properties

Ожидаемый вывод:

enable-command-block=true

5. Дополнительные рекомендуемые настройки (Best Practices)

Пока вы в конфиге, рекомендую проверить/выставить связанные параметры для комфортной работы с командными блоками:

# 1. Разрешить команды в чате (для получения блоков через /give)
sed -i 's/^enable-command-block=.*/enable-command-block=true/; s/^enable-rcon=.*/enable-rcon=true/; s/^rcon.password=.*/rcon.password=YourStrongPasswordHere/; s/^broadcast-console-to-ops=.*/broadcast-console-to-ops=true/; s/^log-admin-commands=.*/log-admin-commands=true/' /opt/minecraft/server.properties

Разбор параметров выше:

  • enable-rcon=true + rcon.password — доступ к консоли удаленно (например, через RCON-клиенты или плагины типа CoreProtect).
  • broadcast-console-to-ops=true — операторы видят вывод команд блоков в чате.
  • log-admin-commands=true — логирование команд админов/командных блоков в logs/latest.log.

Важно: После sed команды выше обязательно проверьте файл вручную (cat /opt/minecraft/server.properties), так как sed может не сработать, если строки закомментированы (#) или имеют другой формат.


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

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

systemctl start minecraft.service

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

journalctl -u minecraft.service -f
# Или, если логи пишутся в файл:
tail -f /opt/minecraft/logs/latest.log

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

6.2. Запуск в Screen/Tmux

cd /opt/minecraft
screen -S minecraft -d -m java -Xms4G -Xmx4G -jar paper-1.20.4.jar nogui
# Зайдите в консоль для контроля:
screen -r minecraft

7. Игровая верификация (Финальный тест)

  1. Зайдите на сервер под учетной записью с правами оператора (OP). Если вы не OP — выдайте права через консоль сервера:
    op ВашНик
    
  2. В игровом чате введите команду получения командного блока:
    /give @p command_block
    
  3. Результат: В инвентаре появится предмет «Командный блок» (фиолетовый блок с шестеренкой).
  4. Установите его на землю. ПКМ по блоку — откроется интерфейс ввода команды.
  5. Введите тестовую команду: say Command blocks are enabled! и нажмите «Готово».
  6. Активируйте блок красным камнем (кнопка, левер, редстоун-блок).
  7. Успех: В чате появится сообщение [@] Command blocks are enabled!.

8. Настройка прав доступа (Permissions) — для серверов с плагинами (Paper/Spigot/Purpur)

Если на сервере стоит LuckPerms, PermissionsEx или аналоги, сама настройка enable-command-block=true разрешает размещение и использование блоков только операторам (OP). Обычные игроки не смогут их ставить/ломать/редактировать.

8.1. LuckPerms (рекомендуемый стандарт)

Выдайте права группе admin или moderator:

# В консоли сервера или через RCON:
lp group admin permission set minecraft.command.commandblock true
lp group admin permission set minecraft.command.give true
# Для редактирования блоков в креативе/спектре:
lp group admin permission set minecraft.command.setblock true

Игроки без OP, но с этими пермишенами, смогут использовать /give @p command_block и редактировать блоки.

8.2. Запрет для обычных игроков (Grief Prevention)

По умолчанию плагины защиты (GriefPrevention, WorldGuard) блокируют установку командных блоков не-опами. Дополнительных действий не требуется — это безопасность по умолчанию.


Возможные проблемы и решения

1. Изменения сбрасываются после перезагрузки

Причина: Сервер не был остановлен перед редактированием, или используется панель управления (Pterodactyl, AMP, PufferPanel), которая перезаписывает конфиг из своих шаблонов. Решение:

  • Всегда делайте systemctl stop minecraft перед правкой.
  • Если стоит игровая панель (не Proxmox, а внутри ОС) — меняйте настройку в веб-интерфейсе панели (вкладка «Startup» / «Settings» / «File Manager»), а не через SSH. Proxmox — это гипервизор, он не управляет server.properties напрямую.

2. Команда sed не нашла строку / файл пуст

Причина: Путь к файлу неверен, или файл называется иначе (например, server.properties.template), или кодировка/переводы строки (Windows CRLF). Решение:

# Проверьте наличие строки без учета регистра и пробелов
grep -i "enable.command.block" /opt/minecraft/server.properties
# Проверьте конец строк
cat -A /opt/minecraft/server.properties | head -20
# Если ^M в конце — конвертируйте