mirror of
https://github.com/OpenFusionProject/Client.git
synced 2026-01-24 19:10:48 +00:00
Compare commits
13 Commits
1.4.1
...
4a465ca689
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a465ca689 | ||
|
|
43f0c8c684 | ||
|
|
d4dc403e90 | ||
|
|
ab5de9488d | ||
|
|
dabb8bf484 | ||
|
|
043bf219e7 | ||
|
|
7131026b2f | ||
| 7dd018e336 | |||
|
|
e19098a13e | ||
|
|
48e2052748 | ||
|
|
7b3de1fe52 | ||
|
|
675a5fce50 | ||
|
|
2bf916ea58 |
51
README.md
51
README.md
@@ -1,3 +1,52 @@
|
|||||||
# OpenFusionClient
|
# OpenFusionClient
|
||||||
|
|
||||||
Electron app for joining OpenFusion servers
|
[](https://github.com/OpenFusionProject/OpenFusionClient/releases/latest) [](https://discord.gg/DYavckB)[](https://github.com/OpenFusionProject/OpenFusionClient/blob/master/LICENSE.md)
|
||||||
|
|
||||||
|
An Electron app that allows you to easily join FusionFall servers.
|
||||||
|
|
||||||
|
It automatically installs FF's custom build of Unity Web Player, manages text files such as `assetInfo.php`/`loginInfo.php`, and embeds the game, all in a few clicks!
|
||||||
|
|
||||||
|
For an overview of how the game client worked originally, please see [this section in the OpenFusion README](https://github.com/OpenFusionProject/OpenFusion#architecture).
|
||||||
|
|
||||||
|
## Disclaimer
|
||||||
|
|
||||||
|
This repository does not contain any code from the actual FusionFall game client. **Think of it more as a launcher:** it abstracts away having to use a NPAPI plugin capable web browser, along with having to host a HTTP server for it to connect to.
|
||||||
|
|
||||||
|
In addition, if you are interested in contributing: do note that **this project likely cannot utilize more modern Javascript techniques**. In order to use NPAPI plugins, a very old version of Electron was needed (0.31.0). This limits the project to only a portion of ES5 in non-strict mode, and a reduced subset of Node/Electron APIs.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Provided that you have npm installed, clone the repository, then run install like so:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/OpenFusionProject/OpenFusionClient.git
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
After that has completed you can then test OpenFusionClient:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run start
|
||||||
|
```
|
||||||
|
|
||||||
|
If you would like to package it as a standalone win32 application:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run pack
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then compress the application directory into a zip file and installer for distribution:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run dist
|
||||||
|
```
|
||||||
|
|
||||||
|
Before opening a PR or running pack/dist, please do a code formatting pass:
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run prettier
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT unless specified otherwise
|
||||||
|
|||||||
12
assets/bootstrap/css/bootstrap.min.css
vendored
12
assets/bootstrap/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
30
assets/css/bootstrap.min.css
vendored
Normal file
30
assets/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -47,6 +47,11 @@ img {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
clear: both;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
||||||
@@ -129,3 +134,12 @@ button > i {
|
|||||||
#server-table .server-listing-entry {
|
#server-table .server-listing-entry {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#client {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
background: #000;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|||||||
BIN
assets/fonts/KFOlCnqEu92Fr1MmWUlvAw.ttf
Normal file
BIN
assets/fonts/KFOlCnqEu92Fr1MmWUlvAw.ttf
Normal file
Binary file not shown.
BIN
assets/fonts/KFOmCnqEu92Fr1Me5Q.ttf
Normal file
BIN
assets/fonts/KFOmCnqEu92Fr1Me5Q.ttf
Normal file
Binary file not shown.
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 176 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
@@ -5,7 +5,7 @@ var gameRunning = false;
|
|||||||
|
|
||||||
// Uncomment and enter credentials to skip login screen
|
// Uncomment and enter credentials to skip login screen
|
||||||
function authDoCallback(param) {
|
function authDoCallback(param) {
|
||||||
/*var unity = document.getElementById('Unity_embed');
|
/*var unity = document.getElementById('unityEmbed');
|
||||||
unity.SendMessage("GlobalManager", "SetTEGid", "player");
|
unity.SendMessage("GlobalManager", "SetTEGid", "player");
|
||||||
unity.SendMessage("GlobalManager", "SetAuthid", "0");
|
unity.SendMessage("GlobalManager", "SetAuthid", "0");
|
||||||
unity.SendMessage("GlobalManager", "DoAuth", 0);*/
|
unity.SendMessage("GlobalManager", "DoAuth", 0);*/
|
||||||
@@ -33,7 +33,7 @@ function PayPage(param) {
|
|||||||
|
|
||||||
function onResize() {
|
function onResize() {
|
||||||
if (gameRunning == true) {
|
if (gameRunning == true) {
|
||||||
var unity = document.getElementById("Unity_embed");
|
var unity = document.getElementById("unityEmbed");
|
||||||
unity.style.width = window.innerWidth + "px";
|
unity.style.width = window.innerWidth + "px";
|
||||||
unity.style.height = window.innerHeight + "px";
|
unity.style.height = window.innerHeight + "px";
|
||||||
}
|
}
|
||||||
@@ -56,38 +56,29 @@ function launchGame() {
|
|||||||
"codebase",
|
"codebase",
|
||||||
"undefined/UnityWebPlayer.cab#version=2,0,0,0"
|
"undefined/UnityWebPlayer.cab#version=2,0,0,0"
|
||||||
);
|
);
|
||||||
object.setAttribute("id", "Unity_object");
|
object.setAttribute("id", "unityObject");
|
||||||
object.setAttribute("width", "1264");
|
object.setAttribute("width", "1264");
|
||||||
object.setAttribute("height", "661");
|
object.setAttribute("height", "661");
|
||||||
|
|
||||||
var embed = document.createElement("embed");
|
var embed = document.createElement("embed");
|
||||||
embed.setAttribute("type", "application/vnd.unity");
|
embed.setAttribute("type", "application/vnd.ffuwp");
|
||||||
embed.setAttribute(
|
embed.setAttribute(
|
||||||
"pluginspage",
|
"pluginspage",
|
||||||
"http://www.unity3d.com/unity-web-player-2.x"
|
"http://www.unity3d.com/unity-web-player-2.x"
|
||||||
);
|
);
|
||||||
embed.setAttribute("id", "Unity_embed");
|
embed.setAttribute("id", "unityEmbed");
|
||||||
embed.setAttribute("width", "1280");
|
embed.setAttribute("width", "1280");
|
||||||
embed.setAttribute("height", "680");
|
embed.setAttribute("height", "680");
|
||||||
embed.setAttribute("src", window.asseturl + "main.unity3d");
|
embed.setAttribute("src", window.assetUrl + "main.unity3d");
|
||||||
embed.setAttribute("disablecontdparaextmenu", "true");
|
|
||||||
embed.setAttribute("bordercolor", "000000");
|
embed.setAttribute("bordercolor", "000000");
|
||||||
embed.setAttribute("backgroundcolor", "000000");
|
embed.setAttribute("backgroundcolor", "000000");
|
||||||
embed.setAttribute("disableContextMenu", true);
|
embed.setAttribute("disableContextMenu", true);
|
||||||
embed.setAttribute("textcolor", "ccffff");
|
embed.setAttribute("textcolor", "ccffff");
|
||||||
embed.setAttribute("logoimage", "assets/img/unity_dexlabs.png");
|
embed.setAttribute("logoimage", "assets/img/unity-dexlabs.png");
|
||||||
embed.setAttribute("progressbarimage", "assets/img/unity_loadingbar.png");
|
embed.setAttribute("progressbarimage", "assets/img/unity-loadingbar.png");
|
||||||
embed.setAttribute(
|
embed.setAttribute(
|
||||||
"progressframeimage",
|
"progressframeimage",
|
||||||
"assets/img/unity_loadingframe.png"
|
"assets/img/unity-loadingframe.png"
|
||||||
);
|
|
||||||
embed.setAttribute(
|
|
||||||
"autoupdateurlsignature",
|
|
||||||
"42180ee5edc4e3d4dd706bcc17cedd8d6ec7b7ac463071fd34ab97fe181f1a78df31db5feb4526677e4f69ef53acaff44471591e68b87f041c80fd54765f0d5725b08aa28f5acf7716ffb2a04e971269f35925c7e38d57dd78f6a206530caaa3da7e32f07f19810efc0ebf29a4eae976a925ad9cc5beb4dd51564c67dc489033"
|
|
||||||
);
|
|
||||||
embed.setAttribute(
|
|
||||||
"autoupdateurl",
|
|
||||||
"http://wp-cartoonnetwork.unity3d.com/ff/big/beta-20111013/autodownload_webplugin_beta"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
var div = document.getElementById("client");
|
var div = document.getElementById("client");
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
|
// TODO: path.join in this file, pass in json paths from index.js
|
||||||
var remote = require("remote");
|
var remote = require("remote");
|
||||||
var remotefs = remote.require("fs-extra");
|
var remotefs = remote.require("fs-extra");
|
||||||
var dns = remote.require("dns");
|
var dns = remote.require("dns");
|
||||||
|
|
||||||
var userdir = remote.require("app").getPath("userData");
|
var userDir = remote.require("app").getPath("userData");
|
||||||
var versionarray;
|
var versionArray;
|
||||||
var serverarray;
|
var serverArray;
|
||||||
var config;
|
var config;
|
||||||
|
|
||||||
function enableServerListButtons() {
|
function enableServerListButtons() {
|
||||||
@@ -26,25 +27,25 @@ function disableServerListButtons() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getAppVersion() {
|
function getAppVersion() {
|
||||||
appversion = remote.require("app").getVersion();
|
appVersion = remote.require("app").getVersion();
|
||||||
|
|
||||||
// simplify version, ex. 1.4.0 -> 1.4,
|
// simplify version, ex. 1.4.0 -> 1.4,
|
||||||
// but only if a revision number isn't present
|
// but only if a revision number isn't present
|
||||||
if(appversion.endsWith(".0")){
|
if (appVersion.endsWith(".0")) {
|
||||||
return appversion.substr(0, appversion.length - 2)
|
return appVersion.substr(0, appVersion.length - 2);
|
||||||
} else {
|
} else {
|
||||||
return appversion
|
return appVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function setAppVersionText() {
|
function setAppVersionText() {
|
||||||
$("#of-aboutversionnumber").text("Version " + getAppVersion());
|
$("#of-aboutversionnumber").text("Version " + getAppVersion());
|
||||||
$("#of-versionnumber").text("v" + getAppVersion());
|
$("#of-versionnumber").text("v" + getAppVersion());
|
||||||
}
|
}
|
||||||
|
|
||||||
function addServer() {
|
function addServer() {
|
||||||
var jsontomodify = JSON.parse(
|
var jsonToModify = JSON.parse(
|
||||||
remotefs.readFileSync(userdir + "\\servers.json")
|
remotefs.readFileSync(userDir + "\\servers.json")
|
||||||
);
|
);
|
||||||
|
|
||||||
var server = {};
|
var server = {};
|
||||||
@@ -60,20 +61,20 @@ function addServer() {
|
|||||||
server["version"] = $("#addserver-versionselect option:selected").text();
|
server["version"] = $("#addserver-versionselect option:selected").text();
|
||||||
//server['endpoint'] =
|
//server['endpoint'] =
|
||||||
|
|
||||||
jsontomodify["servers"].push(server);
|
jsonToModify["servers"].push(server);
|
||||||
|
|
||||||
remotefs.writeFileSync(
|
remotefs.writeFileSync(
|
||||||
userdir + "\\servers.json",
|
userDir + "\\servers.json",
|
||||||
JSON.stringify(jsontomodify, null, 4)
|
JSON.stringify(jsonToModify, null, 4)
|
||||||
);
|
);
|
||||||
loadServerList();
|
loadServerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
function editServer() {
|
function editServer() {
|
||||||
var jsontomodify = JSON.parse(
|
var jsonToModify = JSON.parse(
|
||||||
remotefs.readFileSync(userdir + "\\servers.json")
|
remotefs.readFileSync(userDir + "\\servers.json")
|
||||||
);
|
);
|
||||||
$.each(jsontomodify["servers"], function (key, value) {
|
$.each(jsonToModify["servers"], function (key, value) {
|
||||||
if (value["uuid"] == getSelectedServer()) {
|
if (value["uuid"] == getSelectedServer()) {
|
||||||
value["description"] =
|
value["description"] =
|
||||||
$("#editserver-descinput").val().length == 0
|
$("#editserver-descinput").val().length == 0
|
||||||
@@ -90,27 +91,27 @@ function editServer() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
remotefs.writeFileSync(
|
remotefs.writeFileSync(
|
||||||
userdir + "\\servers.json",
|
userDir + "\\servers.json",
|
||||||
JSON.stringify(jsontomodify, null, 4)
|
JSON.stringify(jsonToModify, null, 4)
|
||||||
);
|
);
|
||||||
loadServerList();
|
loadServerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteServer() {
|
function deleteServer() {
|
||||||
var jsontomodify = JSON.parse(
|
var jsonToModify = JSON.parse(
|
||||||
remotefs.readFileSync(userdir + "\\servers.json")
|
remotefs.readFileSync(userDir + "\\servers.json")
|
||||||
);
|
);
|
||||||
var result = jsontomodify["servers"].filter(function (obj) {
|
var result = jsonToModify["servers"].filter(function (obj) {
|
||||||
return obj.uuid === getSelectedServer();
|
return obj.uuid === getSelectedServer();
|
||||||
})[0];
|
})[0];
|
||||||
|
|
||||||
var resultindex = jsontomodify["servers"].indexOf(result);
|
var resultindex = jsonToModify["servers"].indexOf(result);
|
||||||
|
|
||||||
jsontomodify["servers"].splice(resultindex, 1);
|
jsonToModify["servers"].splice(resultindex, 1);
|
||||||
|
|
||||||
remotefs.writeFileSync(
|
remotefs.writeFileSync(
|
||||||
userdir + "\\servers.json",
|
userDir + "\\servers.json",
|
||||||
JSON.stringify(jsontomodify, null, 4)
|
JSON.stringify(jsonToModify, null, 4)
|
||||||
);
|
);
|
||||||
loadServerList();
|
loadServerList();
|
||||||
}
|
}
|
||||||
@@ -118,17 +119,17 @@ function deleteServer() {
|
|||||||
function restoreDefaultServers() {
|
function restoreDefaultServers() {
|
||||||
remotefs.copySync(
|
remotefs.copySync(
|
||||||
__dirname + "\\defaults\\servers.json",
|
__dirname + "\\defaults\\servers.json",
|
||||||
userdir + "\\servers.json"
|
userDir + "\\servers.json"
|
||||||
);
|
);
|
||||||
loadServerList();
|
loadServerList();
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadGameVersions() {
|
function loadGameVersions() {
|
||||||
var versionjson = JSON.parse(
|
var versionJson = JSON.parse(
|
||||||
remotefs.readFileSync(userdir + "\\versions.json")
|
remotefs.readFileSync(userDir + "\\versions.json")
|
||||||
);
|
);
|
||||||
versionarray = versionjson["versions"];
|
versionArray = versionJson["versions"];
|
||||||
$.each(versionarray, function (key, value) {
|
$.each(versionArray, function (key, value) {
|
||||||
$(new Option(value.name, "val")).appendTo("#addserver-versionselect");
|
$(new Option(value.name, "val")).appendTo("#addserver-versionselect");
|
||||||
$(new Option(value.name, "val")).appendTo("#editserver-versionselect");
|
$(new Option(value.name, "val")).appendTo("#editserver-versionselect");
|
||||||
});
|
});
|
||||||
@@ -136,22 +137,22 @@ function loadGameVersions() {
|
|||||||
|
|
||||||
function loadConfig() {
|
function loadConfig() {
|
||||||
// load config object globally
|
// load config object globally
|
||||||
config = JSON.parse(remotefs.readFileSync(userdir + "\\config.json"));
|
config = JSON.parse(remotefs.readFileSync(userDir + "\\config.json"));
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadServerList() {
|
function loadServerList() {
|
||||||
var serverjson = JSON.parse(
|
var serverJson = JSON.parse(
|
||||||
remotefs.readFileSync(userdir + "\\servers.json")
|
remotefs.readFileSync(userDir + "\\servers.json")
|
||||||
);
|
);
|
||||||
serverarray = serverjson["servers"];
|
serverArray = serverJson["servers"];
|
||||||
|
|
||||||
$(".server-listing-entry").remove(); // Clear out old stuff, if any
|
$(".server-listing-entry").remove(); // Clear out old stuff, if any
|
||||||
disableServerListButtons(); // Disable buttons until another server is selected
|
disableServerListButtons(); // Disable buttons until another server is selected
|
||||||
|
|
||||||
if (serverarray.length > 0) {
|
if (serverArray.length > 0) {
|
||||||
// Servers were found in the JSON
|
// Servers were found in the JSON
|
||||||
$("#server-listing-placeholder").attr("hidden", true);
|
$("#server-listing-placeholder").attr("hidden", true);
|
||||||
$.each(serverarray, function (key, value) {
|
$.each(serverArray, function (key, value) {
|
||||||
// Create the row, and populate the cells
|
// Create the row, and populate the cells
|
||||||
var row = document.createElement("tr");
|
var row = document.createElement("tr");
|
||||||
row.className = "server-listing-entry";
|
row.className = "server-listing-entry";
|
||||||
@@ -172,25 +173,25 @@ function loadServerList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function performCacheSwap(newversion) {
|
function performCacheSwap(newVersion) {
|
||||||
var cacheroot = userdir + "\\..\\..\\LocalLow\\Unity\\Web Player\\Cache";
|
var cacheRoot = userDir + "\\..\\..\\LocalLow\\Unity\\Web Player\\Cache";
|
||||||
var currentcache = cacheroot + "\\Fusionfall";
|
var currentCache = cacheRoot + "\\Fusionfall";
|
||||||
var newcache = cacheroot + "\\" + newversion;
|
var newCache = cacheRoot + "\\" + newVersion;
|
||||||
var record = userdir + "\\.lastver";
|
var record = userDir + "\\.lastver";
|
||||||
|
|
||||||
// if cache renaming would result in a no-op (ex. launching the same version
|
// if cache renaming would result in a no-op (ex. launching the same version
|
||||||
// two times), then skip it. this avoids permissions errors with multiple clients
|
// two times), then skip it. this avoids permissions errors with multiple clients
|
||||||
// (file/folder is already open in another process)
|
// (file/folder is already open in another process)
|
||||||
var skip = false;
|
var skip = false;
|
||||||
|
|
||||||
if (remotefs.existsSync(currentcache)) {
|
if (remotefs.existsSync(currentCache)) {
|
||||||
// cache already exists, find out what version it belongs to
|
// cache already exists, find out what version it belongs to
|
||||||
if (remotefs.existsSync(record)) {
|
if (remotefs.existsSync(record)) {
|
||||||
lastversion = remotefs.readFileSync(record);
|
lastVersion = remotefs.readFileSync(record);
|
||||||
if (lastversion != newversion) {
|
if (lastVersion != newVersion) {
|
||||||
remotefs.renameSync(
|
remotefs.renameSync(
|
||||||
currentcache,
|
currentCache,
|
||||||
cacheroot + "\\" + lastversion
|
cacheRoot + "\\" + lastVersion
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
console.log(
|
console.log(
|
||||||
@@ -198,7 +199,7 @@ function performCacheSwap(newversion) {
|
|||||||
);
|
);
|
||||||
skip = true;
|
skip = true;
|
||||||
}
|
}
|
||||||
console.log("Current cache is " + lastversion);
|
console.log("Current cache is " + lastVersion);
|
||||||
} else {
|
} else {
|
||||||
console.log(
|
console.log(
|
||||||
"Couldn't find last version record; cache may get overwritten"
|
"Couldn't find last version record; cache may get overwritten"
|
||||||
@@ -206,29 +207,29 @@ function performCacheSwap(newversion) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (remotefs.existsSync(newcache) || !skip) {
|
if (remotefs.existsSync(newCache) || !skip) {
|
||||||
// rename saved cache to FusionFall
|
// rename saved cache to FusionFall
|
||||||
remotefs.renameSync(newcache, currentcache);
|
remotefs.renameSync(newCache, currentCache);
|
||||||
console.log("Current cache swapped to " + newversion);
|
console.log("Current cache swapped to " + newVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
// make note of what version we are launching for next launch
|
// make note of what version we are launching for next launch
|
||||||
remotefs.writeFileSync(record, newversion);
|
remotefs.writeFileSync(record, newVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
// For writing loginInfo.php, assetInfo.php, etc.
|
// For writing loginInfo.php, assetInfo.php, etc.
|
||||||
function setGameInfo(serverUUID) {
|
function setGameInfo(serverUUID) {
|
||||||
var result = serverarray.filter(function (obj) {
|
var result = serverArray.filter(function (obj) {
|
||||||
return obj.uuid === serverUUID;
|
return obj.uuid === serverUUID;
|
||||||
})[0];
|
})[0];
|
||||||
var gameversion = versionarray.filter(function (obj) {
|
var gameVersion = versionArray.filter(function (obj) {
|
||||||
return obj.name === result.version;
|
return obj.name === result.version;
|
||||||
})[0];
|
})[0];
|
||||||
|
|
||||||
// if cache swapping property exists AND is `true`, run cache swapping logic
|
// if cache swapping property exists AND is `true`, run cache swapping logic
|
||||||
if (config["cache-swapping"]) {
|
if (config["cache-swapping"]) {
|
||||||
try {
|
try {
|
||||||
performCacheSwap(gameversion.name);
|
performCacheSwap(gameVersion.name);
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
console.log(
|
console.log(
|
||||||
"Error when swapping cache, it may get overwritten:\n" + ex
|
"Error when swapping cache, it may get overwritten:\n" + ex
|
||||||
@@ -236,23 +237,23 @@ function setGameInfo(serverUUID) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.asseturl = gameversion.url; // gameclient.js needs to access this
|
window.assetUrl = gameVersion.url; // game-client.js needs to access this
|
||||||
|
|
||||||
remotefs.writeFileSync(__dirname + "\\assetInfo.php", asseturl);
|
remotefs.writeFileSync(__dirname + "\\assetInfo.php", assetUrl);
|
||||||
if (result.hasOwnProperty("endpoint")) {
|
if (result.hasOwnProperty("endpoint")) {
|
||||||
var httpendpoint = result.endpoint.replace("https://", "http://");
|
var httpEndpoint = result.endpoint.replace("https://", "http://");
|
||||||
remotefs.writeFileSync(
|
remotefs.writeFileSync(
|
||||||
__dirname + "\\rankurl.txt",
|
__dirname + "\\rankurl.txt",
|
||||||
httpendpoint + "getranks"
|
httpEndpoint + "getranks"
|
||||||
);
|
);
|
||||||
// Write these out too
|
// Write these out too
|
||||||
remotefs.writeFileSync(
|
remotefs.writeFileSync(
|
||||||
__dirname + "\\sponsor.php",
|
__dirname + "\\sponsor.php",
|
||||||
httpendpoint + "upsell/sponsor.png"
|
httpEndpoint + "upsell/sponsor.png"
|
||||||
);
|
);
|
||||||
remotefs.writeFileSync(
|
remotefs.writeFileSync(
|
||||||
__dirname + "\\images.php",
|
__dirname + "\\images.php",
|
||||||
httpendpoint + "upsell/"
|
httpEndpoint + "upsell/"
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// Remove/default the endpoint related stuff, this server won't be using it
|
// Remove/default the endpoint related stuff, this server won't be using it
|
||||||
@@ -280,10 +281,10 @@ function setGameInfo(serverUUID) {
|
|||||||
|
|
||||||
// DNS resolution. there is no synchronous version for some stupid reason
|
// DNS resolution. there is no synchronous version for some stupid reason
|
||||||
if (!address.match(/^[0-9.]+$/))
|
if (!address.match(/^[0-9.]+$/))
|
||||||
dns.resolve4(address, function (err, res) {
|
dns.lookup(address, family=4, function (err, resolvedAddress) {
|
||||||
if (!err) {
|
if (!err) {
|
||||||
console.log("Resolved " + address + " to " + res[0]);
|
console.log("Resolved " + address + " to " + resolvedAddress);
|
||||||
address = res[0];
|
address = resolvedAddress;
|
||||||
} else {
|
} else {
|
||||||
console.log("Err: " + err.code);
|
console.log("Err: " + err.code);
|
||||||
}
|
}
|
||||||
@@ -341,10 +342,10 @@ $("#server-table").on("dblclick", ".server-listing-entry", function (event) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#of-editservermodal").on("show.bs.modal", function (e) {
|
$("#of-editservermodal").on("show.bs.modal", function (e) {
|
||||||
var jsontomodify = JSON.parse(
|
var jsonToModify = JSON.parse(
|
||||||
remotefs.readFileSync(userdir + "\\servers.json")
|
remotefs.readFileSync(userDir + "\\servers.json")
|
||||||
);
|
);
|
||||||
$.each(jsontomodify["servers"], function (key, value) {
|
$.each(jsonToModify["servers"], function (key, value) {
|
||||||
if (value["uuid"] == getSelectedServer()) {
|
if (value["uuid"] == getSelectedServer()) {
|
||||||
$("#editserver-descinput")[0].value = value["description"];
|
$("#editserver-descinput")[0].value = value["description"];
|
||||||
$("#editserver-ipinput")[0].value = value["ip"];
|
$("#editserver-ipinput")[0].value = value["ip"];
|
||||||
@@ -361,7 +362,7 @@ $("#of-editservermodal").on("show.bs.modal", function (e) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#of-deleteservermodal").on("show.bs.modal", function (e) {
|
$("#of-deleteservermodal").on("show.bs.modal", function (e) {
|
||||||
var result = serverarray.filter(function (obj) {
|
var result = serverArray.filter(function (obj) {
|
||||||
return obj.uuid === getSelectedServer();
|
return obj.uuid === getSelectedServer();
|
||||||
})[0];
|
})[0];
|
||||||
$("#deleteserver-servername").html(result.description);
|
$("#deleteserver-servername").html(result.description);
|
||||||
8
build/OpenFusionClient.exe.manifest
Normal file
8
build/OpenFusionClient.exe.manifest
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
|
||||||
|
<asmv3:application>
|
||||||
|
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">
|
||||||
|
<activeCodePage>UTF-8</activeCodePage>
|
||||||
|
<dpiAware>true</dpiAware>
|
||||||
|
</asmv3:windowsSettings>
|
||||||
|
</asmv3:application>
|
||||||
|
</assembly>
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<plist>
|
<plist>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.5.5b4</string>
|
<string>2.5.5b4</string>
|
||||||
<key>UnityBuildNumber</key>
|
<key>UnityBuildNumber</key>
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
Binary file not shown.
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<plist>
|
<plist>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>3.5.2f2</string>
|
<string>2.5.5b4</string>
|
||||||
<key>UnityBuildNumber</key>
|
<key>UnityBuildNumber</key>
|
||||||
<string>4c6ee796dacc</string>
|
<string>50</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<plist>
|
<plist>
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.5.5b4</string>
|
<string>2.5.5b4</string>
|
||||||
<key>UnityBuildNumber</key>
|
<key>UnityBuildNumber</key>
|
||||||
<string>50</string>
|
<string>50</string>
|
||||||
<key>monoVersion</key>
|
<key>monoVersion</key>
|
||||||
<string>fusion-2.x.x</string>
|
<string>fusion-2.x.x</string>
|
||||||
<key>monoMinimumRevision</key>
|
<key>monoMinimumRevision</key>
|
||||||
<string>2.0.0f6</string>
|
<string>2.0.0f6</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const defaultdir = './dist/win-ia32-unpacked/resources/default_app'
|
const defaultDir = './dist/win-ia32-unpacked/resources/default_app'
|
||||||
const exefile = './dist/win-ia32-unpacked/OpenFusionClient.exe'
|
const exeFile = './dist/win-ia32-unpacked/OpenFusionClient.exe'
|
||||||
|
|
||||||
exports.default = function() {
|
exports.default = function() {
|
||||||
// remove leftover files from default electron app
|
// remove leftover files from default electron app
|
||||||
fs.rm(dir, { recursive: true }, (err) => {
|
fs.rm(defaultDir, { recursive: true }, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// patch executable for large address awareness
|
// patch executable for large address awareness
|
||||||
fs.open(exefile, "r+", (err, fd) => {
|
fs.open(exeFile, "r+", (err, fd) => {
|
||||||
if(!err) {
|
if(!err) {
|
||||||
fs.write(
|
fs.write(
|
||||||
fd, new Uint8Array([0x22]), 0, 1, 0x166,
|
fd, new Uint8Array([0x22]), 0, 1, 0x166,
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
46
index.html
46
index.html
@@ -3,27 +3,18 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta
|
<meta
|
||||||
name="viewport"
|
http-equiv="Content-Type"
|
||||||
content="width=device-width, initial-scale=1.0, shrink-to-fit=no"
|
contentType="text/html; charset=UTF-8"
|
||||||
/>
|
/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>OpenFusion: Server Selector</title>
|
<title>OpenFusion: Server Selector</title>
|
||||||
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css" />
|
<link rel="stylesheet" href="assets/css/bootstrap.min.css" />
|
||||||
<link rel="stylesheet" href="assets/fonts/fontawesome-all.min.css" />
|
<link rel="stylesheet" href="assets/fonts/fontawesome-all.min.css" />
|
||||||
<link rel="stylesheet" href="assets/css/openfusion.css" />
|
<link rel="stylesheet" href="assets/css/openfusion.css" />
|
||||||
<link rel="stylesheet" href="assets/css/styles.css" />
|
<link rel="stylesheet" href="assets/css/styles.css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body
|
<body onresize="onResize()">
|
||||||
style="
|
|
||||||
background: rgb(0, 0, 0);
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
clear: both;
|
|
||||||
"
|
|
||||||
onresize="onResize()"
|
|
||||||
>
|
|
||||||
<section id="of-serverselector">
|
<section id="of-serverselector">
|
||||||
<div class="container" id="serverselector-container">
|
<div class="container" id="serverselector-container">
|
||||||
<div class="row text-center mt-3" id="of-logoheader">
|
<div class="row text-center mt-3" id="of-logoheader">
|
||||||
@@ -151,7 +142,12 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p id="of-aboutversionnumber" class="text-monospace">APP_VERSION_NUMBER</p>
|
<p
|
||||||
|
id="of-aboutversionnumber"
|
||||||
|
class="text-monospace"
|
||||||
|
>
|
||||||
|
APP_VERSION_NUMBER
|
||||||
|
</p>
|
||||||
<p>
|
<p>
|
||||||
©2020-2023 OpenFusion Contributors<br />OpenFusion
|
©2020-2023 OpenFusion Contributors<br />OpenFusion
|
||||||
is licensed under MIT.<br />
|
is licensed under MIT.<br />
|
||||||
@@ -459,28 +455,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<div
|
<div id="client"></div>
|
||||||
id="client"
|
|
||||||
style="
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
background: #000;
|
|
||||||
clear: both;
|
|
||||||
"
|
|
||||||
></div>
|
|
||||||
</section>
|
</section>
|
||||||
<script
|
<script
|
||||||
src="assets/js/jquery.min.js"
|
src="assets/js/jquery.min.js"
|
||||||
onload="window.$ = window.jQuery = module.exports;"
|
onload="window.$ = window.jQuery = module.exports;"
|
||||||
></script>
|
></script>
|
||||||
<script src="assets/bootstrap/js/bootstrap.min.js"></script>
|
<script src="assets/js/bootstrap.min.js"></script>
|
||||||
<script src="assets/js/bs-init.js"></script>
|
<script src="assets/js/bs-init.js"></script>
|
||||||
<script src="assets/js/uuidv4.min.js"></script>
|
<script src="assets/js/uuidv4.min.js"></script>
|
||||||
<script src="assets/js/serverselector.js"></script>
|
<script src="assets/js/server-selector.js"></script>
|
||||||
<script src="assets/js/gameclient.js"></script>
|
<script src="assets/js/game-client.js"></script>
|
||||||
<script src="assets/js/snowflakes.min.js"></script>
|
<script src="assets/js/snowflakes.min.js"></script>
|
||||||
<script src="assets/js/eastereggs.js"></script>
|
<script src="assets/js/easter-eggs.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
167
index.js
167
index.js
@@ -1,58 +1,31 @@
|
|||||||
var app = require("app"); // Module to control application life.
|
var app = require("app"); // Module to control application life.
|
||||||
var ipc = require("ipc");
|
|
||||||
var fs = require("fs-extra");
|
|
||||||
var os = require("os");
|
|
||||||
var dialog = require("dialog");
|
var dialog = require("dialog");
|
||||||
var BrowserWindow = require("browser-window");
|
var fs = require("fs-extra");
|
||||||
|
var ipc = require("ipc");
|
||||||
|
var os = require("os");
|
||||||
|
var path = require("path");
|
||||||
|
|
||||||
|
var BrowserWindow = require("browser-window");
|
||||||
var mainWindow = null;
|
var mainWindow = null;
|
||||||
|
|
||||||
app.commandLine.appendSwitch("--enable-npapi");
|
var userData = app.getPath("userData");
|
||||||
|
var unityHomeDir = path.join(__dirname, "../../WebPlayer");
|
||||||
|
|
||||||
function verifyUnity() {
|
// if running in non-packaged / development mode, this dir will be slightly different
|
||||||
var dllpath =
|
if (process.env.npm_node_execpath) {
|
||||||
app.getPath("appData") +
|
unityHomeDir = path.join(app.getAppPath(), "/build/WebPlayer");
|
||||||
"\\..\\LocalLow\\Unity\\WebPlayer\\player\\fusion-2.x.x\\webplayer_win.dll";
|
|
||||||
|
|
||||||
if (fs.existsSync(dllpath)) {
|
|
||||||
var buff = fs.readFileSync(dllpath);
|
|
||||||
var hash = require("crypto")
|
|
||||||
.createHash("md5")
|
|
||||||
.update(buff)
|
|
||||||
.digest("hex");
|
|
||||||
if (hash == "e5028405b4483de9e5e5fe9cd5f1e98f") {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function installUnity(callback) {
|
process.env["UNITY_HOME_DIR"] = unityHomeDir;
|
||||||
var utilsdir = __dirname + "\\..\\..\\utils";
|
process.env["UNITY_DISABLE_PLUGIN_UPDATES"] = "yes";
|
||||||
|
|
||||||
// if running in non-packaged / development mode, this dir will be slightly different
|
app.commandLine.appendSwitch("enable-npapi");
|
||||||
if (process.env.npm_node_execpath) {
|
app.commandLine.appendSwitch("load-plugin", path.join(unityHomeDir, "/loader/npUnity3D32.dll"));
|
||||||
utilsdir = app.getAppPath() + "\\build\\utils";
|
app.commandLine.appendSwitch("no-proxy-server");
|
||||||
}
|
|
||||||
|
|
||||||
// run the installer silently
|
var configPath = path.join(userData, "/config.json");
|
||||||
var child = require("child_process").spawn(
|
var serversPath = path.join(userData, "/servers.json");
|
||||||
utilsdir + "\\UnityWebPlayer.exe",
|
var versionsPath = path.join(userData, "/versions.json");
|
||||||
["/quiet", "/S"]
|
|
||||||
);
|
|
||||||
child.on("exit", function () {
|
|
||||||
// overwrite 3.5.2 loader/player with FF's custom version
|
|
||||||
var dstfolder =
|
|
||||||
app.getPath("appData") + "..\\LocalLow\\Unity\\WebPlayer";
|
|
||||||
fs.copySync(utilsdir + "\\WebPlayer", dstfolder, {
|
|
||||||
clobber: true,
|
|
||||||
});
|
|
||||||
// avoids error reporter popping up when closing Electron
|
|
||||||
fs.removeSync(dstfolder + "\\UnityBugReporter.exe");
|
|
||||||
console.log("Unity Web Player installed successfully.");
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function initialSetup(firstTime) {
|
function initialSetup(firstTime) {
|
||||||
// Display a small window to inform the user that the app is working
|
// Display a small window to inform the user that the app is working
|
||||||
@@ -63,46 +36,29 @@ function initialSetup(firstTime) {
|
|||||||
center: true,
|
center: true,
|
||||||
frame: false,
|
frame: false,
|
||||||
});
|
});
|
||||||
setupWindow.loadUrl("file://" + __dirname + "/initialsetup.html");
|
if (!firstTime) {
|
||||||
installUnity(function () {
|
// migration from pre-1.4
|
||||||
if (!firstTime) {
|
// Back everything up, just in case
|
||||||
// migration from pre-1.4
|
setupWindow.loadUrl("file://" + __dirname + "/initial-setup.html");
|
||||||
// Back everything up, just in case
|
fs.copySync(configPath, configPath + ".bak");
|
||||||
fs.copySync(
|
fs.copySync(serversPath, serversPath + ".bak");
|
||||||
app.getPath("userData") + "\\config.json",
|
fs.copySync(versionsPath, versionsPath + ".bak");
|
||||||
app.getPath("userData") + "\\config.json.bak"
|
} else {
|
||||||
);
|
// first-time setup
|
||||||
fs.copySync(
|
// Copy default servers
|
||||||
app.getPath("userData") + "\\servers.json",
|
|
||||||
app.getPath("userData") + "\\servers.json.bak"
|
|
||||||
);
|
|
||||||
fs.copySync(
|
|
||||||
app.getPath("userData") + "\\versions.json",
|
|
||||||
app.getPath("userData") + "\\versions.json.bak"
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// first-time setup
|
|
||||||
// Copy default servers
|
|
||||||
fs.copySync(
|
|
||||||
__dirname + "\\defaults\\servers.json",
|
|
||||||
app.getPath("userData") + "\\servers.json"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Copy default versions and config
|
|
||||||
fs.copySync(
|
fs.copySync(
|
||||||
__dirname + "\\defaults\\versions.json",
|
path.join(__dirname, "/defaults/servers.json"),
|
||||||
app.getPath("userData") + "\\versions.json"
|
serversPath
|
||||||
);
|
|
||||||
fs.copySync(
|
|
||||||
__dirname + "\\defaults\\config.json",
|
|
||||||
app.getPath("userData") + "\\config.json"
|
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
console.log("JSON files copied.");
|
// Copy default versions and config
|
||||||
setupWindow.destroy();
|
fs.copySync(path.join(__dirname, "/defaults/versions.json"), versionsPath);
|
||||||
showMainWindow();
|
fs.copySync(path.join(__dirname, "/defaults/config.json"), configPath);
|
||||||
});
|
|
||||||
|
console.log("JSON files copied.");
|
||||||
|
setupWindow.destroy();
|
||||||
|
showMainWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
ipc.on("exit", function (id) {
|
ipc.on("exit", function (id) {
|
||||||
@@ -116,26 +72,26 @@ app.on("window-all-closed", function () {
|
|||||||
|
|
||||||
app.on("ready", function () {
|
app.on("ready", function () {
|
||||||
// Check just in case the user forgot to extract the zip.
|
// Check just in case the user forgot to extract the zip.
|
||||||
zip_check = app.getPath("exe").includes(os.tmpdir());
|
zipCheck = app.getPath("exe").includes(os.tmpdir());
|
||||||
if (zip_check) {
|
if (zipCheck) {
|
||||||
errormsg =
|
var errorMessage =
|
||||||
"It has been detected that OpenFusionClient is running from the TEMP folder.\n\n" +
|
"It has been detected that OpenFusionClient is running from the TEMP folder.\n\n" +
|
||||||
"Please extract the entire Client folder to a location of your choice before starting OpenFusionClient.";
|
"Please extract the entire Client folder to a location of your choice before starting OpenFusionClient.";
|
||||||
dialog.showErrorBox("Error!", errormsg);
|
dialog.showErrorBox("Error!", errorMessage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the browser window.
|
// Create the browser window.
|
||||||
mainWindow = new BrowserWindow({
|
mainWindow = new BrowserWindow({
|
||||||
width: 1280,
|
width: 1280,
|
||||||
height: 720,
|
height: 720,
|
||||||
show: false,
|
show: false,
|
||||||
"web-preferences": { plugins: true },
|
"web-preferences": {
|
||||||
|
plugins: true
|
||||||
|
},
|
||||||
});
|
});
|
||||||
mainWindow.setMinimumSize(640, 480);
|
mainWindow.setMinimumSize(640, 480);
|
||||||
|
|
||||||
// Check for first run
|
// Check for first run
|
||||||
var configPath = app.getPath("userData") + "\\config.json";
|
|
||||||
try {
|
try {
|
||||||
if (!fs.existsSync(configPath)) {
|
if (!fs.existsSync(configPath)) {
|
||||||
console.log("Config file not found. Running initial setup.");
|
console.log("Config file not found. Running initial setup.");
|
||||||
@@ -146,20 +102,20 @@ app.on("ready", function () {
|
|||||||
console.log("Pre-1.4 config detected. Running migration.");
|
console.log("Pre-1.4 config detected. Running migration.");
|
||||||
initialSetup(false);
|
initialSetup(false);
|
||||||
} else {
|
} else {
|
||||||
if (verifyUnity()) {
|
showMainWindow();
|
||||||
showMainWindow();
|
|
||||||
} else {
|
|
||||||
installUnity(showMainWindow);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
console.log("An error occurred while checking for the config");
|
dialog.showErrorBox(
|
||||||
|
"Error!",
|
||||||
|
"An error occurred while checking for the config. Make sure you have sufficent permissions."
|
||||||
|
);
|
||||||
|
app.quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Makes it so external links are opened in the system browser, not Electron
|
// Makes it so external links are opened in the system browser, not Electron
|
||||||
mainWindow.webContents.on("new-window", function (e, url) {
|
mainWindow.webContents.on("new-window", function (event, url) {
|
||||||
e.preventDefault();
|
event.preventDefault();
|
||||||
require("shell").openExternal(url);
|
require("shell").openExternal(url);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -183,19 +139,24 @@ function showMainWindow() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
mainWindow.webContents.on("plugin-crashed", function () {
|
mainWindow.webContents.on("plugin-crashed", function () {
|
||||||
console.log("Unity Web Player crashed.");
|
var errorMessage =
|
||||||
|
"Unity Web Player has crashed - please re-open the application.\n" +
|
||||||
|
"If this error persists, please read the FAQ or ask for support in our Discord server.";
|
||||||
|
dialog.showErrorBox("Error!", errorMessage);
|
||||||
|
mainWindow.destroy();
|
||||||
|
app.quit();
|
||||||
});
|
});
|
||||||
|
|
||||||
mainWindow.webContents.on("will-navigate", function (evt, url) {
|
mainWindow.webContents.on("will-navigate", function (event, url) {
|
||||||
evt.preventDefault();
|
event.preventDefault();
|
||||||
// TODO: showMessageBox rather than showErrorBox?
|
// TODO: showMessageBox rather than showErrorBox?
|
||||||
switch (url) {
|
switch (url) {
|
||||||
case "https://audience.fusionfall.com/ff/regWizard.do?_flowId=fusionfall-registration-flow":
|
case "https://audience.fusionfall.com/ff/regWizard.do?_flowId=fusionfall-registration-flow":
|
||||||
errormsg =
|
var errorMessage =
|
||||||
"The register page is currently unimplemented.\n\n" +
|
"The register page is currently unimplemented.\n\n" +
|
||||||
'You can still create an account: type your desired username and password into the provided boxes and click "Log In". ' +
|
'You can still create an account: type your desired username and password into the provided boxes and click "Log In". ' +
|
||||||
"Your account will then be automatically created on the server. \nBe sure to remember these details!";
|
"Your account will then be automatically created on the server. \nBe sure to remember these details!";
|
||||||
dialog.showErrorBox("Sorry!", errormsg);
|
dialog.showErrorBox("Sorry!", errorMessage);
|
||||||
break;
|
break;
|
||||||
case "https://audience.fusionfall.com/ff/login.do":
|
case "https://audience.fusionfall.com/ff/login.do":
|
||||||
dialog.showErrorBox(
|
dialog.showErrorBox(
|
||||||
@@ -207,7 +168,7 @@ function showMainWindow() {
|
|||||||
require("shell").openExternal("https://discord.gg/DYavckB");
|
require("shell").openExternal("https://discord.gg/DYavckB");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
mainWindow.webContents.loadURL(url);
|
mainWindow.loadUrl(url);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
84
package-lock.json
generated
84
package-lock.json
generated
@@ -1,16 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "OpenFusionClient",
|
"name": "OpenFusionClient",
|
||||||
"version": "1.4.0",
|
"version": "1.4.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "OpenFusionClient",
|
"name": "OpenFusionClient",
|
||||||
"version": "1.4.0",
|
"version": "1.4.1",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs-extra": "^0.30.0"
|
"fs-extra": "2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"electron-builder": "^22.14.13",
|
"electron-builder": "^22.14.13",
|
||||||
@@ -746,7 +746,8 @@
|
|||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/base64-js": {
|
"node_modules/base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
@@ -830,6 +831,7 @@
|
|||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
@@ -1333,7 +1335,8 @@
|
|||||||
"node_modules/concat-map": {
|
"node_modules/concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/concat-stream": {
|
"node_modules/concat-stream": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
@@ -2021,15 +2024,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fs-extra": {
|
"node_modules/fs-extra": {
|
||||||
"version": "0.30.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.0.0.tgz",
|
||||||
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
|
"integrity": "sha512-DERmRq6uGnu7I4uFJiWQBe5pYy67v2oKowEi8jYA/52u/ZO9xXBP2HAGacD9Nus0UT/WhJFZTq8cWbxZqOHVUg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.1.2",
|
||||||
"jsonfile": "^2.1.0",
|
"jsonfile": "^2.1.0"
|
||||||
"klaw": "^1.0.0",
|
|
||||||
"path-is-absolute": "^1.0.0",
|
|
||||||
"rimraf": "^2.2.8"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fs-extra/node_modules/jsonfile": {
|
"node_modules/fs-extra/node_modules/jsonfile": {
|
||||||
@@ -2095,6 +2095,7 @@
|
|||||||
"version": "6.0.4",
|
"version": "6.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
||||||
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
"inherits": "2",
|
"inherits": "2",
|
||||||
@@ -2406,6 +2407,7 @@
|
|||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"once": "^1.3.0",
|
"once": "^1.3.0",
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
@@ -2414,7 +2416,8 @@
|
|||||||
"node_modules/inherits": {
|
"node_modules/inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/ini": {
|
"node_modules/ini": {
|
||||||
"version": "1.3.8",
|
"version": "1.3.8",
|
||||||
@@ -2711,14 +2714,6 @@
|
|||||||
"json-buffer": "3.0.0"
|
"json-buffer": "3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/klaw": {
|
|
||||||
"version": "1.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
|
|
||||||
"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
|
|
||||||
"optionalDependencies": {
|
|
||||||
"graceful-fs": "^4.1.9"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/klaw-sync": {
|
"node_modules/klaw-sync": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
||||||
@@ -2915,6 +2910,7 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
},
|
},
|
||||||
@@ -3052,6 +3048,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@@ -3215,6 +3212,7 @@
|
|||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||||
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
@@ -3603,6 +3601,7 @@
|
|||||||
"version": "2.4.5",
|
"version": "2.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
|
||||||
"integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
|
"integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"glob": "^6.0.1"
|
"glob": "^6.0.1"
|
||||||
},
|
},
|
||||||
@@ -4379,7 +4378,8 @@
|
|||||||
"node_modules/wrappy": {
|
"node_modules/wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/write-file-atomic": {
|
"node_modules/write-file-atomic": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
@@ -5049,7 +5049,8 @@
|
|||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"base64-js": {
|
"base64-js": {
|
||||||
"version": "1.5.1",
|
"version": "1.5.1",
|
||||||
@@ -5109,6 +5110,7 @@
|
|||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
@@ -5485,7 +5487,8 @@
|
|||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"concat-stream": {
|
"concat-stream": {
|
||||||
"version": "1.6.2",
|
"version": "1.6.2",
|
||||||
@@ -6054,15 +6057,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fs-extra": {
|
"fs-extra": {
|
||||||
"version": "0.30.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.0.0.tgz",
|
||||||
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
|
"integrity": "sha512-DERmRq6uGnu7I4uFJiWQBe5pYy67v2oKowEi8jYA/52u/ZO9xXBP2HAGacD9Nus0UT/WhJFZTq8cWbxZqOHVUg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.1.2",
|
||||||
"jsonfile": "^2.1.0",
|
"jsonfile": "^2.1.0"
|
||||||
"klaw": "^1.0.0",
|
|
||||||
"path-is-absolute": "^1.0.0",
|
|
||||||
"rimraf": "^2.2.8"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"jsonfile": {
|
"jsonfile": {
|
||||||
@@ -6121,6 +6121,7 @@
|
|||||||
"version": "6.0.4",
|
"version": "6.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
|
||||||
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
"integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"inflight": "^1.0.4",
|
"inflight": "^1.0.4",
|
||||||
"inherits": "2",
|
"inherits": "2",
|
||||||
@@ -6349,6 +6350,7 @@
|
|||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"once": "^1.3.0",
|
"once": "^1.3.0",
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
@@ -6357,7 +6359,8 @@
|
|||||||
"inherits": {
|
"inherits": {
|
||||||
"version": "2.0.4",
|
"version": "2.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"ini": {
|
"ini": {
|
||||||
"version": "1.3.8",
|
"version": "1.3.8",
|
||||||
@@ -6580,14 +6583,6 @@
|
|||||||
"json-buffer": "3.0.0"
|
"json-buffer": "3.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"klaw": {
|
|
||||||
"version": "1.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
|
|
||||||
"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
|
|
||||||
"requires": {
|
|
||||||
"graceful-fs": "^4.1.9"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"klaw-sync": {
|
"klaw-sync": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
|
||||||
@@ -6738,6 +6733,7 @@
|
|||||||
"version": "3.0.4",
|
"version": "3.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"brace-expansion": "^1.1.7"
|
"brace-expansion": "^1.1.7"
|
||||||
}
|
}
|
||||||
@@ -6848,6 +6844,7 @@
|
|||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"wrappy": "1"
|
"wrappy": "1"
|
||||||
}
|
}
|
||||||
@@ -6971,7 +6968,8 @@
|
|||||||
"path-is-absolute": {
|
"path-is-absolute": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"path-key": {
|
"path-key": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
@@ -7272,6 +7270,7 @@
|
|||||||
"version": "2.4.5",
|
"version": "2.4.5",
|
||||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
|
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
|
||||||
"integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
|
"integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "^6.0.1"
|
"glob": "^6.0.1"
|
||||||
}
|
}
|
||||||
@@ -7882,7 +7881,8 @@
|
|||||||
"wrappy": {
|
"wrappy": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"write-file-atomic": {
|
"write-file-atomic": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.3",
|
||||||
|
|||||||
16
package.json
16
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "OpenFusionClient",
|
"name": "OpenFusionClient",
|
||||||
"version": "1.4.1",
|
"version": "1.4.3",
|
||||||
"description": "OpenFusionClient",
|
"description": "OpenFusionClient",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/OpenFusionProject/Client.git"
|
"url": "https://github.com/OpenFusionProject/OpenFusionClient.git"
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"appId": "xyz.openfusion.client",
|
"appId": "xyz.openfusion.client",
|
||||||
@@ -63,13 +63,17 @@
|
|||||||
"extraFiles": [
|
"extraFiles": [
|
||||||
"LICENSE.md",
|
"LICENSE.md",
|
||||||
{
|
{
|
||||||
"from": "build/utils",
|
"from": "build/OpenFusionClient.exe.manifest",
|
||||||
"to": "utils"
|
"to": "OpenFusionClient.exe.manifest"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": "build/WebPlayer",
|
||||||
|
"to": "WebPlayer"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"afterPack": "./build/afterpack.js"
|
"afterPack": "./build/after-pack.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fs-extra": "^0.30.0"
|
"fs-extra": "2.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user