4
0
mirror of https://github.com/AltarikMC/Launcher synced 2024-11-24 06:39:50 +01:00

added progress bar

This commit is contained in:
Quentin Legot 2020-12-08 23:04:57 +01:00 committed by Quentin Legot
parent 09ee3e175e
commit c05f09d5e9
10 changed files with 71 additions and 20 deletions

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
node_modules/ node_modules/
game
out/ out/

View File

@ -67,3 +67,29 @@ h3 {
border: 1px solid black; border: 1px solid black;
border-radius: 3px; border-radius: 3px;
} }
.hidden{
display:none;
}
#fullprogressbar{
position:relative;
margin: 0 auto;
width:80%;
height:25px;
background-color:gray;
}
#progressbar{
background-color: green;
height:100%;
width:0;
}
#loading-message{
width:80%;
position:relative;
margin: 0 auto;
height:28px;
color:white;
}

View File

@ -1,16 +1,37 @@
minMem= "2G" minMem= "2G"
maxMem = "4G" maxMem = "4G"
let launchBtn = document.querySelector('#launch-btn');
let fullProgressBar = document.querySelector('#fullprogressbar')
let progressBar = document.querySelector('#progressbar')
let loadingMessage = document.querySelector('#loading-message')
ipcRenderer.on("nick", (event, args) => { ipcRenderer.on("nick", (event, args) => {
console.log(args) console.log(args)
document.querySelector("#nick-span").innerHTML = args.name document.querySelector("#nick-span").innerHTML = args.name
}) })
document.querySelector('#launch-btn').addEventListener("click", e => { launchBtn.addEventListener("click", e => {
launchBtn.classList.add('hidden');
fullProgressBar.classList.remove('hidden');
loadingMessage.classList.remove('hidden');
ipcRenderer.send('launch', { ipcRenderer.send('launch', {
minMem: minMem, minMem: minMem,
maxMem: maxMem maxMem: maxMem
}) })
document.querySelector('#launch-btn').disabled = true launchBtn.disabled = true
})
ipcRenderer.on("progress", (e, args) => {
progressBar.style.width = (args.task / args.total) * 100 + "%"
loadingMessage.innerHTML = "Téléchargement de " + args.type + ": " + args.task + " sur " + args.total;
})
ipcRenderer.on("close", (e, args) => {
launchBtn.classList.remove('hidden');
fullProgressBar.classList.add('hidden');
loadingMessage.classList.add('hidden');
loadingMessage.innerHTML = "Téléchargement de Minecraft en cours..."
progressBar.style.width = "0"
launchBtn.disabled = false
}) })

View File

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -4,8 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Launcher Projet Secret</title> <title>Launcher Projet Secret</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" /> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
<link href="index.css" rel="stylesheet" /> <link href="include/index.css" rel="stylesheet" />
<link href="menubar.css" rel="stylesheet" /> <link href="include/menubar.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head> </head>
<body> <body>
@ -27,14 +27,16 @@
Contenu Contenu
</div> </div>
<div id="main"> <div id="main">
<img id="main-img" src="./maxresdefault.jpg"> <img id="main-img" src="include/maxresdefault.jpg">
<div id="launch"> <div id="launch">
<button id="launch-btn">Lancer le jeu</button> <button id="launch-btn">Lancer le jeu</button>
<div id="loading-message" class="hidden">Téléchargement de Minecraft en cours...</div>
<div id="fullprogressbar" class="hidden"><div id="progressbar"></div></div>
</div> </div>
</div> </div>
</p> </p>
</div> </div>
<script src="script.js"></script> <script src="include/script.js"></script>
<script src="include/index.js"></script> <script src="include/index.js"></script>
</body> </body>
</html> </html>

View File

@ -4,8 +4,8 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>Launcher Projet Secret</title> <title>Launcher Projet Secret</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" /> <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
<link href="login.css" rel="stylesheet" /> <link href="include/login.css" rel="stylesheet" />
<link href="menubar.css" rel="stylesheet" /> <link href="include/menubar.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head> </head>
<body> <body>
@ -31,7 +31,7 @@
</div> </div>
</div> </div>
<script src="script.js"></script> <script src="include/script.js"></script>
<script src="include/login.js"></script> <script src="include/login.js"></script>
</body> </body>
</html> </html>

20
main.js
View File

@ -7,14 +7,17 @@ const iconPath = path.join(__dirname, "icon.png");
let win = null let win = null
let auth = null let auth = null
let Minecraftpath = "projet-secret" let Minecraftpath = "game"
let clientPackage = "https://www.dropbox.com/s/ww6a052nzzgojdm/modpack.zip?dl=1" let clientPackage = "https://www.dropbox.com/s/ww6a052nzzgojdm/modpack.zip?dl=1"
let version = "fabric-loader-0.10.8-1.16.4" let version = "1.16.4"
let versionFolder = "fabric-loader-0.10.8-1.16.4"
function createWindow () { function createWindow () {
win = new BrowserWindow({ win = new BrowserWindow({
width: 1000, width: 1000,
minWidth: 900,
height: 600, height: 600,
minHeight: 600,
icon: iconPath, icon: iconPath,
webPreferences: { webPreferences: {
nodeIntegration: true, nodeIntegration: true,
@ -75,11 +78,10 @@ ipcMain.on("launch", (event, args) => {
clientPackage: clientPackage, clientPackage: clientPackage,
authorization: auth, authorization: auth,
root: Minecraftpath, root: Minecraftpath,
//forge: fabricmc,
version: { version: {
number: "1.16.4", number: version,
type: "release", type: "release",
custom: version custom: versionFolder
}, },
memory: { memory: {
max: args.maxMem, max: args.maxMem,
@ -87,9 +89,9 @@ ipcMain.on("launch", (event, args) => {
} }
} }
launcher.launch(opts) launcher.launch(opts)
launcher.on('debug', (e) => console.log(e)); launcher.on('debug', (e) => console.log("debug", e));
launcher.on('data', (e) => console.log(e)); launcher.on('data', (e) => console.log("data", e));
launcher.on('progress', (e) => console.log(e)); launcher.on('progress', (e) => event.sender.send("progress", e));
launcher.on('close', (e) => console.log(e)); launcher.on('close', (e) => event.sender.send("close", e));
}) })