diff --git a/glance-system/glance-kisfenyo.yaml b/glance-system/glance-kisfenyo.yaml index 8d9041f..d655cc4 100644 --- a/glance-system/glance-kisfenyo.yaml +++ b/glance-system/glance-kisfenyo.yaml @@ -737,6 +737,111 @@ data: url: https://seerr.dooplex.hu icon: https://web.dooplex.hu/static/white-icons/seerr.png + - type: custom-api + title: Crafty - Minecraft Server + cache: 5s + options: + base-url: ${CRAFTY_URL} + api-key: ${CRAFTY_API_TOKEN} + server-id: ${CRAFTY_SERVER_ID} + display-MOTD: true + allow-insecure: true + template: | + {{/* Required config options */}} + {{ $baseURL := .Options.StringOr "base-url" "" }} + {{ $apiKey := .Options.StringOr "api-key" "" }} + {{ $serverID := .Options.StringOr "server-id" "" }} + + {{/* Optional config options */}} + {{ $displayMOTD := .Options.BoolOr "display-MOTD" true }} + + {{ $serverStats := newRequest (print $baseURL "/api/v2/servers/" $serverID "/stats") + | withHeader "Authorization" (print "Bearer " $apiKey) + | withHeader "Accept" "application/json" + | getResponse }} + + {{ $is_running := $serverStats.JSON.Bool "data.running" }} + {{ $online_players := $serverStats.JSON.Int "data.online" | formatNumber }} + {{ $max_players := $serverStats.JSON.Int "data.max" | formatNumber }} + {{ $name := $serverStats.JSON.String "data.world_name" }} + {{ $size := $serverStats.JSON.String "data.world_size" }} + {{ $version := $serverStats.JSON.String "data.version" }} + {{ $icon := $serverStats.JSON.String "data.icon" }} + {{ $server_ip := $serverStats.JSON.String "data.server_id.server_ip" }} + {{ $server_port := $serverStats.JSON.String "data.server_id.server_port" }} + {{ $motd := $serverStats.JSON.String "data.desc" }} + + {{ $server_addr := "" }} + {{ if and ($is_running) (eq $server_ip "127.0.0.1") }} + {{ $server_addr = printf "%s:%s" (replaceMatches "https?://" "" $baseURL) $server_port }} + {{ else if $is_running }} + {{ $server_addr = printf "%s:%s" $server_ip $server_port }} + {{ end }} + + {{ $starting := false }} + {{ if and ($is_running) (eq $max_players "0") (eq $version "False") }} + {{ $starting = true }} + {{ end }} + + + {{ $updating := $serverStats.JSON.Bool "data.updating" }} + {{ $importing := $serverStats.JSON.Bool "data.importing" }} + {{ $crashed := $serverStats.JSON.Bool "data.crashed" }} + +