NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name OGLightPTREDebugger
// @namespace https://openuserjs.org/users/GeGe_GM
// @version 0.1.1
// @description Script to debug OGLight-PTRE interactions
// @author GeGe_GM
// @license MIT
// @copyright 2022, GeGe_GM
// @match https://*.ogame.gameforge.com/game/*
// @updateURL https://openuserjs.org/meta/GeGe_GM/OGLightPTREDebugger.meta.js
// @downloadURL https://openuserjs.org/install/GeGe_GM/OGLightPTREDebugger.user.js
// @require http://code.jquery.com/jquery-3.4.1.min.js
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant GM_addStyle
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_xmlhttpRequest
// ==/UserScript==
var serveur = document.getElementsByName('ogame-universe')[0].content;
var splitted = serveur.split('-');
var universe = splitted[0].slice(1);
var splitted2 = splitted[1].split('.');
var country = splitted2[0];
var oglPTREGalaxyValue = "ogl-ptre-debugger-" + country + "-" + universe + "-Galaxy";
var oglPTRESystemValue = "ogl-ptre-debugger-" + country + "-" + universe + "-System";
var autoResfreshPeriod = 1 * 1000;
// *** *** ***
// MAIN EXEC
// *** *** ***
displayOGLDebugger();
refreshOGLStatus();
// *** *** ***
// Add PTRE styles
// Ugly style... yes!
// *** *** ***
GM_addStyle(`
.status_positif {
color:#508d0e;
font-weight:bold;
}
.status_negatif {
color: #bb2e15;
font-weight:bold;
}
.status_warning {
color:#bb6715;
font-weight:bold;
}
#debuggerDiv {
padding:10px;
z-index: 1000;
position: fixed;
bottom: 30px;
left: 10px;
border: solid black 2px;
background:rgba(0,26,52,0.8);
}
#boxPTREMessage {
padding:10px;
z-index: 1000;
position: fixed;
bottom: 30px;
left: 10px;
border: solid black 2px;
background:rgba(0,26,52,0.8);"
}
#btnSaveOptPTRE {
cursor:pointer;
}
#ptreSpanGalaxyMessageD {
color:green;
font-weight:bold;"
}
.ptre_maintitle {
color: #299f9b;
font-weight:bold;
text-decoration: underline;
}
.ptre_title {
color: #299f9b;
font-weight:bold;
}
.td_cell {
padding: 3px;
}
`);
// *** *** ***
// NOTIFICATIONS FUNCTIONS
// *** *** ***
// Displays PTRE responses messages
// Responses from server
function displayPTREMessage(message) {
var divDebugMessage = '<div id="boxPTREMessage">PTRE: <span id="ptreMessage">' + message + '</span></div>';
var boxPTREMessage = document.createElement("div");
boxPTREMessage.innerHTML = divDebugMessage;
boxPTREMessage.id = 'boxPTREMessage';
if (document.getElementById('links')) {
document.getElementById('links').appendChild(boxPTREMessage);
setTimeout(function() {document.getElementById('boxPTREMessage').remove();}, ptreMessageDisplayTime * 1000);
}
}
// *** *** ***
// MINI FUNCTIONS
// *** *** ***
// *** *** ***
// IMPROVE MAIN VIEWS
// *** *** ***
// Displays Debug DIV
function displayOGLDebugger() {
if (document.getElementById('divDebugContainer')) {
document.getElementById('divDebugContainer').parentNode.removeChild(document.getElementById('divDebugContainer'));
}
var divDebug = '<div id="debuggerDiv"><table border="1">';
divDebug += '<tr><td class="td_cell"><span class="ptre_maintitle">OGLight / PTRE Debugger</span></td></tr>';
divDebug += '<tr><td class="td_cell"><input id="btnRefreshDebugger" type="button" value="REFRESH ALL" /> <input id="btnUpdateGalaxy" type="button" value="UPDATE SYSTEM" /> <input id="btnCloseDiv" type="button" value="CLOSE" /></td></tr>';
divDebug += '<tr><td class="td_cell"><input id="debuggerGalaxyValue" type="text" value="' + GM_getValue(oglPTREGalaxyValue, '1') + '" size="1" /> ';
divDebug += '<input id="leftSystem" type="button" value="<<<" /> ';
divDebug += '<input id="debuggerSystemValue" type="text" value="' + GM_getValue(oglPTRESystemValue, '1') + '" size="1" /> ';
divDebug += '<input id="rightSystem" type="button" value=">>>" /></td></tr>';
divDebug += '<tr><td class="td_cell"><div id="oglStatus"></div></td></tr>';
divDebug += '<tr><td class="td_cell"><hr></td></tr>';
divDebug += '<tr><td class="td_cell"><div id="debuggerGalaxyContent"/></td>';
divDebug += '</table></div>';
var eletementSetPTRE = document.createElement("div");
eletementSetPTRE.innerHTML = divDebug;
eletementSetPTRE.id = 'divDebugContainer';
if (document.getElementById('links')) {
document.getElementById('links').appendChild(eletementSetPTRE);
}
document.getElementById('debuggerGalaxyContent').innerHTML = "...";
// Action Refresh
document.getElementById('btnRefreshDebugger').addEventListener("click", function (event)
{
document.getElementById('divDebugContainer').parentNode.removeChild(document.getElementById('divDebugContainer'));
setTimeout(function() {displayOGLDebugger();}, 200);
});
// Action: Close
document.getElementById('btnCloseDiv').addEventListener("click", function (event)
{
document.getElementById('divDebugContainer').parentNode.removeChild(document.getElementById('divDebugContainer'));
});
// Action Get System
document.getElementById('btnUpdateGalaxy').addEventListener("click", function() {updatePosition();});
// Action Get Left System
document.getElementById('leftSystem').addEventListener("click", function() {updateLesftSystem();});
// Action Get Right System
document.getElementById('rightSystem').addEventListener("click", function() {updateRightSystem();});
updatePosition();
}
function updateLesftSystem() {
var system = document.getElementById("debuggerSystemValue").value;
system--;
document.getElementById("debuggerSystemValue").value = system;
updatePosition();
}
function updateRightSystem() {
var system = document.getElementById("debuggerSystemValue").value;
system++;
document.getElementById("debuggerSystemValue").value = system;
updatePosition();
}
function updatePosition() {
document.getElementById('debuggerGalaxyContent').innerHTML = "Loading...";
console.log("Fetching position...");
// Save position
var galaxy = document.getElementById("debuggerGalaxyValue").value;
var system = document.getElementById("debuggerSystemValue").value;
GM_setValue(oglPTREGalaxyValue, galaxy);
GM_setValue(oglPTRESystemValue, system);
if(ogl && ogl.db && ogl.db.positions) {
var output = '';
for (let pos = 1; pos <= 15; pos++) {
var id = "not found";
var temp = "not found";
output += '[' + galaxy + ':' + system + ':' + pos + '] ';
idArray = ogl.find(ogl.db.positions, 'coords', galaxy + ':' + system + ':' + pos);
if (idArray.length == 0) {
output += 'No entry';
} else if (idArray.length == 1) {
var positionObject = ogl.db.positions[idArray];
var dateFormat = new Date(positionObject.lastUpdate);
output += 'Entry #' + idArray + ' => ';
output += 'playerID : ' + positionObject.playerID + ' | ';
output += 'id : ' + positionObject.id + ' | ';
output += 'moonID : ' + positionObject.moonID + ' | ';
output += 'lastUpdate : ' + dateFormat + ' | ';
output += 'activity : ' + positionObject.activity + ' | ';
output += 'moonActivity : ' + positionObject.moonActivity + ' | ';
output += 'coords : ' + positionObject.coords;
} else {
output += 'ERR: ' + idArray.length + ' elements';
}
output += '<br>';
}
document.getElementById('debuggerGalaxyContent').innerHTML = output;
} else {
document.getElementById('debuggerGalaxyContent').innerHTML = '<span class="status_negatif">OGL is NOT defined. Refresh page</span>';
}
}
function refreshOGLStatus() {
if (document.getElementById('oglStatus')) {
document.getElementById('oglStatus').innerHTML = "...";
var oglStatusText = '';
if(ogl) {
oglStatusText = 'OGL status: <span class="status_positif">OGL is defined</span>';
} else {
oglStatusText = 'OGL status: <span class="status_negatif">OGL is NOT defined. Refresh page</span>';
}
document.getElementById('oglStatus').innerHTML = oglStatusText;
}
setTimeout(function() {refreshOGLStatus();}, autoResfreshPeriod);
}