Skip to content

Commit 41b0ee3

Browse files
committed
🔥 Re-add servers codes
1 parent 6a8b476 commit 41b0ee3

File tree

5 files changed

+249
-3359
lines changed

5 files changed

+249
-3359
lines changed

app/assets/js/scripts/landing.js

Lines changed: 54 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -102,30 +102,32 @@ function setLaunchEnabled(val){
102102

103103
// Bind launch button
104104
document.getElementById('launch_button').addEventListener('click', async e => {
105-
loggerLanding.info('Launching game..')
106-
try {
107-
const server = (await DistroAPI.getDistribution()).getServerById(ConfigManager.getSelectedServer())
108-
const jExe = ConfigManager.getJavaExecutable(ConfigManager.getSelectedServer())
109-
if(jExe == null){
110-
await asyncSystemScan(server.effectiveJavaOptions)
111-
} else {
105+
if(await checkCurrentServer(true)){
106+
loggerLanding.info('Launching game..')
107+
try {
108+
const server = (await DistroAPI.getDistribution()).getServerById(ConfigManager.getSelectedServer())
109+
const jExe = ConfigManager.getJavaExecutable(ConfigManager.getSelectedServer())
110+
if(jExe == null){
111+
await asyncSystemScan(server.effectiveJavaOptions)
112+
} else {
112113

113-
setLaunchDetails(Lang.queryJS('landing.launch.pleaseWait'))
114-
toggleLaunchArea(true)
115-
setLaunchPercentage(0, 100)
114+
setLaunchDetails(Lang.queryJS('landing.launch.pleaseWait'))
115+
toggleLaunchArea(true)
116+
setLaunchPercentage(0, 100)
116117

117-
const details = await validateSelectedJvm(ensureJavaDirIsRoot(jExe), server.effectiveJavaOptions.supported)
118-
if(details != null){
119-
loggerLanding.info('Jvm Details', details)
120-
await dlAsync()
118+
const details = await validateSelectedJvm(ensureJavaDirIsRoot(jExe), server.effectiveJavaOptions.supported)
119+
if(details != null){
120+
loggerLanding.info('Jvm Details', details)
121+
await dlAsync()
121122

122-
} else {
123-
await asyncSystemScan(server.effectiveJavaOptions)
123+
} else {
124+
await asyncSystemScan(server.effectiveJavaOptions)
125+
}
124126
}
127+
} catch(err) {
128+
loggerLanding.error('Unhandled error in during launch process.', err)
129+
showLaunchFailure('Error During Launch', 'See console (CTRL + Shift + i) for more details.')
125130
}
126-
} catch(err) {
127-
loggerLanding.error('Unhandled error in during launch process.', err)
128-
showLaunchFailure('Error During Launch', 'See console (CTRL + Shift + i) for more details.')
129131
}
130132
})
131133

@@ -640,6 +642,39 @@ async function dlAsync(login = true) {
640642

641643
}
642644

645+
/**
646+
* Checks the current server to ensure that they still have permission to play it (checking server code, if applicable) and open up an error overlay if specified
647+
* @Param {boolean} whether or not to show the error overlay
648+
*/
649+
async function checkCurrentServer(errorOverlay = true){
650+
const selectedServId = ConfigManager.getSelectedServer()
651+
if(selectedServId){
652+
const selectedServ = (await DistroAPI.getDistribution()).getServerById(selectedServId)
653+
if(selectedServ){
654+
if(selectedServ.rawServer.serverCode && selectedServ.rawServer.serverCode !== ''){
655+
if(!ConfigManager.getServerCodes().includes(selectedServ.rawServer.serverCode)){
656+
if(errorOverlay){
657+
setOverlayContent(
658+
'Serveur actuel restreint !',
659+
'Il semble que vous n\'ayez plus le code serveur requis pour accéder à ce serveur ! Veuillez changer de serveur pour jouer. <br/><br/> Si vous pensez qu\'il s\'agit d\'une erreur, veuillez contacter l\'administrateur du serveur.',
660+
'Changer de serveur',
661+
)
662+
setOverlayHandler(() => {
663+
toggleServerSelection(true)
664+
})
665+
setDismissHandler(() => {
666+
toggleOverlay(false)
667+
})
668+
toggleOverlay(true, true)
669+
}
670+
return false
671+
}
672+
}
673+
}
674+
return true
675+
}
676+
}
677+
643678
/**
644679
* News Loading Functions
645680
*/

app/assets/js/scripts/overlay.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,9 @@ async function populateServerListings(){
273273
const servers = distro.servers
274274
let htmlString = ''
275275
for(const serv of servers){
276+
if(serv.rawServer.serverCode && !ConfigManager.getServerCodes().includes(serv.rawServer.serverCode)){
277+
continue
278+
}
276279
htmlString += `<button class="serverListing" servid="${serv.rawServer.id}" ${serv.rawServer.id === giaSel ? 'selected' : ''}>
277280
<img class="serverListingImg" src="${serv.rawServer.icon}"/>
278281
<div class="serverListingDetails">

app/assets/js/scripts/settings.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,8 @@ async function initSettingsValues(){
142142
await populateJavaExecDetails(v.value)
143143
} else if (cVal === 'DataDirectory'){
144144
v.value = gFn.apply(null, gFnOpts)
145+
} else if (cVal === 'ServerCode'){
146+
v.value = gFn()
145147
} else if(cVal === 'JVMOptions'){
146148
v.value = gFn.apply(null, gFnOpts).join(' ')
147149
} else {
@@ -460,6 +462,8 @@ ipcRenderer.on(MSFT_OPCODE.REPLY_LOGIN, (_, ...arguments_) => {
460462
ConfigManager.getServerCodes().push(code)
461463
ConfigManager.save()
462464
prepareLauncherTab()
465+
} else {
466+
console.warn('Server code already exists or is empty!')
463467
}
464468
}
465469
}
@@ -722,8 +726,8 @@ function prepareAccountsTab() {
722726
/**
723727
* Prepare the launcher tab for display.
724728
*/
725-
function prepareLauncherTab() {
726-
resolveServerCodesForUI()
729+
async function prepareLauncherTab() {
730+
await resolveServerCodesForUI()
727731
bindServerCodeButtons()
728732
}
729733

@@ -929,11 +933,11 @@ async function resolveDropinModsForUI(){
929933
document.getElementById('settingsDropinModsContent').innerHTML = dropinMods
930934
}
931935

932-
function resolveServerCodesForUI(){
936+
async function resolveServerCodesForUI(){
933937
/* Server Codes */
934938
let servCodes = ''
935-
/* for(let servCode of ConfigManager.getServerCodes()){
936-
const servs = DistroManager.getDistribution().getServersFromCode(servCode)
939+
for(let servCode of ConfigManager.getServerCodes()){
940+
const servs = (await DistroAPI.getDistribution()).getServersFromCode(servCode)
937941
const valid = servs && servs.length
938942
servCodes +=
939943
`
@@ -953,23 +957,21 @@ function resolveServerCodesForUI(){
953957
</div>
954958
</div>
955959
`
956-
} */
960+
}
957961

958962
document.getElementById('settingsServerCodesListContent').innerHTML = servCodes
959963

960964
/* Server Names List */
961965
for(let ele of document.getElementsByClassName('settingsServerCodeServerNamesContent')){
962966
servNames = ''
963967
const code = ele.getAttribute('code')
964-
const servs = DistroManager.getDistribution().getServersFromCode(code)
968+
const servs = (await DistroAPI.getDistribution()).getServersFromCode(code)
965969
const valid = servs && servs.length
966-
loggerSettings.log('valid: ' + valid)
967970
if(valid){
968971
for(let serv of servs){
969-
loggerSettings.log('server: ' + serv.getName())
970972
servNames +=
971973
`
972-
<span class="settingsServerCodeServerName">${serv.getName()}</span>
974+
<span class="settingsServerCodeServerName">${serv.rawServer.name}</span>
973975
`
974976
}
975977
} else {
@@ -1675,6 +1677,7 @@ async function prepareSettings(first = false) {
16751677
prepareAccountsTab()
16761678
await prepareJavaTab()
16771679
prepareAboutTab()
1680+
await prepareLauncherTab()
16781681
}
16791682

16801683
// Prepare the settings UI on startup.

0 commit comments

Comments
 (0)