$(document).ready ( function() { var $serverPopContainer = $('#serverPopContainer'); var $serverPopContainerPage = $('#serverPopContainerPage'); var $serverPopContainerList = $('#serverPopContainerList'); var discordServerIP = '45.76.239.95:28000'; //var discordServerIP = '185.66.108.39:28000'; function getServerData(ip) { $.getJSON('https://www.tribesnext.com/list.json', function(tnMasterServerData){ var result = tnMasterServerData.find( function(server) { return server.s_ipa === ip; } ); updateView(result); updateViewPage(result); updateViewList(result); } ); } function updateView(data) { var template = `

${data.info_hostname}
P#: ${data.num_players} / ${data.info_flags.max_players}
${data.info_map}  /  ${data.info_maptype}

`; $serverPopContainer.html(`
${template}
`); } function updateViewPage(data) { var players = data.num_players; var template = `
SHAZBOT!
There\'s ${data.num_players} player${(players != 1 ? 's' : '')} on
${data.info_hostname}
right now playing
${data.info_map}
${data.info_maptype}
`; $serverPopContainerPage.html(`
${template}
`); } function updateViewList(data) { var players = data.num_players; var template = ``; if(players > 0){ function countPlayers(teamData){ var result = 0; for(var playerSlot in teamData){ if(!isNaN(playerSlot)) result++; } return result; } function playerLoop(teamNum, data, mode){ var teamData = data[teamNum]; var count = countPlayers(teamData); if(mode == "LakRabbit" || mode == "Deathmatch") var title = `Players`; else var title = teamData.name; template = `${template} ${div4} ${title} `; if(count > 0){ for (i = 0; i < count; i++){ template = `${template} ${divc} ${teamData[i].name} `; } template = `${template}
`; } else template = `${template} N/A
`; } template = `
`; var mode = data.info_maptype; var data = data.info_players; //Formatting var div4 = `
`; var divc = `
`; //Lak/DM Only: Lak/DM puts everyone in observer and doesnt update team rank if(mode == "LakRabbit" || mode == "Deathmatch"){ template = `${template}
`; playerLoop(0, data, mode); } //CTF else{ //Team 1 template = `${template}
`; playerLoop(1, data, mode); //Team 2 playerLoop(2, data, mode); //Observers playerLoop(0, data, mode); } } $serverPopContainerList.html(`
${template}
`); } getServerData(discordServerIP); setInterval( function() { getServerData(discordServerIP); }, 25000 // check every 25 seconds ); } );