blob: 04ecde4eb3483f2d69b37e931cfceafbfd2fc5b2 (
plain) (
tree)
|
|
import { ipcRenderer, shell } from 'electron';
import GameServer from './gameserver/server';
import { switchPage } from './customEvents';
import CheckNAcceptTOS from './gameserver/TOSCheck';
import { acceptLastTOS } from './gameserver/TOSCheck';
let GameServerList:GameServer[] = null;
let SelectedGameserver:GameServer = null;
const playBtn:HTMLButtonElement = document.getElementById('play') as (HTMLButtonElement);
const TOSDialog:HTMLDialogElement = document.getElementById('TOSDialog') as (HTMLDialogElement);
playBtn.addEventListener('click', async () => {
if( await CheckNAcceptTOS(SelectedGameserver)){
SelectedGameserver.play();
} else {
//Open Please accept TOS window
TOSDialog.showModal();
}
});
const TOSCancel:HTMLButtonElement = document.getElementById('TOSCancel') as (HTMLButtonElement);
TOSCancel.addEventListener('click', function() {
TOSDialog.close();
});
const TOSOpen:HTMLButtonElement = document.getElementById('TOSOpen') as (HTMLButtonElement);
TOSOpen.addEventListener('click', function(e) {
e.preventDefault();
shell.openExternal(SelectedGameserver.TOSLink);
});
const TOSAccept:HTMLButtonElement = document.getElementById('TOSAccept') as (HTMLButtonElement);
TOSAccept.addEventListener('click', function() {
acceptLastTOS(SelectedGameserver);
SelectedGameserver.play();
TOSDialog.close();
});
const sidebarReference = document.getElementById('sidebar');
let clickableMenueEntries:HTMLElement[]=[];
function updateView(){
// This is for updating the ui to new data
if(GameServerList){
// Clear every thing out
while (sidebarReference.firstChild) {
sidebarReference.removeChild(sidebarReference.firstChild);
}
GameServerList.forEach((server)=>{
sidebarReference.appendChild(server.getMenuEntry());
});
//Switch page according localstorage:
if(GameServerList.length != 0){
const selectedServer = localStorage.getItem("selected_server");
if(selectedServer && selectedServer !==null ){
if(GameServerList.filter((server)=>server.name==selectedServer).length == 0){
localStorage.removeItem("selected_server");
switchPage("SERVER", GameServerList[0].name, 'INFO');
}else{
switchPage("SERVER", selectedServer, 'INFO');
}
}else{
//TODO ask if is on special page like global settings first
switchPage("SERVER", GameServerList[0].name, 'INFO');
}
}
}
}
const serverPage = document.getElementById('serverPage');
const switchPageEvent = document.createElement('span');
switchPageEvent.classList.add("switch-page-event");
switchPageEvent.addEventListener("site-changed", (event:CustomEvent)=>{
if(event.detail.sitetype === "SERVER"){
SelectedGameserver = GameServerList.filter((server)=>server.name==event.detail.page)[0];
localStorage.setItem("selected_server", SelectedGameserver.name);
while (serverPage.firstChild) {
serverPage.removeChild(serverPage.firstChild);
}
let page = SelectedGameserver.pageController.getPage(event.detail.subPage);
serverPage.appendChild(page);
// page.classList.add('animated');
// page.classList.add('fadeIn');
}else{
SelectedGameserver == null;
}
if(typeof(SelectedGameserver) === "undefined" || SelectedGameserver == null){
// No gameserver selected
playBtn.hidden = true;
}else{
// A gameserver is selected
playBtn.innerText=`Play ${SelectedGameserver.menuName}`;
playBtn.hidden = false;
}
setBackground();
});
document.getElementById("topbar").appendChild(switchPageEvent);
let peviousSelectedGameserver:any=null;
const contentBackground = document.getElementById('contentBackground');
function setBackground(){
if(peviousSelectedGameserver !== SelectedGameserver){
while (contentBackground.firstChild) {
contentBackground.removeChild(contentBackground.firstChild);
}
if(typeof(SelectedGameserver) === "undefined" || SelectedGameserver == null){
contentBackground.hidden=true;
contentBackground.classList.add('hidden');
}else{
if(SelectedGameserver.backgrounds[0] && !SelectedGameserver.backgrounds[0].isVideo){
const background1 = document.createElement('img');
background1.src = `./media/server/${SelectedGameserver.backgrounds[0].file}`;
contentBackground.appendChild(background1);
background1.classList.add('animated');
background1.classList.add('fadeIn');
}
contentBackground.appendChild(document.createElement('div'))
contentBackground.hidden=false;
contentBackground.classList.remove('hidden');
}
}
peviousSelectedGameserver = SelectedGameserver;
}
ipcRenderer.on('status-update', (event:any, status:any) => {
// Everything that isnt server view related is in index.ts
playBtn.disabled = status.playing;
})
import { GameServers } from './gameserver/data';
GameServerList = GameServers;
updateView();
|