// ==UserScript== // @name Auto-select OGame account // @namespace https://openuserjs.org/users/clemente // @match https://lobby.ogame.gameforge.com/*/hub // @grant GM_xmlhttpRequest // @version 1.0 // @author clemente // @license MIT // @description Redirect to current Ogame account if only one is available // @icon https://lobby.ogame.gameforge.com/favicon.ico // @connect lobby.ogame.gameforge.com // @inject-into content // @noframes // @downloadURL none // ==/UserScript== function gm_fetch(url) { return new Promise((resolve, reject) => { GM_xmlhttpRequest({ method: "GET", url: url, onload: function({ status, responseText }) { if (status < 200 && status >= 300) return reject(); resolve(JSON.parse(responseText)); }, onerror: function() { reject(); }, }); }); } async function redirectToAccount() { try { const accounts = await gm_fetch("https://lobby.ogame.gameforge.com/api/users/me/accounts"); if (accounts.length > 1) return; const number = accounts[0].server.number; const language = accounts[0].server.language; document.location.href = `https://s${number}-${language}.ogame.gameforge.com/game/index.php?page=ingame&component=overview`; } catch (e) { // If there is an error, the user is probably not logged in console.error(e); } } redirectToAccount();