MediaWiki:Common.js: Difference between revisions

From BetaMC Wiki
Jump to navigation Jump to search
try data.player_count
Actually works, lets go!
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* Any JavaScript here will be loaded for all users on every page load. */
/* Any JavaScript here will be loaded for all users on every page load. */


function playerCountCall(data) {
// needs to be loaded from separate JS files, because the shitty outdated JS-parser in mediawiki refuses any modern syntax lol
    var el = document.getElementById('betamc-player-count');
var args = { action: 'raw', ctype: 'text/javascript' };
    if (!el) return;
function script(name) {
 
     return function() {
     if (data && typeof data.player_count === 'number') {
         return mw.loader.getScript(
         el.textContent = data.player_count;
            mw.util.getUrl('MediaWiki:' + name + '.js', {
    } else {
                action: 'raw',
        el.textContent = 'Error';
                ctype: 'text/javascript'
    }
            })
}
         );
 
function loadPlayerCount() {
    var script = document.createElement('script');
    script.src = 'https://betamc.org:8080/api/players?callback=playerCountCall';
    script.onerror = function () {
         var el = document.getElementById('betamc-player-count');
        if (el) el.textContent = 'Error';
     };
     };
    document.body.appendChild(script);
}
}


document.addEventListener('DOMContentLoaded', loadPlayerCount);
Promise.resolve()
    .then(script('StatsClient'))
    .then(script('ClamComponent'))
;

Latest revision as of 11:28, 8 October 2026

/* Any JavaScript here will be loaded for all users on every page load. */

// needs to be loaded from separate JS files, because the shitty outdated JS-parser in mediawiki refuses any modern syntax lol
var args = { action: 'raw', ctype: 'text/javascript' };
function script(name) {
    return function() {
        return mw.loader.getScript(
            mw.util.getUrl('MediaWiki:' + name + '.js', {
                action: 'raw',
                ctype: 'text/javascript'
            })
        );
    };
}

Promise.resolve()
    .then(script('StatsClient'))
    .then(script('ClamComponent'))
;