Update clear-ground-items-hourly.sh script to correct item entity type from 'minecraft:item' to 'item' for improved clarity and consistency in RCON commands.

This commit is contained in:
Leonid Pershin
2026-05-09 22:25:34 +03:00
parent 26757e96e2
commit 5de402209b
2 changed files with 15 additions and 8 deletions
+10 -7
View File
@@ -1,20 +1,23 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Почасовая очистка выброшенных на земле предметов (сущность minecraft:item) через RCON # Почасовая очистка выброшенных на земле предметов (сущность item) через RCON
# с тем же графиком предупреждений, что и restart-scheduled.sh (10 / 5 / 1 мин, 30 с, 5…1). # с тем же графиком предупреждений, что и restart-scheduled.sh (10 / 5 / 1 мин, 30 с, 5…1).
# #
# Требования: RCON как в restart-scheduled.sh (mcrcon или rcon), server.properties, # Требования: RCON как в restart-scheduled.sh (mcrcon или rcon), server.properties,
# сервер в systemd active (по умолчанию unit minecraft). # сервер в systemd active (по умолчанию unit minecraft).
# #
# Расписание — каждый час, например в начале часа: # Расписание (cron достаточно, отдельная блокировка между скриптами не обязательна):
# 0 * * * * /usr/bin/bash /opt/PupaMLupa/Server/clear-ground-items-hourly.sh >>/var/log/mc-clear-items.log 2>&1 # Перезапуск обычно: 0 */6 * * * → в :00 часов 0, 6, 12, 18.
# Чтобы не пересекаться по времени с перезапуском в 00:00 / 06:00 / 12:00 / 18:00, можно сместить: # Очистку не ставьте в те же :00 — иначе ~10 минут предупреждений пересекутся.
# 30 * * * * .../clear-ground-items-hourly.sh ... # Рекомендуется каждый час в половине часа (после типичного перезапуска уже всё тихо):
# 30 * * * * /usr/bin/bash /opt/PupaMLupa/Server/clear-ground-items-hourly.sh >>/var/log/mc-clear-items.log 2>&1
# Другой вариант — одна фиксированная минута, не кратная 6-часовому перезапуску, например:
# 17 * * * * … (каждый час в :17)
# #
# Переменные окружения (необязательно): # Переменные окружения (необязательно):
# MINECRAFT_SERVICE — unit systemd (по умолчанию: minecraft) # MINECRAFT_SERVICE — unit systemd (по умолчанию: minecraft)
# RCON_HOST, RCON_PORT, RCON_PASSWORD, RCON_TIMEOUT — как в restart-scheduled.sh # RCON_HOST, RCON_PORT, RCON_PASSWORD, RCON_TIMEOUT — как в restart-scheduled.sh
# CLEAR_ITEMS_RCON_CMD — команда консоли без ведущего / (по умолчанию: # CLEAR_ITEMS_RCON_CMD — команда консоли без ведущего / (по умолчанию:
# kill @e[type=minecraft:item]) # kill @e[type=item] — то же, что /kill в игре)
set -euo pipefail set -euo pipefail
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH:-}" export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${PATH:-}"
@@ -26,7 +29,7 @@ MINECRAFT_SERVICE="${MINECRAFT_SERVICE:-minecraft}"
RCON_HOST="${RCON_HOST:-127.0.0.1}" RCON_HOST="${RCON_HOST:-127.0.0.1}"
RCON_TIMEOUT="${RCON_TIMEOUT:-60s}" RCON_TIMEOUT="${RCON_TIMEOUT:-60s}"
RCON_CLIENT="" RCON_CLIENT=""
CLEAR_ITEMS_RCON_CMD="${CLEAR_ITEMS_RCON_CMD:-kill @e[type=minecraft:item]}" CLEAR_ITEMS_RCON_CMD="${CLEAR_ITEMS_RCON_CMD:-kill @e[type=item]}"
LOCK_FILE="${SCRIPT_DIR}/.clear-ground-items-hourly.lock" LOCK_FILE="${SCRIPT_DIR}/.clear-ground-items-hourly.lock"
PROPS="${SCRIPT_DIR}/server.properties" PROPS="${SCRIPT_DIR}/server.properties"
+5 -1
View File
@@ -22,7 +22,11 @@
# #
# Расписание (каждые 6 часов: 00:00, 06:00, 12:00, 18:00): # Расписание (каждые 6 часов: 00:00, 06:00, 12:00, 18:00):
# crontab -e # crontab -e
# 0 */6 * * * /opt/PupaMLupa/Server/restart-scheduled.sh >>/var/log/mc-restart.log 2>&1 # 0 */6 * * * /usr/bin/bash /opt/PupaMLupa/Server/restart-scheduled.sh >>/var/log/mc-restart.log 2>&1
#
# Вместе с clear-ground-items-hourly.sh: перезапуск в :00 указанных часов, очистку
# ставьте в другое время суток по часам — например в :30 каждого часа (см. тот скрипт),
# чтобы окна предупреждений (~10 мин + остановка/старт) не шли одновременно с очисткой.
# #
# Переменные окружения (необязательно): # Переменные окружения (необязательно):
# MINECRAFT_SERVICE — имя unit (по умолчанию: minecraft) # MINECRAFT_SERVICE — имя unit (по умолчанию: minecraft)