#!/bin/sh if [ -z "$MATRIX_PROVIDER" ] || [ -z "$MATRIX_ACCESS_TOKEN" ] || [ -z "$MATRIX_ROOM_ID" ] || [ -z "$SERVER_ADDRESS" ] then echo 'env vars $MATRIX_PROVIDER/$MATRIX_ACCESS_TOKEN/$MATRIX_ROOM_ID/$SERVER_ADDRESS not set' exit -1 fi provider="$MATRIX_PROVIDER" token="$MATRIX_ACCESS_TOKEN" room="$MATRIX_ROOM_ID" server="$SERVER_ADDRESS" status=false while true do update="$(curl -s https://api.mcstatus.io/v2/status/java/$server | jq -r '.players | "Online: \(.online) (\(.list | map(.name_clean) | sort | join(", ")))"')" if [ "$update" != "$status" ] then status="$update" curl -X PUT -d "{\"topic\": \"$update\"}" \ "$provider/_matrix/client/r0/rooms/$room/state/m.room.topic?access_token=$token" echo "" fi sleep 300 done