From 8adfabddb95ba284e642224a346bb0b34a578d95 Mon Sep 17 00:00:00 2001 From: sD Date: Mon, 23 Mar 2020 13:52:01 +0100 Subject: add https and javascript warnings --- webAO/master.js | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index 1607fa5..7ceb748 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -31,6 +31,8 @@ if (window.requestIdleCallback) { Fingerprint2.get(options, function (components) { hdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31); + check_https(); + masterserver = new WebSocket("ws://" + MASTERSERVER_IP); masterserver.onopen = (evt) => onOpen(evt); masterserver.onmessage = (evt) => onMessage(evt); @@ -45,6 +47,8 @@ if (window.requestIdleCallback) { Fingerprint2.get(options, function (components) { hdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31); + check_https(); + masterserver = new WebSocket("ws://" + MASTERSERVER_IP); masterserver.onopen = (evt) => onOpen(evt); masterserver.onmessage = (evt) => onMessage(evt); @@ -56,6 +60,12 @@ if (window.requestIdleCallback) { }, 500); } +export function check_https() { + if (document.location.protocol === "https:") { + document.getElementById("https_error").style.display = ""; + } +} + export function setServ(ID) { console.log(server_description[ID]); if (server_description[ID] !== undefined) { -- cgit From 2ed9af82f21f1390d507f04638157b63bfd4b949 Mon Sep 17 00:00:00 2001 From: sD Date: Wed, 25 Mar 2020 23:12:27 +0100 Subject: move encoding stuff to seperate js file --- webAO/master.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index 7ceb748..660b6e2 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -1,7 +1,7 @@ const MASTERSERVER_IP = "master.aceattorneyonline.com:27014"; -const version = 2.4; import Fingerprint2 from 'fingerprintjs2'; +import { unescapeChat } from './encoding.js'; let masterserver; @@ -14,18 +14,6 @@ const server_description = []; server_description[-1] = "This is your computer on port 50001"; const online_counter = []; -/** - * Unescapes a string to AO1 escape codes. - * @param {string} estring the string to be unescaped - */ -function unescapeChat(estring) { - return estring - .replace(//g, "#") - .replace(//g, "&") - .replace(//g, "%") - .replace(//g, "$"); -} - if (window.requestIdleCallback) { requestIdleCallback(function () { Fingerprint2.get(options, function (components) { @@ -170,7 +158,7 @@ function onMessage(e) { } else if (header === "servercheok") { const args = msg.split("#").slice(1); - document.getElementById("clientinfo").innerHTML = `Client version: ${args[0]}`; + document.getElementById("clientinfo").innerHTML = `Client version: ${version} expected: ${args[0]}`; } else if (header === "SV") { const args = msg.split("#").slice(1); -- cgit From 84d274165022cd910984a1df145db6e1e4cd49a2 Mon Sep 17 00:00:00 2001 From: sD Date: Wed, 25 Mar 2020 23:17:34 +0100 Subject: get version from package.json --- webAO/master.js | 1 + 1 file changed, 1 insertion(+) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index 660b6e2..5d1e8a7 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -1,4 +1,5 @@ const MASTERSERVER_IP = "master.aceattorneyonline.com:27014"; +const version = require('../package.json').version; import Fingerprint2 from 'fingerprintjs2'; import { unescapeChat } from './encoding.js'; -- cgit From 85fa666f2d3ee13760ded11e34e89fe349aab75f Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 27 Mar 2020 14:39:51 +0100 Subject: get rid of require --- webAO/master.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index 5d1e8a7..ec58083 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -1,5 +1,5 @@ const MASTERSERVER_IP = "master.aceattorneyonline.com:27014"; -const version = require('../package.json').version; +import { version } from '../package.json'; import Fingerprint2 from 'fingerprintjs2'; import { unescapeChat } from './encoding.js'; -- cgit From defa8e646f9991602c6c194f5c7e05d5b0c8663c Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 27 Mar 2020 18:46:01 +0100 Subject: old loading gives us the wrong ports anyway --- webAO/master.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index ec58083..f91b804 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -70,12 +70,7 @@ function onOpen(_e) { console.log(`Your emulated HDID is ${hdid}`); masterserver.send(`ID#webAO#webAO#%`); - if (oldLoading === true) { - masterserver.send("askforservers#%"); - } - else { - masterserver.send("ALL#%"); - } + masterserver.send("ALL#%"); masterserver.send("VC#%"); } -- cgit From 96d685b3c369df94fa1fcbc66d745980d33fee39 Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 27 Mar 2020 18:47:53 +0100 Subject: since it was broken anyway, remove it --- webAO/master.js | 11 ----------- 1 file changed, 11 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index f91b804..dfdf80b 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -141,17 +141,6 @@ function onMessage(e) { checkOnline(-1, "127.0.0.1:50001"); masterserver.close(); } - else if (header === "SN") { - const args = msg.split("#"); - const i = args[1]; - document.getElementById("masterlist").innerHTML += - `
  • ${args[5]}

    ` - + `Watch` - + `Join
  • `; - server_description[i] = args[6]; - masterserver.send("SR#" + i + "#%"); - checkOnline(i, `${args[2]}:${args[3]}`); - } else if (header === "servercheok") { const args = msg.split("#").slice(1); document.getElementById("clientinfo").innerHTML = `Client version: ${version} expected: ${args[0]}`; -- cgit From 4c33bc2aef3fe0cc01b94f194ec871dd19b6451a Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 27 Mar 2020 18:49:44 +0100 Subject: rename oldloading to lowmemory and make it avoid getting the onlinecount --- webAO/master.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index dfdf80b..d5bcff2 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -9,7 +9,7 @@ let masterserver; let hdid; const options = { fonts: { extendedJsFonts: true, userDefinedFonts: ["Ace Attorney", "8bitoperator", "DINEngschrift"] }, excludes: { userAgent: true, enumerateDevices: true } }; -let oldLoading = false; +let lowMemory = false; const server_description = []; server_description[-1] = "This is your computer on port 50001"; @@ -27,7 +27,7 @@ if (window.requestIdleCallback) { masterserver.onmessage = (evt) => onMessage(evt); if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { - oldLoading = true; + lowMemory = true; } }); }); @@ -43,7 +43,7 @@ if (window.requestIdleCallback) { masterserver.onmessage = (evt) => onMessage(evt); if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { - oldLoading = true; + lowMemory = true; } }); }, 500); @@ -75,8 +75,9 @@ function onOpen(_e) { } function checkOnline(serverID, coIP) { - - var oserv = new WebSocket("ws://" + coIP); + let oserv; + if (lowMemory===false) + oserv = new WebSocket("ws://" + coIP); // define what the callbacks do function onCOOpen(_e) { -- cgit From 99d2c19cfd8608dc8214490992205616fed1e944 Mon Sep 17 00:00:00 2001 From: sD Date: Fri, 27 Mar 2020 18:59:58 +0100 Subject: don't hide the entries if we're not checking them --- webAO/master.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index d5bcff2..4281a49 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -75,9 +75,7 @@ function onOpen(_e) { } function checkOnline(serverID, coIP) { - let oserv; - if (lowMemory===false) - oserv = new WebSocket("ws://" + coIP); + let oserv = new WebSocket("ws://" + coIP); // define what the callbacks do function onCOOpen(_e) { @@ -131,15 +129,18 @@ function onMessage(e) { const serverEntry = servers[i]; const args = serverEntry.split("&"); const asset = args[4] ? `&asset=${args[4]}` : ""; + const liclass = lowMemory ? "" : "unavailable"; // don't hide the entries if we're not checking them document.getElementById("masterlist").innerHTML += - `
  • ${args[0]}

    ` + `
  • ${args[0]}

    ` + `Watch` + `Join
  • `; server_description[i] = args[1]; - checkOnline(i, `${args[2]}:${args[3]}`); + if (lowMemory===false) + checkOnline(i, `${args[2]}:${args[3]}`); } - checkOnline(-1, "127.0.0.1:50001"); + if (lowMemory===false) + checkOnline(-1, "127.0.0.1:50001"); masterserver.close(); } else if (header === "servercheok") { -- cgit From 82428c0ccc7b4938564b434fb0de153afb5af508 Mon Sep 17 00:00:00 2001 From: sD Date: Sat, 11 Apr 2020 18:02:04 +0200 Subject: add an error message when the connection fails --- webAO/master.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index 4281a49..5527ce5 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -24,6 +24,7 @@ if (window.requestIdleCallback) { masterserver = new WebSocket("ws://" + MASTERSERVER_IP); masterserver.onopen = (evt) => onOpen(evt); + masterserver.onerror = (evt) => onError(evt); masterserver.onmessage = (evt) => onMessage(evt); if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { @@ -40,6 +41,7 @@ if (window.requestIdleCallback) { masterserver = new WebSocket("ws://" + MASTERSERVER_IP); masterserver.onopen = (evt) => onOpen(evt); + masterserver.onerror = (evt) => onError(evt); masterserver.onmessage = (evt) => onMessage(evt); if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { @@ -74,6 +76,15 @@ function onOpen(_e) { masterserver.send("VC#%"); } +/** + * Triggered when an network error occurs. + * @param {ErrorEvent} e + */ +function onError(evt) { + document.getElementById("ms_error").style.display = "block"; + document.getElementById("ms_error_code").innerText = `A network error occurred: ${evt.reason} (${evt.code})`; +} + function checkOnline(serverID, coIP) { let oserv = new WebSocket("ws://" + coIP); @@ -159,4 +170,4 @@ function onMessage(e) { msChat.scrollTop = msChat.scrollHeight; } } -} +} \ No newline at end of file -- cgit From cbbe270cab6a9d6a527271a1ebf23b6d232c6fae Mon Sep 17 00:00:00 2001 From: oldmud0 Date: Sat, 16 May 2020 18:05:27 -0500 Subject: Check online asynchronously --- webAO/master.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index 5527ce5..e7b9174 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -147,11 +147,11 @@ function onMessage(e) { + `Watch` + `Join`; server_description[i] = args[1]; - if (lowMemory===false) - checkOnline(i, `${args[2]}:${args[3]}`); + if (!lowMemory) + setTimeout(() => checkOnline(i, `${args[2]}:${args[3]}`), 0); } - if (lowMemory===false) - checkOnline(-1, "127.0.0.1:50001"); + if (!lowMemory) + setTimeout(() => checkOnline(-1, "127.0.0.1:50001"), 0); masterserver.close(); } else if (header === "servercheok") { @@ -170,4 +170,4 @@ function onMessage(e) { msChat.scrollTop = msChat.scrollHeight; } } -} \ No newline at end of file +} -- cgit From 46198ff2ee444285da5084d680c66ad766b5af95 Mon Sep 17 00:00:00 2001 From: sD Date: Thu, 28 May 2020 17:42:11 +0200 Subject: enable offline play --- webAO/master.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'webAO/master.js') diff --git a/webAO/master.js b/webAO/master.js index e7b9174..bc0111e 100644 --- a/webAO/master.js +++ b/webAO/master.js @@ -20,6 +20,10 @@ if (window.requestIdleCallback) { Fingerprint2.get(options, function (components) { hdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31); + if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { + lowMemory = true; + } + check_https(); masterserver = new WebSocket("ws://" + MASTERSERVER_IP); @@ -27,9 +31,8 @@ if (window.requestIdleCallback) { masterserver.onerror = (evt) => onError(evt); masterserver.onmessage = (evt) => onMessage(evt); - if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { - lowMemory = true; - } + // i don't need the ms to play alone + setTimeout(() => checkOnline(-1, "127.0.0.1:50001"), 0); }); }); } else { @@ -37,6 +40,10 @@ if (window.requestIdleCallback) { Fingerprint2.get(options, function (components) { hdid = Fingerprint2.x64hash128(components.reduce((a, b) => `${a.value || a}, ${b.value}`), 31); + if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { + lowMemory = true; + } + check_https(); masterserver = new WebSocket("ws://" + MASTERSERVER_IP); @@ -44,9 +51,8 @@ if (window.requestIdleCallback) { masterserver.onerror = (evt) => onError(evt); masterserver.onmessage = (evt) => onMessage(evt); - if (/webOS|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|PlayStation|Opera Mini/i.test(navigator.userAgent)) { - lowMemory = true; - } + // i don't need the ms to play alone + setTimeout(() => checkOnline(-1, "127.0.0.1:50001"), 0); }); }, 500); } @@ -150,8 +156,6 @@ function onMessage(e) { if (!lowMemory) setTimeout(() => checkOnline(i, `${args[2]}:${args[3]}`), 0); } - if (!lowMemory) - setTimeout(() => checkOnline(-1, "127.0.0.1:50001"), 0); masterserver.close(); } else if (header === "servercheok") { -- cgit