8 Commits

Author SHA1 Message Date
0060f37e6c Clean up semicolons, whitespace and a typo 2022-06-29 00:57:30 +02:00
9bfe3d6d99 Bump copyright year to 2022 2022-06-28 23:06:05 +02:00
63c4616645 Replace default server IP with domain name
Now that the client supports domain resolution in the IP field, it makes
sense to use a domain name for future-proofing.
2022-06-28 23:02:48 +02:00
CakeLancelot
645e5d4279 Merge pull request #16 from OpenFusionProject/qol
Improved server address processing
2022-05-05 18:45:24 -05:00
gsemaj
7ce21cdddc Don't perform lookup for obvious IPs and account for async
This old version of Node forces us to use callbacks, so I had to rearrange some code to ensure the client only launches after the resolution is complete
2022-04-27 20:50:23 -04:00
gsemaj
8d6e546628 Add automatic DNS resolution for server addresses 2022-04-27 13:44:08 -04:00
gsemaj
6e881cbfaf Connect to default port 23000 if port not specified 2022-04-27 13:43:51 -04:00
gsemaj
8d5a8df023 Update package-lock for newer npm versions 2022-04-27 13:00:40 -04:00
7 changed files with 4719 additions and 47 deletions

View File

@@ -5,7 +5,7 @@ var today = new Date();
// so 11 is Dec. of this year, and 12 is Jan. of the next
var christmasBegin = new Date(today.getFullYear(), 11, 23);
var christmasEnd = new Date(today.getFullYear(), 12, 8);
var sf
var sf;
if((today >= christmasBegin && today <= christmasEnd)) {
console.log("Christmas Activated.");

View File

@@ -40,10 +40,10 @@ function onResize() {
}
function launchGame() {
gameRunning = true
gameRunning = true;
var sel = document.getElementById("of-serverselector");
sel.remove()
sel.remove();
document.body.style.overflow = "hidden";
@@ -75,6 +75,6 @@ function launchGame() {
var div = document.getElementById('client');
object.appendChild(embed);
div.appendChild(object);
document.title = "OpenFusion"
document.title = "OpenFusion";
onResize();
}

View File

@@ -1,10 +1,11 @@
var remote = require("remote");
var remotefs = remote.require('fs-extra');
var dns = remote.require('dns');
var userdir = remote.require('app').getPath('userData');
var versionarray
var serverarray
var config
var versionarray;
var serverarray;
var config;
function enableServerListButtons() {
$('#of-connect-button').removeClass('disabled');
@@ -34,7 +35,7 @@ function addServer() {
server['version'] = $("#addserver-versionselect option:selected").text();
//server['endpoint'] =
jsontomodify['servers'].push(server)
jsontomodify['servers'].push(server);
remotefs.writeFileSync(userdir+"\\servers.json", JSON.stringify(jsontomodify, null, 4));
loadServerList();
@@ -98,13 +99,13 @@ function loadServerList() {
$.each(serverarray, function( key, value ) {
// Create the row, and populate the cells
var row = document.createElement('tr');
row.className = 'server-listing-entry'
row.className = 'server-listing-entry';
row.setAttribute('id', value.uuid);
var cellName = document.createElement('td');
cellName.textContent = value.description
cellName.textContent = value.description;
var cellVersion = document.createElement('td');
cellVersion.textContent = value.version
cellVersion.className = 'text-monospace'
cellVersion.textContent = value.version;
cellVersion.className = 'text-monospace';
row.appendChild(cellName);
row.appendChild(cellVersion);
@@ -155,10 +156,8 @@ function setGameInfo(serverUUID) {
window.asseturl = gameversion.url; // gameclient.js needs to access this
remotefs.writeFileSync(__dirname+"\\assetInfo.php", asseturl);
remotefs.writeFileSync(__dirname+"\\loginInfo.php", result.ip);
if (result.hasOwnProperty('endpoint')) {
var httpendpoint = result.endpoint.replace("https://", "http://")
var httpendpoint = result.endpoint.replace("https://", "http://");
remotefs.writeFileSync(__dirname+"\\rankurl.txt", httpendpoint+"getranks");
// Write these out too
remotefs.writeFileSync(__dirname+"\\sponsor.php", httpendpoint+"upsell/sponsor.png");
@@ -171,6 +170,40 @@ function setGameInfo(serverUUID) {
remotefs.writeFileSync(__dirname+"\\images.php", "assets/img/");
}
}
// Server address parsing
var address;
var port;
var sepPos = result.ip.indexOf(":");
if (sepPos > -1) {
address = result.ip.substr(0, sepPos);
port = result.ip.substr(sepPos + 1);
} else {
address = result.ip;
port = 23000 // default
}
// DNS resolution. there is no synchronous version for some stupid reason
if(!address.match(/^[0-9.]+$/)) dns.resolve4(address, function(err, res) {
if(!err) {
console.log("Resolved " + address + " to " + res[0]);
address = res[0];
} else {
console.log("Err: " + err.code);
}
prepConnection(address, port);
});
else {
console.log(address + " is an IP; skipping DNS lookup");
prepConnection(address, port);
}
}
function prepConnection(address, port) {
var full = address + ":" + port;
console.log("Will connect to " + full);
remotefs.writeFileSync(__dirname+"\\loginInfo.php", full);
launchGame();
}
// Returns the UUID of the server with the selected background color.
@@ -190,7 +223,6 @@ function connectToServer() {
setTimeout(function(){
$('body,html').css('pointer-events','');
setGameInfo(getSelectedServer());
launchGame();
}, 200);
});
}

View File

@@ -3,14 +3,14 @@
{
"uuid": "d9773558-6ddf-4d00-8803-d830a22a842b",
"description": "OpenFusion Public Server - Original",
"ip": "144.202.52.9:23000",
"ip": "play.dexlabs.systems:23000",
"version": "beta-20100104",
"endpoint": "https://api.dexlabs.systems/"
},
{
"uuid": "b84f6859-f500-41f2-bdfa-8e3746639ee9",
"description": "OpenFusion Public Server - Academy",
"ip": "144.202.52.9:24000",
"ip": "play.dexlabs.systems:24000",
"version": "beta-20111013",
"endpoint": "https://api.dexlabs.systems/academy/"
}

View File

@@ -57,12 +57,12 @@
</div>
<div class="modal-body">
<p class="text-monospace">Version 1.4</p>
<p>©2020-2021 OpenFusion Contributors<br>OpenFusion is licensed under MIT.<br></p>
<p>©2020-2022 OpenFusion Contributors<br>OpenFusion is licensed under MIT.<br></p>
<a href="#of-restoreserversmodal" onclick="$('#of-aboutmodal').modal('toggle')" data-toggle="modal" data-target="#of-restoreserversmodal">Reset to Default Servers</a>
</div>
<div class="modal-footer">
<div class="row flex-fill">
<div class="col"><button class="btn btn-primary border rounded border-primary pb-1 pt-1 mr-2 pl-2 pr-2" data-toggle="tooltip" data-bs-tooltip="" type="button" title="Github Page" onclick="window.open(&#39;https://github.com/OpenFusionProject/OpenFusion&#39;,&#39;_blank&#39;);"><i class="fab fa-github" style="font-size: 24px;"></i></button><button class="btn btn-primary border rounded border-primary pb-1 pt-1 pl-2 pr-2" data-toggle="tooltip" data-bs-tooltip="" type="button" title="DIscord Chat" onclick="window.open(&#39;https://discord.gg/DYavckB&#39;,&#39;_blank&#39;);"><i class="fab fa-discord" style="font-size: 24px; position:relative; top: 1px;"></i></button></div>
<div class="col"><button class="btn btn-primary border rounded border-primary pb-1 pt-1 mr-2 pl-2 pr-2" data-toggle="tooltip" data-bs-tooltip="" type="button" title="Github Page" onclick="window.open(&#39;https://github.com/OpenFusionProject/OpenFusion&#39;,&#39;_blank&#39;);"><i class="fab fa-github" style="font-size: 24px;"></i></button><button class="btn btn-primary border rounded border-primary pb-1 pt-1 pl-2 pr-2" data-toggle="tooltip" data-bs-tooltip="" type="button" title="Discord Chat" onclick="window.open(&#39;https://discord.gg/DYavckB&#39;,&#39;_blank&#39;);"><i class="fab fa-discord" style="font-size: 24px; position:relative; top: 1px;"></i></button></div>
<div class="col text-right"><button class="btn btn-primary border rounded border-primary" type="button" data-dismiss="modal">Close</button></div>
</div>
</div>

4666
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@
"build": {
"appId": "xyz.openfusion.client",
"productName": "OpenFusionClient",
"copyright": "© 2020-2021 OpenFusion Contributors",
"copyright": "© 2020-2022 OpenFusion Contributors",
"electronDownload": {
"version": "0.31.2",
"platform": "win32",