219 lines
9.1 KiB
HTML
219 lines
9.1 KiB
HTML
<html>
|
||
<head>
|
||
<title>Solar Client</title>
|
||
<author>Solar Client</author>
|
||
<link rel="stylesheet" href="index.css" />
|
||
<meta http-Equiv="Cache-Control" Content="no-cache" />
|
||
<meta http-Equiv="Pragma" Content="no-cache" />
|
||
<meta http-Equiv="Expires" Content="0" />
|
||
</head>
|
||
<body>
|
||
<div id="main">
|
||
<div class="form-popup" id="accountPopup">
|
||
<div class="header">
|
||
<button id="close-popup" onclick="accountPopup()">x</button>
|
||
</div>
|
||
<div class="form-container">
|
||
<img src="pfp.png" id="pfp" draggable="false"></img>
|
||
<h2 id="accountName"></h2>
|
||
<button id="switchAccount" onclick="switchAccount()"><p>Switch Account</p></button>
|
||
</div>
|
||
</div>
|
||
<div class="form-popup" id="switchAccountPopup">
|
||
<div class="header">
|
||
<button id="close-popup" onclick="resetAccountPopup()">←</button>
|
||
</div>
|
||
<div class="form-container">
|
||
<h2 class="select-account">Select Account</h2>
|
||
<div class="accounts" id="accountSelect">
|
||
<div class="account-select"><button id="addAccount" onclick="loginPopup()">+ Add Account</button> </div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="form-popup" id="loginPopup">
|
||
<div class="header">
|
||
<button id="close-popup" onclick="resetAccountPopup()">←</button>
|
||
</div>
|
||
<div class="form-container">
|
||
<label for="email">Email</label>
|
||
<input id="email" type="text" placeholder="Enter Email" name="email" required>
|
||
<label for="psw">Password</label>
|
||
<input id="password" type="password" placeholder="Enter Password" name="psw" required>
|
||
<button type="submit" class="btn" onclick="login()">Login</button>
|
||
</div>
|
||
</div>
|
||
<div class="form-popup" id="settingsPopup">
|
||
<div class="header">
|
||
<button id="close-popup" onclick="settingsPopup()">x</button>
|
||
</div>
|
||
<div class="form-container">
|
||
<h2>Ram</h2>
|
||
<p id="minRam">1</p>
|
||
<input type="range" min="1" max="1" value="1" class="slider" id="ram" onchange="setRam(this.value)">
|
||
<p id="maxRam">1</p>
|
||
</div>
|
||
</div>
|
||
<div id="title-bar">
|
||
<div id="title-bar-btns">
|
||
<button id="login-btn" onclick="resetAccountPopup()">ACCOUNT</button>
|
||
<button id="settings-btn" onclick="resetSettingsPopup()">SETTINGS</button>
|
||
<button id="min-btn">–</button>
|
||
<button id="close-btn">x</button>
|
||
</div>
|
||
</div>
|
||
<div id="content">
|
||
<div id="logo">
|
||
<img id="logo-img" src="Nova.png" draggable="false" onclick="clicked()">
|
||
</div>
|
||
</div>
|
||
<div id="news">
|
||
<img src="loading.gif" width="50px">
|
||
<iframe id="inlineFrameExample"
|
||
src="http://192.95.4.92/launchernews.html">
|
||
</iframe>
|
||
</div>
|
||
<div id="footer">
|
||
<p id="left">Solar Client ©</p>
|
||
<p id="right">Not Affliated With Mojang AB</p>
|
||
</div>
|
||
<div id="launch">
|
||
<div id="launch-btn"onclick="launch()">
|
||
<img src="launch.png" draggable="false">
|
||
<p id="launch-txt">LAUNCH</p>
|
||
<img id="loading" src="loading.gif" draggable="false">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script src="html.js"></script>
|
||
<script src="index.js"></script>
|
||
<script>
|
||
var opn = require('opn');
|
||
var si = require('systeminformation');
|
||
|
||
function clicked() {
|
||
opn('https://discord.gg/DPpBg6Z');
|
||
}
|
||
function accountPopup() {
|
||
if (document.getElementById("accountPopup").style.display == "block") {
|
||
//Close
|
||
document.getElementById("accountPopup").style.display = "none";
|
||
} else {
|
||
//Open
|
||
document.getElementById("accountPopup").style.display = "block";
|
||
|
||
}
|
||
}
|
||
|
||
function settingsPopup() {
|
||
if (document.getElementById("settingsPopup").style.display == "block") {
|
||
//Close
|
||
document.getElementById("settingsPopup").style.display = "none";
|
||
} else {
|
||
//Open
|
||
document.getElementById("settingsPopup").style.display = "block";
|
||
|
||
}
|
||
}
|
||
|
||
function switchAccount() {
|
||
//Close Account Menu
|
||
document.getElementById("accountPopup").style.display = "none";
|
||
//Open Switch Account Menu
|
||
document.getElementById("switchAccountPopup").style.display = "block";
|
||
}
|
||
|
||
function loginPopup() {
|
||
//Close Switch Account Menu
|
||
document.getElementById("switchAccountPopup").style.display = "none";
|
||
//Open Login Menu
|
||
document.getElementById("loginPopup").style.display = "block";
|
||
}
|
||
|
||
function resetAccountPopup() {
|
||
//Close Switch Account / Login Menu
|
||
document.getElementById("switchAccountPopup").style.display = "none";
|
||
document.getElementById("loginPopup").style.display = "none";
|
||
//Open Account Menu
|
||
document.getElementById("accountPopup").style.display = "block";
|
||
}
|
||
|
||
function resetSettingsPopup() {
|
||
document.getElementById("settingsPopup").style.display = "block";
|
||
}
|
||
|
||
function setRam(amount) {
|
||
amount = parseInt(amount);
|
||
fs.readFile('./info.json', 'utf8', (err, jsonString) => {
|
||
const config = JSON.parse(jsonString);
|
||
config.ram = amount;
|
||
fs.writeFileSync('./info.json', JSON.stringify(config, null, 2));
|
||
});
|
||
}
|
||
|
||
si.mem((mem) => {
|
||
const ram = Math.floor((mem.total / 1000000000));
|
||
document.getElementById("ram").max = ram;
|
||
document.getElementById("maxRam").innerText = (ram).toString();
|
||
fs.readFile('./info.json', 'utf8', (err, jsonString) => {
|
||
const config = JSON.parse(jsonString);
|
||
document.getElementById("ram").value = config.ram.toString();
|
||
});
|
||
})
|
||
|
||
fs.readFile('./info.json', 'utf8', (err, jsonString) => {
|
||
if (err) {
|
||
console.log("File read failed:", err)
|
||
return
|
||
}
|
||
const config = JSON.parse(jsonString);
|
||
const selected = config.selected;
|
||
if (selected == "") {
|
||
|
||
} else {
|
||
document.getElementById("pfp").src = "https://visage.surgeplay.com/face/" + selected;
|
||
document.getElementById("accountName").innerText = config.accounts [selected].displayName;
|
||
const accountSelect = document.getElementById("accountSelect");
|
||
}
|
||
|
||
var accounts = Object.entries(config.accounts);
|
||
|
||
for (var i = 0; i < accounts.length; i++) {
|
||
var accountData = accounts[i];
|
||
var account = document.createElement("div");
|
||
account.className = "account-select";
|
||
account.id = accountData[0];
|
||
account.addEventListener("click", (e) => selectAccount(event));
|
||
var accountButton = document.createElement("button");
|
||
var accountJson = config.accounts [accountData[0]];
|
||
accountButton.innerText = accountJson.displayName;
|
||
account.appendChild(accountButton);
|
||
accountSelect.appendChild(account);
|
||
}
|
||
})
|
||
|
||
function selectAccount(e) {
|
||
var uuid = e.path[1].id;
|
||
if (uuid == "accountSelect") {
|
||
uuid = e.path[0].id;
|
||
}
|
||
console.log(e);
|
||
fs.readFile('./info.json', 'utf8', (err, jsonString) => {
|
||
const config = JSON.parse(jsonString);
|
||
config.selected = uuid;
|
||
const selected = config.selected;
|
||
document.getElementById("pfp").src = "https://visage.surgeplay.com/face/" + selected;
|
||
document.getElementById("accountName").innerText = config.accounts [selected].displayName;
|
||
resetAccountPopup();
|
||
fs.writeFileSync('./info.json', JSON.stringify(config, null, 2));
|
||
});
|
||
|
||
|
||
|
||
}
|
||
|
||
</script>
|
||
|
||
</body>
|
||
</html> |