55const cp = require ( 'child_process' )
66const crypto = require ( 'crypto' )
77const { URL } = require ( 'url' )
8+ const fs = require ( 'fs-extra' )
89
910// Internal Requirements
1011const DiscordWrapper = require ( './assets/js/discordwrapper' )
@@ -72,6 +73,7 @@ function setLaunchPercentage(value, max, percent = ((value / max) * 100)) {
7273function setDownloadPercentage ( value , max , percent = ( ( value / max ) * 100 ) ) {
7374 remote . getCurrentWindow ( ) . setProgressBar ( value / max )
7475 setLaunchPercentage ( value , max , percent )
76+ DiscordWrapper . updateDetails ( 'Téléchargement en cours... (' + percent + '%)' )
7577}
7678
7779/**
@@ -82,11 +84,21 @@ function setDownloadPercentage(value, max, percent = ((value / max) * 100)) {
8284function setLaunchEnabled ( val ) {
8385 document . getElementById ( 'launch_button' ) . disabled = ! val
8486}
87+ /**
88+ * Enable or disable the launch button.
89+ *
90+ * @param {string } the text to set the launch button to.
91+ */
92+ function setLaunchButtonText ( text ) {
93+ document . getElementById ( 'launch_button' ) . innerHTML = text
94+ }
95+
96+
8597
8698// Bind launch button
8799document . getElementById ( 'launch_button' ) . addEventListener ( 'click' , function ( e ) {
88100 if ( checkCurrentServer ( true ) ) {
89- if ( ConfigManager . getConsoleOnLaunch ( ) ) {
101+ if ( ConfigManager . getConsoleOnLaunch ( ) ) {
90102 let window = remote . getCurrentWindow ( )
91103 window . toggleDevTools ( )
92104 }
@@ -118,7 +130,7 @@ document.getElementById('launch_button').addEventListener('click', function (e)
118130document . getElementById ( 'settingsMediaButton' ) . onclick = ( e ) => {
119131 prepareSettings ( )
120132 switchView ( getCurrentView ( ) , VIEWS . settings )
121- if ( hasRPC ) {
133+ if ( hasRPC ) {
122134 DiscordWrapper . updateDetails ( 'Dans les réglages...' )
123135 DiscordWrapper . clearState ( )
124136 }
@@ -149,19 +161,26 @@ updateSelectedAccount(ConfigManager.getSelectedAccount())
149161
150162// Bind selected server
151163function updateSelectedServer ( serv ) {
164+ server_selection_button . innerHTML = ( serv != null ? serv . getName ( ) : 'Aucun serveur séléctionné' )
152165 if ( getCurrentView ( ) === VIEWS . settings ) {
153166 saveAllModConfigurations ( )
154167 }
155168 ConfigManager . setSelectedServer ( serv != null ? serv . getID ( ) : null )
156169 ConfigManager . save ( )
157- server_selection_button . innerHTML = '\u2022 ' + ( serv != null ? serv . getName ( ) : 'No Server Selected' )
158170 if ( getCurrentView ( ) === VIEWS . settings ) {
159171 animateModsTabRefresh ( )
160172 }
161173 setLaunchEnabled ( serv != null )
174+ if ( serv ) {
175+ setLaunchButtonText ( fs . pathExistsSync ( path . join ( ConfigManager . getDataDirectory ( ) , 'instances' , serv . getID ( ) ) ) ? 'JOUER' : 'INSTALLER</br>ET JOUER' )
176+ } else {
177+ setLaunchButtonText ( 'JOUER' )
178+ }
179+
180+
162181}
163182// Real text is set in uibinder.js on distributionIndexDone.
164- server_selection_button . innerHTML = '\u2022 Loading ..'
183+ server_selection_button . innerHTML = '\u2022 Chargement. ..'
165184server_selection_button . onclick = ( e ) => {
166185 e . target . blur ( )
167186 toggleServerSelection ( true )
@@ -263,14 +282,14 @@ const refreshServerStatus = async function (fade = false) {
263282
264283}
265284
266- function loadDiscord ( ) {
267- if ( ! ConfigManager . getDiscordIntegration ( ) ) return
285+ function loadDiscord ( ) {
286+ if ( ! ConfigManager . getDiscordIntegration ( ) ) return
268287 const distro = DistroManager . getDistribution ( )
269288 const serv = distro . getServer ( ConfigManager . getSelectedServer ( ) )
270289
271290 loggerLanding . log ( 'Now loading DiscordRPC' )
272- if ( ! hasRPC ) {
273- if ( distro . discord != null ) {
291+ if ( ! hasRPC ) {
292+ if ( distro . discord != null ) {
274293 DiscordWrapper . initRPC ( distro . discord , serv . discord , '...' )
275294 hasRPC = true
276295 }
@@ -672,6 +691,7 @@ function dlAsync(login = true) {
672691 versionData = m . result . versionData
673692
674693 if ( login && allGood ) {
694+ updateSelectedServer ( data . getServer ( ConfigManager . getSelectedServer ( ) ) )
675695 const authUser = ConfigManager . getSelectedAccount ( )
676696 loggerLaunchSuite . log ( `Envoi du compte (${ authUser . displayName } ) vers ProcessBuilder.` )
677697 let pb = new ProcessBuilder ( serv , versionData , forgeData , authUser , remote . app . getVersion ( ) )
@@ -707,7 +727,7 @@ function dlAsync(login = true) {
707727 }
708728 }
709729
710-
730+
711731
712732 const gameCrashReportListener = function ( data ) {
713733 data = data . trim ( )
@@ -762,7 +782,7 @@ function dlAsync(login = true) {
762782 setLaunchDetails ( 'C\'est bon! </br> Bon jeu!' )
763783
764784 proc . on ( 'close' , ( code , signal ) => {
765- if ( hasRPC ) {
785+ if ( hasRPC ) {
766786 const serv = DistroManager . getDistribution ( ) . getServer ( ConfigManager . getSelectedServer ( ) )
767787 DiscordWrapper . updateDetails ( 'Prêt à jouer' )
768788 DiscordWrapper . updateState ( 'Serveur: ' + serv . getName ( ) )
@@ -920,8 +940,8 @@ document.getElementById('newsButton').onclick = () => {
920940 if ( newsActive ) {
921941 $ ( '#landingContainer *' ) . removeAttr ( 'tabindex' )
922942 $ ( '#newsContainer *' ) . attr ( 'tabindex' , '-1' )
923- if ( hasRPC ) {
924- if ( ConfigManager . getSelectedServer ( ) ) {
943+ if ( hasRPC ) {
944+ if ( ConfigManager . getSelectedServer ( ) ) {
925945 const serv = DistroManager . getDistribution ( ) . getServer ( ConfigManager . getSelectedServer ( ) )
926946 DiscordWrapper . updateDetails ( 'Prêt à jouer!' )
927947 DiscordWrapper . updateState ( 'Serveur: ' + serv . getName ( ) )
@@ -938,7 +958,7 @@ document.getElementById('newsButton').onclick = () => {
938958 ConfigManager . setNewsCacheDismissed ( true )
939959 ConfigManager . save ( )
940960 }
941- if ( hasRPC ) {
961+ if ( hasRPC ) {
942962 DiscordWrapper . updateDetails ( 'Entrain de lire les news...' )
943963 DiscordWrapper . clearState ( )
944964 }
0 commit comments