NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Gladiabots team colors
// @namespace http://tampermonkey.net/
// @version 0.15
// @description Mark player names with their team color
// @author GFX47
// @match https://*.toornament.com/*
// @grant none
// @license MIT
// ==/UserScript==
let teamPlayerRanks = { 'Red': [], 'Green': [], 'Blue': [] };
let teamPlayerNames = { 'Red': [], 'Green': [], 'Blue': [] };
function GetTeamColor(playerName)
{
let color = null;
if (teamPlayerNames.Red.includes(playerName))
{
color = 'Red';
}
else if (teamPlayerNames.Green.includes(playerName))
{
color = 'Green';
}
else if (teamPlayerNames.Blue.includes(playerName))
{
color = 'Blue';
}
return color;
}
function GetPlayerRank(playerName)
{
let playerIndex = teamPlayerNames.Red.indexOf(playerName, 0);
if (playerIndex >= 0)
{
return teamPlayerRanks.Red[playerIndex];
}
playerIndex = teamPlayerNames.Green.indexOf(playerName, 0);
if (playerIndex >= 0)
{
return teamPlayerRanks.Green[playerIndex];
}
playerIndex = teamPlayerNames.Blue.indexOf(playerName, 0);
if (playerIndex >= 0)
{
return teamPlayerRanks.Blue[playerIndex];
}
return null;
}
function GetTeamPlayers(teamID, teamName)
{
let xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
let players = this.responseText.split('\n');
for (let playerIndex in players)
{
let player = players[playerIndex];
let separatorIndex = player.indexOf(' ');
let playerRank = player.substring(0, separatorIndex);
let playerName = player.substring(separatorIndex + 1);
teamPlayerRanks[teamName].push(playerRank);
teamPlayerNames[teamName].push(playerName);
}
}
};
xhttp.open("GET", "https://api.gladiabots.com/teams.php?apiKey=428rpM4Ryf7gL8kzZEPytYfj87LRJV7E&guild="+teamID, false);
xhttp.send();
}
window.onload = function()
{
GetTeamPlayers(1, 'Red');
GetTeamPlayers(2, 'Green');
GetTeamPlayers(3, 'Blue');
let teamScores = { 'Red': 0, 'Green': 0, 'Blue': 0 };
let teamPlayers = { 'Red': [], 'Green': [], 'Blue': [] };
let maxTeamScore = 0;
let rankingElements = document.querySelectorAll('.ranking-item');
for (let rankingIndex in rankingElements)
{
let rankingElement = rankingElements[rankingIndex];
if (!rankingElement.textContent)
{
continue;
}
//console.log(rankingElement);
let rankingPlayerNameElement = rankingElement.querySelector('.name');
if (!rankingPlayerNameElement.textContent)
{
continue;
}
let rankingPlayerName = rankingPlayerNameElement.textContent.trim();
//console.log(rankingPlayerName);
let rankingTeamColor = GetTeamColor(rankingPlayerName);
if (!rankingTeamColor)
{
continue;
}
teamPlayers[rankingTeamColor].push(rankingPlayerName);
//console.log(teamPlayers[rankingTeamColor]);
let scoreElement = rankingElement.querySelector('.points');
if (!scoreElement.textContent)
{
continue;
}
scoreElement.innerHTML = '<span style="color: ' + rankingTeamColor + ';">' + scoreElement.innerHTML + '</span>';
let scoreStr = scoreElement.textContent.trim();
if (!scoreStr || isNaN(scoreStr))
{
continue;
}
let score = parseInt(scoreStr);
//console.log(score);
teamScores[rankingTeamColor] += score;
//console.log(rankingTeamColor);
//console.log(teamScores[rankingTeamColor]);
if (teamScores[rankingTeamColor] > maxTeamScore)
{
maxTeamScore = teamScores[rankingTeamColor];
}
}
let teamCount = 0;
for (let teamPlayersColor in teamPlayers)
{
let teamPlayerCount = teamPlayers[teamPlayersColor].length;
if (teamPlayerCount > 0)
{
++teamCount;
}
}
console.log(teamCount);
// Team bars
if (teamCount > 1)
{
let rankingsElement = document.querySelector('.ranking');
if (rankingsElement != null)
{
for (let teamScoresColor in teamScores)
{
let teamScore = teamScores[teamScoresColor];
let teamPlayerCount = teamPlayers[teamScoresColor].length;
if (teamPlayerCount < 1)
{
continue;
}
let barSize = (100 * teamScore / maxTeamScore);
rankingsElement.innerHTML +=
'<div style="background-color: ' + teamScoresColor + '; width: ' + barSize + '%; float: left; height: 20px;"></div>' +
'<span style="color: white; text-shadow: black 2px 2px; float: left; margin-left: -' + barSize + '%;">' + teamScoresColor +' Team (' + teamPlayerCount + '): ' + teamScore + '</span>' +
'<div style="clear: both;"></div>';
}
}
}
let playerNameElements = document.querySelectorAll('.name');
for (let playerIndex in playerNameElements)
{
let playerNameElement = playerNameElements[playerIndex];
if (!playerNameElement.textContent)
{
continue;
}
let playerName = playerNameElement.textContent.trim();
if (!playerName)
{
continue;
}
//console.log(playerName);
let teamColor = GetTeamColor(playerName);
if (teamColor != null)
{
let playerRank = GetPlayerRank(playerName);
playerNameElement.innerHTML =
'<span style="color: ' + teamColor + ';">' +
playerNameElement.innerHTML +
//' ('+teamColor+(playerRank > 0 ? ' #'+playerRank : '')+')' +
(playerRank > 0 ? ' (#'+playerRank+')' : '') +
'</span>';
}
}
};