diff options
| -rw-r--r-- | webAO/client.js | 38 | ||||
| -rw-r--r-- | webAO/master.js | 41 |
2 files changed, 61 insertions, 18 deletions
diff --git a/webAO/client.js b/webAO/client.js index b57b98c..1b13a95 100644 --- a/webAO/client.js +++ b/webAO/client.js @@ -51,9 +51,16 @@ const fp = new Fingerprint({ screen_resolution: true }); -// An emulated, semi-unique HDID that is generally safe for HDID bans. -const hdid = fp.get(); -console.info(`Your emulated HDID is ${hdid}`); +/** An emulated, semi-unique HDID that is generally safe for HDID bans. */ +const cookieid = getCookie("fingerprint"); +let hdid; +if (cookieid) { + hdid = cookieid; +} else { + hdid = fp.get(); + setCookie("fingerprint",hdid); +} +console.log(`Your emulated HDID is ${hdid}`); let lastICMessageTime = new Date(0); @@ -529,7 +536,7 @@ class Client extends EventEmitter { music.pause(); music.src = MUSIC_HOST + track.toLowerCase(); music.play(); - if (args[2] >= 0) { + if (Number(args[2]) >= 0) { const musicname = this.chars[charID].name; appendICLog(`${musicname} changed music to ${track}`); } else { @@ -843,7 +850,7 @@ class Client extends EventEmitter { * @param {Array} args packet arguments */ handleHP(args) { - const percent_hp = args[2] * 10; + const percent_hp = Number(args[2]) * 10; let healthbox; if (args[1] === "1") { // Def hp @@ -889,7 +896,7 @@ class Client extends EventEmitter { * @param {Array} args packet arguments */ handleID(args) { - this.playerID = args[1]; + this.playerID = Number(args[1]); this.serverSoftware = args[2].split("&")[0]; if (this.serverSoftware === "serverD") this.serverVersion = args[2].split("&")[1]; @@ -917,19 +924,19 @@ class Client extends EventEmitter { for (let i = 1; i < args.length - 1; i++) { if (this.areas[i]) { // the server sends us ARUP before we even get the area list const thisarea = document.getElementById("area" + i); - switch(args[0]) { - case "0": // playercount + switch(Number(args[0])) { + case 0: // playercount this.areas[i].players = Number(args[i]); thisarea.innerText = `${this.areas[i].name} (${this.areas[i].players})`; break; - case "1": // status + case 1: // status this.areas[i].status = safe_tags(args[i]); thisarea.classList = "area-button area-" + this.areas[i].status.toLowerCase(); break; - case "2": + case 2: this.areas[i].cm = safe_tags(args[i]); break; - case "3": + case 3: this.areas[i].locked = safe_tags(args[i]); break; } @@ -974,8 +981,8 @@ class Client extends EventEmitter { handleSI(args) { this.char_list_length = Number(args[1]); this.char_list_length += 1; // some servers count starting from 0 some from 1... - this.evidence_list_length = args[2]; - this.music_list_length = args[3]; + this.evidence_list_length = Number(args[2]); + this.music_list_length = Number(args[3]); // create the charselect grid, to be filled by the character loader document.getElementById("client_chartable").innerHTML = ""; @@ -1036,10 +1043,9 @@ class Client extends EventEmitter { * @param {Array} args packet arguments */ async handlePV(args) { - this.charID = args[3]; + this.charID = Number(args[3]); document.getElementById("client_charselect").style.display = "none"; - document.getElementById("client_inputbox").style.display = ""; const me = this.character; this.selectedEmote = -1; @@ -2024,8 +2030,6 @@ export function pickChar(ccharacter) { } else { // Spectator document.getElementById("client_charselect").style.display = "none"; - document.getElementById("client_inputbox").style.display = "none"; - document.getElementById("client_emo").style.display = "none"; } } window.pickChar = pickChar; diff --git a/webAO/master.js b/webAO/master.js index d12a7ec..863c311 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -9,7 +9,14 @@ const fp = new Fingerprint({ }); /** An emulated, semi-unique HDID that is generally safe for HDID bans. */ -const hdid = fp.get(); +const cookieid = getCookie("fingerprint"); +let hdid; +if (cookieid) { + hdid = cookieid; +} else { + hdid = fp.get(); + setCookie("fingerprint",hdid); +} console.log(`Your emulated HDID is ${hdid}`); let oldLoading = false; @@ -28,6 +35,38 @@ const server_description = []; server_description[-1] = "This is your computer on port 50001"; const online_counter = []; +/** + * read a cookie from storage + * got this from w3schools + * https://www.w3schools.com/js/js_cookies.asp + * @param {String} cname The name of the cookie to return + */ +function getCookie(cname) { + var name = cname + "="; + var decodedCookie = decodeURIComponent(document.cookie); + var ca = decodedCookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) === ' ') { + c = c.substring(1); + } + if (c.indexOf(name) === 0) { + return c.substring(name.length, c.length); + } + } + return ""; +} + +/** + * set a cookie + * the version from w3schools expects these to expire + * @param {String} cname The name of the cookie to return + * @param {String} value The value of that cookie option + */ +function setCookie(cname,value) { + document.cookie = cname + "=" + value; +} + export function setServ(ID) { console.log(server_description[ID]); if (server_description[ID] !== undefined) { |
