blob: 4c29a7c958c1c181d4756487159560c265eb02b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
MASTERSERVER_IP = "master.aceattorneyonline.com:27014"
//MASTERSERVER_IP = "192.168.1.28:27014"
masterserver = new WebSocket("ws://" + MASTERSERVER_IP);
masterserver.onopen = (evt) => onOpen(evt);
masterserver.onclose = (evt) => onClose(evt);
masterserver.onmessage = (evt) => onMessage(evt);
masterserver.onerror = (evt) => onError(evt);
var idnow;
var descs = [];
descs[99]="This is your computer on port 27016";
var onlinec = [];
var serverpics = [];
function UrlExists(url)
{
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status != 404;
}
function setServ(ID) {
console.log(descs[ID]);
if (descs[ID] != undefined) {
document.getElementById("serverdescC").innerHTML = "<b>Online: "+onlinec[ID]+"</b><br>" +descs[ID];
}
else {
document.getElementById("serverdescC").innerHTML = "";
}
// idnow = ID;
// document.getElementById("serverthumbC").src = serverpics[ID];
// if (UrlExists(serverpics[ID])) {
// document.getElementById("serverthumbC").src = serverpics[ID];
// }
// else {
// document.getElementById("serverthumbC").src = "/images/static.gif";
// }
}
function onOpen(e) {
console.log("Open");
masterserver.send("ID#webAO#webAO#%");
masterserver.send("ALL#%");
masterserver.send("VC#%");
};
function checkOnline(serverID,coIP) {
function onCOOpen(e) {
console.log("Open");
document.getElementById('server'+serverID).className = "available";
oserv.send("HI#webAO#%");
oserv.send("ID#webAO#webAO#%");
};
function onCOMessage(e) {
comsg = e.data;
console.log(comsg)
coheader = comsg.split('#', 2)[0];
coarguments = comsg.split('#').slice(1)
if (coheader == 'PN') {
onlinec[serverID]=coarguments[0]+"/"+coarguments[1];
oserv.close();
}
};
var oserv = new WebSocket("ws://" + coIP);
oserv.onopen = function(evt) {
onCOOpen(evt);
};
oserv.onmessage = function(evt) {
onCOMessage(evt);
};
}
function onMessage(e) {
msg = e.data;
console.log(msg)
header = msg.split('#', 2)[0];
if (header == 'ALL') {
let servers = msg.split('#').slice(1)
for (let i = 0; i < servers.length; i++) {
let serverEntry = servers[i];
let arguments = serverEntry.split('&');
document.getElementById('masterlist').innerHTML +=
`<li id="server${i}" class="unavailable" onmouseover="setServ(${i})"><p>${arguments[0]}</p>`
+ `<a class="button" href="client.html?mode=watch&ip=${arguments[2]}:${arguments[3]}">Watch</a>`
+ `<a class="button" href="client.html?mode=join&ip=${arguments[2]}:${arguments[3]}">Join</a></li><br/>`;
descs[i] = arguments[1];
setTimeout(checkOnline(i, arguments[2] + ':' + arguments[3]), 3);
}
}
else if (header == 'servercheok') {
let arguments = msg.split('#').slice(1)
console.log(arguments);
document.getElementById('clientinfo').innerHTML = "Client version: " + arguments[0];
}
else if (header == 'SV') {
let arguments = msg.split('#').slice(1)
console.log(arguments);
document.getElementById('serverinfo').innerHTML = "Master server version: "+arguments[0];
}
};
function onError(e) {
//Stub
};
function onClose(e) {
//Stub
};
|