Jump to content

MediaWiki:Gadget-maxPlayerChart.js

From Pack.png Beta 1.7.3 Wiki
Revision as of 11:30, 31 July 2025 by Dinkelspiel (talk | contribs)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/**
 * maxPlayerChart.js
 * Loaded for everyone, everywhere.
 * Version 2025-07-31
 * See MediaWiki:Gadgets-definition for registration.
 */
( function ( mw, $ ) {
    console.log("asd")
    document.addEventListener('DOMContentLoaded', function () {
        const script = document.createElement('script');
        script.src = 'https://cdn.jsdelivr.net/npm/chart.js';
        script.onload = () => {
            const ctx1 = document.getElementById("maxPlayerChart");
            console.log("a")
            
            if (!ctx1) return; 
    
            const init1 = async () => {
                const response = await fetch("https://goldenage.keii.dev/api/servers/1/statistics/max-player-count");
                const result = await response.json();
                const data = result["data"];
    
                new Chart(ctx1, {
                    type: "line",
                    data: {
                        labels: data.map((row) => new Date(row.Date).toDateString()),
                        datasets: [
                            {
                                label: "Max Player Count",
                                data: data.map((row) => row.MaxPlayerCount),
                                borderWidth: 1,
                            },
                        ],
                    },
                    options: {
                        scales: {
                            y: {
                                beginAtZero: true,
                            },
                        },
                    },
                });
            };
    
            init1();
        };
    
        document.head.appendChild(script);
    });
}( mw, jQuery ) );