Шаблон:Онлайн: відмінності між версіями

Матеріал з Бастіон-16
Перейти до навігації Перейти до пошуку
Немає опису редагування
Мітка: Скасовано
Немає опису редагування
Мітки: Ручний відкіт Скасовано
Рядок 1: Рядок 1:
<html>
<!DOCTYPE html>
<html lang="uk">
<head>
<head>
     <meta charset="UTF-8">
     <meta charset="UTF-8">
Рядок 19: Рядок 20:
             list-style: none;
             list-style: none;
             padding: 0;
             padding: 0;
        }
        #players li {
            display: flex;
            align-items: center;
            justify-content: center;
            margin: 5px 0;
        }
        #players img {
            width: 20px;
            height: 20px;
            margin-right: 10px;
            border-radius: 4px;
        }
        #server-icon {
            width: 64px;
            height: 64px;
            display: block;
            margin: 0 auto 10px;
         }
         }
     </style>
     </style>
Рядок 42: Рядок 25:
<body>
<body>
     <div id="widget">
     <div id="widget">
        <img id="server-icon" src="" alt="Іконка сервера" style="display: none;">
        <h3 id="motd">Завантаження MOTD...</h3>
         <h3>Онлайн гравці:</h3>
         <h3>Онлайн гравці:</h3>
         <p id="playerCount">Завантаження...</p>
         <p id="playerCount">Завантаження...</p>
Рядок 54: Рядок 35:
         async function fetchServerStatus() {
         async function fetchServerStatus() {
             try {
             try {
                console.log("Виконую запит до mcstatus.io...");
                 let response = await fetch(`https://api.mcstatus.io/v2/status/java/${SERVER_IP}`);
                 let response = await fetch(`https://api.mcstatus.io/v2/status/java/${SERVER_IP}`);
                if (!response.ok) throw new Error(`HTTP помилка! Статус: ${response.status}`);
                 let data = await response.json();
                 let data = await response.json();
                console.log("Отримані дані:", data);
               
                let motdElement = document.getElementById("motd");
                if (data.motd && Array.isArray(data.motd.html)) {
                    motdElement.innerHTML = data.motd.html.join(" ");
                } else if (data.motd && typeof data.motd.html === "string") {
                    motdElement.innerHTML = data.motd.html;
                } else {
                    motdElement.innerHTML = "Сервер без MOTD";
                }
               
                let playerCountElement = document.getElementById("playerCount");
                playerCountElement.innerText = `Гравців онлайн: ${data.players ? data.players.online : 0}`;
                  
                  
                 let playersElement = document.getElementById("players");
                document.getElementById("playerCount").innerText = `Гравців онлайн: ${data.players.online}/${data.players.max}`;
                 playersElement.innerHTML = "";
                 let playersList = document.getElementById("players");
                 playersList.innerHTML = "";
                  
                  
                 if (data.players && data.players.online > 0 && data.players.list && data.players.list.length > 0) {
                 if (data.players.list) {
                     data.players.list.forEach(player => {
                     data.players.list.forEach(player => {
                         let playerName = player.name_raw || player.name;
                         let li = document.createElement("li");
                        let playerSkinURL = `https://mineskin.eu/helm/${playerName}/20.png`;
                         li.textContent = player.name;
                       
                         playersList.appendChild(li);
                        let listItem = document.createElement("li");
                         let img = document.createElement("img");
                        let span = document.createElement("span");
                       
                        img.src = playerSkinURL;
                        img.alt = playerName;
                        span.textContent = playerName;
                       
                        listItem.appendChild(img);
                         listItem.appendChild(span);
                        playersElement.appendChild(listItem);
                     });
                     });
                } else {
                    playersElement.innerHTML = "<li>Немає гравців онлайн</li>";
                }
               
                let serverIconElement = document.getElementById("server-icon");
                if (data.icon) {
                    serverIconElement.src = data.icon;
                    serverIconElement.style.display = "block";
                } else {
                    serverIconElement.style.display = "none";
                 }
                 }
             } catch (error) {
             } catch (error) {
                console.error("Помилка під час отримання статусу сервера:", error);
                document.getElementById("motd").innerText = "Не вдалося завантажити MOTD";
                 document.getElementById("playerCount").innerText = "Не вдалося завантажити дані";
                 document.getElementById("playerCount").innerText = "Не вдалося завантажити дані";
                document.getElementById("players").innerHTML = "<li>Помилка завантаження</li>";
             }
             }
         }
         }

Версія за 12:35, 11 січня 2025

<!DOCTYPE html> MC Онлайн Гравці

Онлайн гравці:

Завантаження...