FCLauncher/FCLauncher.old/src/main.js

115 lines
3.8 KiB
JavaScript

const { invoke } = window.__TAURI__.tauri;
const { listen } = window.__TAURI__.event;
const { ask, message } = window.__TAURI__.dialog;
const { exit } = window.__TAURI__.process;
const downBar = document.querySelector(".progressFinished");
//import { listen } from '@tauri-apps/api';
const error = listen("Error", (error) => {
message(error.payload, {title: "Error", type: "error"});
});
const download_progress = listen("download_progress", (progress) => {
console.log("Downloading");
//console.log("Downloaded "+progress.payload.downloaded/(1024*1024) +"MB / " + progress.payload.total/(1024*1024) + "MB");
let downProgress = (progress.payload.downloaded/(1024*1024)).toFixed(2);
let downTotal = (progress.payload.total/(1024*1024)).toFixed(2);
document.getElementById("download_name").textContent = "Downloading "+progress.payload.download_name;
document.getElementById("download_progress").textContent = downProgress + "MB / "+downTotal+"MB";
document.getElementById("launchGame").disabled = true;
downBar.style.width = `${(progress.payload.downloaded / progress.payload.total) * 100}%`;
document.querySelector(".progress").style.visibility = "visible";
});
const download_finished = listen("download_finished", (event) => {
document.getElementById("download_name").textContent = "";
document.getElementById("download_progress").textContent = "";
document.getElementById("launchGame").disabled = false;
document.getElementById("launchGame").textContent ="Launch Minecraft";
downBar.style.width = 0;
document.querySelector(".progress").style.visibility = "hidden";
});
const update_dialog = listen("update_dialog", (event) => {
ask("Do you want to update?", {title: "Update Available", type: "Message"}).then((value) => { if (value) { invoke("update").then(window.close()); } });
});
window.addEventListener("DOMContentLoaded", () => {
document.getElementById("launchGame").addEventListener("click", gameLaunch);
document.getElementById("prism").addEventListener("click", prism);
document.getElementById("settings").addEventListener("click", login);
document.getElementById("back").addEventListener("click", back);
});
function packSelect() {
document.getElementById("myDropdown").classList.toggle("show");
}
function login(){
window.location.href = "Login.html";
}
function back(){
console.log("test");
window.location.href = "index.html";
}
function load() {
console.log("loading");
var dropdown = document.getElementById("Modpacks");
var opt = document.createElement("option");
opt.text = 'something';
opt.value = 'somethings value';
dropdown.options.add(opt);
}
window.onload = async function() {
invoke("install_prism");
invoke("get_modpacks").then(addModpacks);
console.log(downBar.style.width)
}
function addModpacks(modpacks) {
var dropdown = document.getElementById("Modpacks");
//modpacks.sort((a, b) => a.name.localeCompare(b.name));
//modpacks.reverse();
for (let i = 0; i < modpacks.length; i++){
var opt = document.createElement("option");
opt.text = modpacks[i].name;
opt.value = modpacks[i].id;
dropdown.options.add(opt);
}
}
function gameLaunch() {
var packId = document.getElementById("Modpacks");
var selectedId = packId.value;
document.getElementById("launchGame").disabled = true;
document.getElementById("launchGame").textContent ="Launching...";
//TODO Launch Game
invoke("launch_modpack", { id: selectedId}).then(() => { exit(1); });
}
function prism(){
invoke("launch_prism");
}
//window.onclick = function(event) {
//if (!event.target.matches('.dropbtn')) {
//var dropdowns = document.getElementsByClassName("dropdown-content");
//var i;
//for (i = 0; i < dropdowns.length; i++) {
//var openDropdown = dropdowns[i];
//if (openDropdown.classList.contains('show')) {
//openDropdown.classList.remove('show');
//}
//}
//}
//}