From 41af486c3523180889655803517a63dbab22b5e5 Mon Sep 17 00:00:00 2001 From: Filip Wandzio Date: Sun, 25 Jan 2026 00:50:42 +0100 Subject: Implement basic paper server configuration --- mc-cmd.sh | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 mc-cmd.sh (limited to 'mc-cmd.sh') diff --git a/mc-cmd.sh b/mc-cmd.sh new file mode 100644 index 0000000..e3c9d6b --- /dev/null +++ b/mc-cmd.sh @@ -0,0 +1,35 @@ +#!/bin/sh +set -e + +ENV_FILE=".env" + +[ -f "$ENV_FILE" ] || { echo "Error: $ENV_FILE not found."; exit 1; } + +while IFS='=' read -r key value; do + case "$key" in + ''|\#*) continue ;; + esac + value=$(echo "$value" | sed 's/^"//;s/"$//;s/^'\''//;s/'\''$//') + export "$key=$value" +done < "$ENV_FILE" + +[ -z "$RCON_PORT" ] && echo "Error: RCON_PORT not set." && exit 1 +[ -z "$RCON_PASSWORD" ] && echo "Error: RCON_PASSWORD not set." && exit 1 +[ -z "$SERVER_NAME" ] && echo "Error: SERVER_NAME not set." && exit 1 + +COMMAND="$*" + +[ -z "$COMMAND" ] && echo "Error: no command provided." && exit 1 +[ "$(printf '%s' "$COMMAND" | wc -c)" -gt 256 ] && echo "Error: command too long." && exit 1 + +LOGFILE="./commands.log" +touch "$LOGFILE" + +docker exec -i "${SERVER_NAME}_minecraft" rcon-cli \ + --host localhost \ + --port "${RCON_PORT}" \ + --password "${RCON_PASSWORD}" \ + $COMMAND \ + && echo "$(date '+%Y-%m-%d %H:%M:%S') | $COMMAND" >> "$LOGFILE" \ + && echo "Command sent: $COMMAND" \ + || { echo "Error: failed to send command to server."; exit 1; } -- cgit v1.2.3