From 28a45a2a60e0b22db45e6a45f1cd21c7602fc76e Mon Sep 17 00:00:00 2001 From: LawnCable Date: Sun, 28 Feb 2021 17:39:20 +0100 Subject: apply prettier code formatting --- src/renderer/customEvents.ts | 12 +- src/renderer/gameserver/TOSCheck.ts | 87 ++++++------ src/renderer/gameserver/data.ts | 116 ++++++++-------- src/renderer/gameserver/news.ts | 71 +++++----- src/renderer/gameserver/onlineCount.ts | 114 ++++++++-------- src/renderer/gameserver/profile.ts | 10 +- src/renderer/gameserver/server.ts | 88 +++++++------ src/renderer/gameserver/serverView/controller.ts | 50 +++---- src/renderer/gameserver/serverView/info.ts | 78 +++++------ src/renderer/gameserver/serverView/preferences.ts | 95 ++++++------- src/renderer/gameserver/serverView/screenshots.ts | 80 +++++------ src/renderer/gameserver/serverView/serverPage.ts | 19 ++- src/renderer/gameserver/socialLink.ts | 46 ++++--- src/renderer/index.ts | 35 +++-- src/renderer/serverView.ts | 154 ++++++++++++---------- 15 files changed, 543 insertions(+), 512 deletions(-) (limited to 'src/renderer') diff --git a/src/renderer/customEvents.ts b/src/renderer/customEvents.ts index 75a1ec5..3cdbf35 100644 --- a/src/renderer/customEvents.ts +++ b/src/renderer/customEvents.ts @@ -1,11 +1,13 @@ import { ServerSubPages } from "./gameserver/serverView/controller"; export function switchPage( - sitetype:"SERVER"|"INTERN", - page:string, - subPage?:ServerSubPages -){ - const event = new CustomEvent('site-changed', { detail:{sitetype, page, subPage} }); + sitetype: "SERVER" | "INTERN", + page: string, + subPage?: ServerSubPages +) { + const event = new CustomEvent("site-changed", { + detail: { sitetype, page, subPage }, + }); const elements = document.getElementsByClassName("switch-page-event"); for (let i = 0; i < elements.length; i++) { elements[i].dispatchEvent(event); diff --git a/src/renderer/gameserver/TOSCheck.ts b/src/renderer/gameserver/TOSCheck.ts index e2e4bfc..4744dcd 100644 --- a/src/renderer/gameserver/TOSCheck.ts +++ b/src/renderer/gameserver/TOSCheck.ts @@ -1,69 +1,68 @@ -import GameServer from './server'; -import { ipcRenderer } from 'electron'; +import GameServer from "./server"; +import { ipcRenderer } from "electron"; let LAST_TOS = ""; -export default async function CheckNAcceptTOS(server:GameServer):Promise{ - try{ +export default async function CheckNAcceptTOS( + server: GameServer +): Promise { + try { let thisVersion = await getTOSVersion(server.TOSLink); - console.log(server.TOSLink,thisVersion); - LAST_TOS=thisVersion; - return (localStorage.getItem(server.TOSLink) == thisVersion); - + console.log(server.TOSLink, thisVersion); + LAST_TOS = thisVersion; + return localStorage.getItem(server.TOSLink) == thisVersion; } catch (err) { - console.log("TOS check Error",err); - return true + console.log("TOS check Error", err); + return true; } - } -async function getTOSVersion(address:string):Promise{ +async function getTOSVersion(address: string): Promise { // Returns date or if not found the hash of the whole page const PageContent = await request(address); const date = PageContent.match(/Last Update: \d\d\d\d-\d\d-\d\d/g); - let hash:string; - if(!date || date.length > 1){ - hash = HashString(PageContent.replace(/ |\t|\n/g,"").replace(/<.+?>/g, "r")).toString(16); + let hash: string; + if (!date || date.length > 1) { + hash = HashString( + PageContent.replace(/ |\t|\n/g, "").replace(/<.+?>/g, "r") + ).toString(16); } else { - hash = date[0].replace(/ /g,""); + hash = date[0].replace(/ /g, ""); } return hash; } -function request(url:string):Promise{ - return new Promise((res, rej)=>{ - var xhr = new XMLHttpRequest(); - xhr.open('GET', url); - xhr.addEventListener("error", (ev)=>{ - rej(ev); - }); - xhr.onload = function() { - if (xhr.status === 200) { - res(xhr.responseText); - } - else { - rej(new Error(`xhr.status: ${xhr.status} != 200`)); - } - }; - xhr.send(); +function request(url: string): Promise { + return new Promise((res, rej) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url); + xhr.addEventListener("error", (ev) => { + rej(ev); + }); + xhr.onload = function () { + if (xhr.status === 200) { + res(xhr.responseText); + } else { + rej(new Error(`xhr.status: ${xhr.status} != 200`)); + } + }; + xhr.send(); }); } - - // Hash function from http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/ -function HashString (s:string){ - let hash = 0; - if (s.length == 0) return hash; - for (let i = 0; i < s.length; i++) { - let char = s.charCodeAt(i); - hash = ((hash<<5)-hash)+char; - hash = hash & hash; // Convert to 32bit integer - } - return hash; +function HashString(s: string) { + let hash = 0; + if (s.length == 0) return hash; + for (let i = 0; i < s.length; i++) { + let char = s.charCodeAt(i); + hash = (hash << 5) - hash + char; + hash = hash & hash; // Convert to 32bit integer + } + return hash; } -export function acceptLastTOS(server:GameServer){ +export function acceptLastTOS(server: GameServer) { localStorage.setItem(server.TOSLink, LAST_TOS); } diff --git a/src/renderer/gameserver/data.ts b/src/renderer/gameserver/data.ts index 421bdff..4ca72d6 100644 --- a/src/renderer/gameserver/data.ts +++ b/src/renderer/gameserver/data.ts @@ -1,105 +1,107 @@ // This class returns Data over the gameservers until we find a better solution -import GameServer from './server'; -import GameServerProfile from './profile'; -import { NewsType } from './news'; -import { OnlineListParser } from './onlineCount'; -import { socialLink } from './socialLink'; - +import GameServer from "./server"; +import GameServerProfile from "./profile"; +import { NewsType } from "./news"; +import { OnlineListParser } from "./onlineCount"; +import { socialLink } from "./socialLink"; const TMW2 = new GameServer( - new GameServerProfile( - "server.tmw2.org", - 6901, - "evol2", - "TMW2" - ), + new GameServerProfile("server.tmw2.org", 6901, "evol2", "TMW2"), "TMW2", "TMW2: Moubootaur Legends", "What happens if you mix TMW with Evol and add many new Ideas", "https://tmw2.org/news", - {url:"http://updates.tmw2.org/news.txt",type:NewsType.ManaPlus}, - [{isVideo:false,file:"tmw2/background1.png"}], + { url: "http://updates.tmw2.org/news.txt", type: NewsType.ManaPlus }, + [{ isVideo: false, file: "tmw2/background1.png" }], "tmw2/icon.png", [ - new socialLink("fas fa-home","Website","https://moubootaurlegends.org"), - new socialLink("fab fa-discord","Discord","https://discord.gg/J4gcaqM"), - new socialLink("fab fa-patreon","Patreon","https://www.patreon.com/TMW2/"), - new socialLink("fas fa-comments","IRC Chat","http://webchat.freenode.net/?channels=#tmw2"), - new socialLink("fab fa-youtube","Youtube","https://www.youtube.com/channel/UCiwW5dTmi2xMV_vJfj5Mq5Q"), - new socialLink("fab fa-steam","Steam Group","http://steamcommunity.com/groups/TheManaWorld2"), - new socialLink("fab fa-twitter","Twitter","https://twitter.com/TheManaWorld2"), - new socialLink("fab fa-gitlab","Gitlab","https://gitlab.com/TMW2"), + new socialLink("fas fa-home", "Website", "https://moubootaurlegends.org"), + new socialLink("fab fa-discord", "Discord", "https://discord.gg/J4gcaqM"), + new socialLink( + "fab fa-patreon", + "Patreon", + "https://www.patreon.com/TMW2/" + ), + new socialLink( + "fas fa-comments", + "IRC Chat", + "http://webchat.freenode.net/?channels=#tmw2" + ), + new socialLink( + "fab fa-youtube", + "Youtube", + "https://www.youtube.com/channel/UCiwW5dTmi2xMV_vJfj5Mq5Q" + ), + new socialLink( + "fab fa-steam", + "Steam Group", + "http://steamcommunity.com/groups/TheManaWorld2" + ), + new socialLink( + "fab fa-twitter", + "Twitter", + "https://twitter.com/TheManaWorld2" + ), + new socialLink("fab fa-gitlab", "Gitlab", "https://gitlab.com/TMW2"), ], "https://tmw2.org/legal", - {parser:OnlineListParser.JSON_ARRAY,url:"https://tmw2.org/online.json"} + { parser: OnlineListParser.JSON_ARRAY, url: "https://tmw2.org/online.json" } ); const Evol = new GameServer( - new GameServerProfile( - "world.evolonline.org", - 6901, - "evol2" - ), + new GameServerProfile("world.evolonline.org", 6901, "evol2"), "Evol Online", "Evol Online", "[EvolDescription]", "https://evolonline.org/", undefined, - [{isVideo:false,file:"evol/background1.png"}], + [{ isVideo: false, file: "evol/background1.png" }], "evol/icon.png", - [ - new socialLink("fas fa-home","Website","https://evolonline.org/"), - ], + [new socialLink("fas fa-home", "Website", "https://evolonline.org/")], "http://wiki.evolonline.org/rules/gamerules", null ); const TMW = new GameServer( - new GameServerProfile( - "server.themanaworld.org", - 6901, - "tmwAthena" - ), + new GameServerProfile("server.themanaworld.org", 6901, "tmwAthena"), "The Mana World", "The Mana World", "The clasic TMW experience. Join adventures with people from all over the world.", "https://www.themanaworld.org/news", - {url:"http://themanaworld.github.io/tmwa-server-data/news.txt",type:NewsType.ManaPlus}, - [{isVideo:false,file:"tmw/background1.png"}], + { + url: "http://themanaworld.github.io/tmwa-server-data/news.txt", + type: NewsType.ManaPlus, + }, + [{ isVideo: false, file: "tmw/background1.png" }], "tmw/icon.png", [ - new socialLink("fas fa-home","Website","https://www.themanaworld.org/"), - new socialLink("fas fa-users","Forum","https://forums.themanaworld.org/"), + new socialLink("fas fa-home", "Website", "https://www.themanaworld.org/"), + new socialLink("fas fa-users", "Forum", "https://forums.themanaworld.org/"), ], "https://wiki.themanaworld.org/index.php/The_Mana_World:Terms_and_Conditions", - {parser:OnlineListParser.TMW, url:"https://server.themanaworld.org/"} + { parser: OnlineListParser.TMW, url: "https://server.themanaworld.org/" } ); // https://policies.themanaworld.org/tos is still offline const noServer = new GameServer( - new GameServerProfile( - 'noServer', - 6901, - "tmwAthena" - ), + new GameServerProfile("noServer", 6901, "tmwAthena"), "Mana Plus", "Open Mana Plus", "Opens the ManaPlus client", - 'http://manaplus.org/changelog', + "http://manaplus.org/changelog", undefined, - [{isVideo:false,file:"noServer/background1.png"}], + [{ isVideo: false, file: "noServer/background1.png" }], "noServer/icon.svg", [ - new socialLink("fas fa-home","Website","http://manaplus.org/"), - new socialLink("fab fa-gitlab","Gitlab","https://gitlab.com/manaplus/manaplus/"), + new socialLink("fas fa-home", "Website", "http://manaplus.org/"), + new socialLink( + "fab fa-gitlab", + "Gitlab", + "https://gitlab.com/manaplus/manaplus/" + ), ], undefined, null ); -export const GameServers = [ - TMW2, - Evol, - TMW, - noServer, -] +export const GameServers = [TMW2, Evol, TMW, noServer]; diff --git a/src/renderer/gameserver/news.ts b/src/renderer/gameserver/news.ts index 656238c..34f6995 100644 --- a/src/renderer/gameserver/news.ts +++ b/src/renderer/gameserver/news.ts @@ -1,64 +1,67 @@ export enum NewsType { Markdown, // Without html + yaml - ManaPlus //update news txt + ManaPlus, //update news txt } -export namespace News { // Fetches only the most recent entry - export async function get(url:string,parser:NewsType):Promise{ +export namespace News { + // Fetches only the most recent entry + export async function get(url: string, parser: NewsType): Promise { try { //1. load const unsafe_content = await request(`${url}?${Math.random()}`); //2. sanitize - const content = killHTML( unsafe_content ); + const content = killHTML(unsafe_content); //3. parse - if(parser == NewsType.ManaPlus){ + if (parser == NewsType.ManaPlus) { return manaTextParser(content); - } else if (parser == NewsType.Markdown){ + } else if (parser == NewsType.Markdown) { return "Parsing Failed: Markdown Parser is not implemented yet"; } - } catch (e){ + } catch (e) { console.log(e); return `Failed to get the news, please select the news category on the right to view all news`; } } } -function request(url:string):Promise{ - return new Promise((res, rej)=>{ - var xhr = new XMLHttpRequest(); - xhr.addEventListener("error", (ev)=>{ - rej(ev); - }); - xhr.open('GET', url); - xhr.onload = function() { - if (xhr.status === 200) { - res(xhr.responseText); - } - else { - rej(new Error(`xhr.status: ${xhr.status} != 200`)); - } - }; - xhr.send(); +function request(url: string): Promise { + return new Promise((res, rej) => { + var xhr = new XMLHttpRequest(); + xhr.addEventListener("error", (ev) => { + rej(ev); + }); + xhr.open("GET", url); + xhr.onload = function () { + if (xhr.status === 200) { + res(xhr.responseText); + } else { + rej(new Error(`xhr.status: ${xhr.status} != 200`)); + } + }; + xhr.send(); }); } -function killHTML(raw:string):string{ - return raw.replace(/<|>/,"⚠️"); +function killHTML(raw: string): string { + return raw.replace(/<|>/, "⚠️"); } -function manaTextParser(input:string){ +function manaTextParser(input: string) { const tmwLegacy = "##7Legacy Server##0"; let result = input; - if(result.indexOf(tmwLegacy) !== -1){ + if (result.indexOf(tmwLegacy) !== -1) { const i = result.indexOf(tmwLegacy) + tmwLegacy.length; result = result.slice(0, result.indexOf(tmwLegacy, i)); result = result.replace(/\n \n /, ""); } - result = result.replace(/\[@@(.+?)\|(.+?)@@\]/g,'$2') - .replace(/##B(.+?)##b/g,'$1') - .replace(/##0 Actual Release: ##1 *(.+)/,'

$1

') - .replace(/\n/g,"
"); - if(result.indexOf(tmwLegacy) === -1) - result = result.replace(/br>([^]+?)

$1


<').replace(/
/g,""); - return result.replace(/##\d/g,""); + result = result + .replace(/\[@@(.+?)\|(.+?)@@\]/g, '$2') + .replace(/##B(.+?)##b/g, "$1") + .replace(/##0 Actual Release: ##1 *(.+)/, "

$1

") + .replace(/\n/g, "
"); + if (result.indexOf(tmwLegacy) === -1) + result = result + .replace(/br>([^]+?)

$1


<") + .replace(/
/g, ""); + return result.replace(/##\d/g, ""); } diff --git a/src/renderer/gameserver/onlineCount.ts b/src/renderer/gameserver/onlineCount.ts index cfde7e5..b1c8271 100644 --- a/src/renderer/gameserver/onlineCount.ts +++ b/src/renderer/gameserver/onlineCount.ts @@ -1,48 +1,52 @@ -import GameServer from './server'; +import GameServer from "./server"; const MAX_SHOWN_NAMES = 5; -export async function makeOnlineCounterList(server:GameServer):Promise{ - +export async function makeOnlineCounterList( + server: GameServer +): Promise { try { const playerList = await fetchOnlineList(server); return generateHTML(playerList); } catch (err) { console.log(err); - const OnlineCounterContainer = document.createElement('span'); + const OnlineCounterContainer = document.createElement("span"); OnlineCounterContainer.classList.add("onlineCounter"); OnlineCounterContainer.innerHTML = `Error:
${err}`; return OnlineCounterContainer; } } - -function generateHTML(onlinePlayers:string[]):HTMLElement{ - const OnlineCounterContainer = document.createElement('span'); +function generateHTML(onlinePlayers: string[]): HTMLElement { + const OnlineCounterContainer = document.createElement("span"); OnlineCounterContainer.classList.add("onlineCounter"); OnlineCounterContainer.innerHTML = `${onlinePlayers.length} Players online
`; - const PlayerList = document.createElement('span'); + const PlayerList = document.createElement("span"); PlayerList.classList.add("playerList"); let displayed_players = - MAX_SHOWN_NAMES < onlinePlayers.length ? - onlinePlayers.slice(0, MAX_SHOWN_NAMES):onlinePlayers; - - displayed_players.forEach(playername => { - const PlayerItem = document.createElement('span'); - PlayerItem.classList.add("playerItem"); - PlayerItem.innerHTML=`${playername}`; - PlayerList.appendChild(PlayerItem); - }); - + MAX_SHOWN_NAMES < onlinePlayers.length + ? onlinePlayers.slice(0, MAX_SHOWN_NAMES) + : onlinePlayers; + + displayed_players.forEach((playername) => { + const PlayerItem = document.createElement("span"); + PlayerItem.classList.add("playerItem"); + PlayerItem.innerHTML = `${playername}`; + PlayerList.appendChild(PlayerItem); + }); - if(MAX_SHOWN_NAMES < onlinePlayers.length){ - const hiddenPlayers = onlinePlayers.filter(playername => displayed_players.indexOf(playername) == -1); - const MorePlayers = document.createElement('span'); + if (MAX_SHOWN_NAMES < onlinePlayers.length) { + const hiddenPlayers = onlinePlayers.filter( + (playername) => displayed_players.indexOf(playername) == -1 + ); + const MorePlayers = document.createElement("span"); MorePlayers.classList.add("morePlayers"); - MorePlayers.innerText = ` and ${onlinePlayers.length-MAX_SHOWN_NAMES} more..`; - MorePlayers.title = hiddenPlayers.join('\n'); + MorePlayers.innerText = ` and ${ + onlinePlayers.length - MAX_SHOWN_NAMES + } more..`; + MorePlayers.title = hiddenPlayers.join("\n"); PlayerList.appendChild(MorePlayers); } @@ -56,23 +60,17 @@ export enum OnlineListParser { TMW, TMW2API, EXAMPLE_DATA, - JSON_ARRAY -}; - -async function fetchOnlineList(server:GameServer):Promise{ + JSON_ARRAY, +} - if(!server.OnlineList)throw new Error("No Online list was\n specified for this Server"); +async function fetchOnlineList(server: GameServer): Promise { + if (!server.OnlineList) + throw new Error("No Online list was\n specified for this Server"); - if(server.OnlineList.parser && server.OnlineList.url){ - switch(server.OnlineList.parser){ + if (server.OnlineList.parser && server.OnlineList.url) { + switch (server.OnlineList.parser) { case OnlineListParser.EXAMPLE_DATA: - return [ - 'LawnCable', - 'Saulc GM', - 'Crazyfefe', - 'Jesus Saves', - 'DUSTMAN' - ]; + return ["LawnCable", "Saulc GM", "Crazyfefe", "Jesus Saves", "DUSTMAN"]; case OnlineListParser.TMW: return tmwParser(await request(server.OnlineList.url)); case OnlineListParser.JSON_ARRAY: @@ -85,37 +83,35 @@ async function fetchOnlineList(server:GameServer):Promise{ } } - -function tmwParser(rawData:string):string[]{ - let stringArray:string[]=[]; - rawData.replace(/(.+?)<\/td>/g, (x:string, content:string) =>{ +function tmwParser(rawData: string): string[] { + let stringArray: string[] = []; + rawData.replace(/(.+?)<\/td>/g, (x: string, content: string) => { stringArray.push(content.replace(/<\/{0,1}.+?>/g, "")); return ""; }); return stringArray; } -function jsonArrayParser(rawData:string):string[]{ +function jsonArrayParser(rawData: string): string[] { return JSON.parse(rawData); } -function request(url:string):Promise{ - return new Promise((res, rej)=>{ - var xhr = new XMLHttpRequest(); - xhr.open('GET', url); - xhr.addEventListener("error", (ev)=>{ - console.log("Probably a network error:", ev); +function request(url: string): Promise { + return new Promise((res, rej) => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", url); + xhr.addEventListener("error", (ev) => { + console.log("Probably a network error:", ev); + rej(new Error("Probably a network error")); + }); + xhr.onload = function () { + if (xhr.status === 200) { + res(xhr.responseText); + } else { + console.log(`xhr.status: ${xhr.status} != 200`); rej(new Error("Probably a network error")); - }); - xhr.onload = function() { - if (xhr.status === 200) { - res(xhr.responseText); - } - else { - console.log(`xhr.status: ${xhr.status} != 200`); - rej(new Error("Probably a network error")); - } - }; - xhr.send(); + } + }; + xhr.send(); }); } diff --git a/src/renderer/gameserver/profile.ts b/src/renderer/gameserver/profile.ts index 4c99184..c4a6268 100644 --- a/src/renderer/gameserver/profile.ts +++ b/src/renderer/gameserver/profile.ts @@ -1,8 +1,8 @@ export default class GameServerProfile { constructor( - public address:string, - public port:number, - public engine:"tmwAthena"|"hercules"|"evol2", - public serverID:string = "DEFAULT", // To enable some server specific features - ){} + public address: string, + public port: number, + public engine: "tmwAthena" | "hercules" | "evol2", + public serverID: string = "DEFAULT" // To enable some server specific features + ) {} } diff --git a/src/renderer/gameserver/server.ts b/src/renderer/gameserver/server.ts index 9bdfccd..edc7d01 100644 --- a/src/renderer/gameserver/server.ts +++ b/src/renderer/gameserver/server.ts @@ -1,58 +1,55 @@ -import GameServerProfile from './profile'; -import { shell, ipcRenderer } from 'electron'; -import { switchPage } from '../customEvents'; -import { NewsType } from './news'; -import { makeOnlineCounterList, OnlineListParser } from './onlineCount'; -import { socialLink } from './socialLink'; -import { PageController } from './serverView/controller'; +import GameServerProfile from "./profile"; +import { shell, ipcRenderer } from "electron"; +import { switchPage } from "../customEvents"; +import { NewsType } from "./news"; +import { makeOnlineCounterList, OnlineListParser } from "./onlineCount"; +import { socialLink } from "./socialLink"; +import { PageController } from "./serverView/controller"; export default class GameServer { - - public pageController:PageController; + public pageController: PageController; constructor( public profile: GameServerProfile, public menuName: string, public name: string, - public shortDescription: string,// the server in 1-2 sentences + public shortDescription: string, // the server in 1-2 sentences public newsPageUrl: string, - public newsLatestPage: { url: string, type: NewsType }, - public backgrounds: { isVideo: boolean, file: string }[], + public newsLatestPage: { url: string; type: NewsType }, + public backgrounds: { isVideo: boolean; file: string }[], public icon: string, public socialLinks: socialLink[], public TOSLink: string, - public OnlineList: { parser: OnlineListParser, url: string }, + public OnlineList: { parser: OnlineListParser; url: string } ) { this.pageController = new PageController(this); } getMenuEntry(): HTMLElement { - const sidebarItem = document.createElement('div'); + const sidebarItem = document.createElement("div"); sidebarItem.classList.add("sidebarItem"); //Online counter - const OnlineCounterContainer = document.createElement('div'); + const OnlineCounterContainer = document.createElement("div"); //OnlineCounterContainer.appendChild(makeOnlineCounterList(this)); sidebarItem.appendChild(OnlineCounterContainer); //Title - const title = document.createElement('div'); + const title = document.createElement("div"); title.classList.add("title"); - const titleIMG = document.createElement('img'); + const titleIMG = document.createElement("img"); titleIMG.src = `./media/server/${this.icon}`; - const titleText = document.createElement('div'); + const titleText = document.createElement("div"); titleText.innerText = this.menuName; - title.appendChild(titleIMG); title.appendChild(titleText); - - title.addEventListener('click', () => { - switchPage("SERVER", this.name, 'INFO'); + title.addEventListener("click", () => { + switchPage("SERVER", this.name, "INFO"); }); - if (this.profile.address != 'noServer') { + if (this.profile.address != "noServer") { let onlineBoxActive: boolean = false; let onlineBoxSchouldBeActive: boolean = false; let updateOnlineContainer = async () => { @@ -65,11 +62,13 @@ export default class GameServer { OnlineCounterContainer.appendChild(await makeOnlineCounterList(this)); } console.log(onlineBoxSchouldBeActive); - } + }; let SetUpdate = (state: boolean) => { onlineBoxSchouldBeActive = state; - setTimeout(() => { updateOnlineContainer(); }, 160); + setTimeout(() => { + updateOnlineContainer(); + }, 160); }; title.addEventListener("mouseover", () => { @@ -92,21 +91,22 @@ export default class GameServer { sidebarItem.appendChild(title); //Collapsable - const container = document.createElement('div'); + const container = document.createElement("div"); container.classList.add("colapse"); - const info = document.createElement('div'); + const info = document.createElement("div"); info.innerHTML = 'Information'; container.appendChild(info); - info.addEventListener('click', () => { + info.addEventListener("click", () => { switchPage("SERVER", this.name, "INFO"); }); - const news = document.createElement('div'); - news.innerHTML = 'News '; + const news = document.createElement("div"); + news.innerHTML = + 'News '; if (this.newsPageUrl && this.newsPageUrl !== null) { - news.addEventListener('click', () => { + news.addEventListener("click", () => { shell.openExternal(this.newsPageUrl); }); } else { @@ -115,24 +115,25 @@ export default class GameServer { container.appendChild(news); - const screenshots = document.createElement('div'); + const screenshots = document.createElement("div"); screenshots.innerHTML = 'Screenshots'; container.appendChild(screenshots); - screenshots.addEventListener('click', () => { + screenshots.addEventListener("click", () => { switchPage("SERVER", this.name, "SCREENSHOTS"); - }) - const preferences = document.createElement('div'); - if(this.profile.address != 'noServer'){ - preferences.innerHTML = 'Preferences'; - preferences.addEventListener('click', () => { + }); + const preferences = document.createElement("div"); + if (this.profile.address != "noServer") { + preferences.innerHTML = + 'Preferences'; + preferences.addEventListener("click", () => { switchPage("SERVER", this.name, "PREF"); }); container.appendChild(preferences); } sidebarItem.appendChild(container); //event Target / interactivity - const events = document.createElement('span'); + const events = document.createElement("span"); events.classList.add("switch-page-event"); events.addEventListener("site-changed", (event: CustomEvent) => { sidebarItem.classList.remove("selected"); @@ -140,7 +141,10 @@ export default class GameServer { //news.classList.remove("selected"); screenshots.classList.remove("selected"); preferences.classList.remove("selected"); - if (event.detail.sitetype === "SERVER" && event.detail.page === this.name) { + if ( + event.detail.sitetype === "SERVER" && + event.detail.page === this.name + ) { sidebarItem.classList.add("selected"); // if(event.detail.subPage === "NEWS") { // news.classList.add("selected"); @@ -163,6 +167,6 @@ export default class GameServer { const args: any = JSON.parse(JSON.stringify(this.profile)); args.username = localStorage.getItem("2_username_" + this.profile.address); args.password = localStorage.getItem("2_pin_" + this.profile.address); - ipcRenderer.send('play', args); + ipcRenderer.send("play", args); } -} \ No newline at end of file +} diff --git a/src/renderer/gameserver/serverView/controller.ts b/src/renderer/gameserver/serverView/controller.ts index 412033c..5e181ca 100644 --- a/src/renderer/gameserver/serverView/controller.ts +++ b/src/renderer/gameserver/serverView/controller.ts @@ -4,33 +4,33 @@ import { ServerInfoPage } from "./info"; import { GameServerPage } from "./serverPage"; import { ServerScreenshotPage } from "./screenshots"; -export type ServerSubPages = 'INFO' | 'SCREENSHOTS' | 'PREF' | 'UNKNOWN'; +export type ServerSubPages = "INFO" | "SCREENSHOTS" | "PREF" | "UNKNOWN"; export class PageController { - unknownPage: GameServerPage; - infoPage: ServerInfoPage; - scrnshtPage: ServerScreenshotPage; - prefPage: ServerPreferencesPage; + unknownPage: GameServerPage; + infoPage: ServerInfoPage; + scrnshtPage: ServerScreenshotPage; + prefPage: ServerPreferencesPage; - constructor(private server: GameServer) { - this.unknownPage = new GameServerPage(server); - this.infoPage = new ServerInfoPage(server); - this.scrnshtPage = new ServerScreenshotPage(server); - this.prefPage = new ServerPreferencesPage(server); - } + constructor(private server: GameServer) { + this.unknownPage = new GameServerPage(server); + this.infoPage = new ServerInfoPage(server); + this.scrnshtPage = new ServerScreenshotPage(server); + this.prefPage = new ServerPreferencesPage(server); + } - getPage(type: ServerSubPages): HTMLElement { - let page: GameServerPage = this.unknownPage; - if (type == "INFO") { - page = this.infoPage; - } else if (type == "SCREENSHOTS") { - page = this.scrnshtPage; - } else if (type == "PREF") { - page = this.prefPage; - } - const htmlElement = document.createElement('div'); - htmlElement.appendChild(page.getPage()); - updateLoginTextElement(this.server.profile.address); - return htmlElement; + getPage(type: ServerSubPages): HTMLElement { + let page: GameServerPage = this.unknownPage; + if (type == "INFO") { + page = this.infoPage; + } else if (type == "SCREENSHOTS") { + page = this.scrnshtPage; + } else if (type == "PREF") { + page = this.prefPage; } -} \ No newline at end of file + const htmlElement = document.createElement("div"); + htmlElement.appendChild(page.getPage()); + updateLoginTextElement(this.server.profile.address); + return htmlElement; + } +} diff --git a/src/renderer/gameserver/serverView/info.ts b/src/renderer/gameserver/serverView/info.ts index c72286e..40c7e03 100644 --- a/src/renderer/gameserver/serverView/info.ts +++ b/src/renderer/gameserver/serverView/info.ts @@ -3,46 +3,48 @@ import { shell } from "electron"; import { GameServerPage } from "./serverPage"; export class ServerInfoPage extends GameServerPage { + public getPage(): HTMLElement { + const content = document.createElement("div"); + content.classList.add("infoServerPage"); - public getPage(): HTMLElement { - const content = document.createElement('div'); - content.classList.add("infoServerPage"); + const title = document.createElement("div"); + title.classList.add("title"); + title.innerText = this.server.name; + content.appendChild(title); - const title = document.createElement('div'); - title.classList.add("title"); - title.innerText = this.server.name; - content.appendChild(title); + const socialContainer = document.createElement("div"); + socialContainer.classList.add("socialContainer"); + setTimeout(() => { + this.server.socialLinks.forEach((link) => { + socialContainer.appendChild(link.getHTML()); + }); + }, 5); + content.appendChild(socialContainer); - const socialContainer = document.createElement('div'); - socialContainer.classList.add("socialContainer"); - setTimeout(() => { - this.server.socialLinks.forEach((link) => { - socialContainer.appendChild(link.getHTML()); - }); - }, 5); - content.appendChild(socialContainer); - - const shrtDsrption = document.createElement('div'); - shrtDsrption.classList.add("shortDescription"); - shrtDsrption.innerText = this.server.shortDescription; - content.appendChild(shrtDsrption); - if (this.server.newsLatestPage && this.server.newsLatestPage != null) { - const latestNews = document.createElement('div'); - latestNews.classList.add("news"); - content.appendChild(latestNews); - News.get(this.server.newsLatestPage.url, this.server.newsLatestPage.type).then((result: string) => { - latestNews.innerHTML = result; - const aTags = latestNews.getElementsByTagName("a"); - for (var i = 0; i < aTags.length; i++) { - const href = aTags[i].href.toString(); - aTags[i].addEventListener('click', () => { - shell.openExternal(href); - }); - aTags[i].href = "#"; - } - }); + const shrtDsrption = document.createElement("div"); + shrtDsrption.classList.add("shortDescription"); + shrtDsrption.innerText = this.server.shortDescription; + content.appendChild(shrtDsrption); + if (this.server.newsLatestPage && this.server.newsLatestPage != null) { + const latestNews = document.createElement("div"); + latestNews.classList.add("news"); + content.appendChild(latestNews); + News.get( + this.server.newsLatestPage.url, + this.server.newsLatestPage.type + ).then((result: string) => { + latestNews.innerHTML = result; + const aTags = latestNews.getElementsByTagName("a"); + for (var i = 0; i < aTags.length; i++) { + const href = aTags[i].href.toString(); + aTags[i].addEventListener("click", () => { + shell.openExternal(href); + }); + aTags[i].href = "#"; } - - return content; + }); } -} \ No newline at end of file + + return content; + } +} diff --git a/src/renderer/gameserver/serverView/preferences.ts b/src/renderer/gameserver/serverView/preferences.ts index 4697efe..b7a5255 100644 --- a/src/renderer/gameserver/serverView/preferences.ts +++ b/src/renderer/gameserver/serverView/preferences.ts @@ -2,58 +2,65 @@ import GameServerProfile from "../profile"; import { GameServerPage } from "./serverPage"; export class ServerPreferencesPage extends GameServerPage { + getPage(): HTMLElement { + const content = document.createElement("div"); + content.classList.add("preferencesServerPage"); - getPage(): HTMLElement { - const content = document.createElement('div'); - content.classList.add("preferencesServerPage"); + const title = document.createElement("h2"); + title.innerText = `Preferences for ${this.server.name}`; + content.appendChild(title); - const title = document.createElement('h2'); - title.innerText = `Preferences for ${this.server.name}`; - content.appendChild(title); + const loginSection = document.createElement("div"); + loginSection.classList.add("loginSection"); + content.appendChild(loginSection); - const loginSection = document.createElement('div'); - loginSection.classList.add("loginSection"); - content.appendChild(loginSection); + const loginUsernameLabel = document.createElement("label"); + loginUsernameLabel.innerText = "Username"; + const loginUsername = document.createElement("input") as HTMLInputElement; + loginUsername.value = localStorage.getItem( + "2_username_" + this.server.profile.address + ); + loginUsernameLabel.appendChild(loginUsername); - const loginUsernameLabel = document.createElement('label'); - loginUsernameLabel.innerText = "Username"; - const loginUsername = document.createElement('input') as HTMLInputElement; - loginUsername.value = localStorage.getItem("2_username_" + this.server.profile.address); - loginUsernameLabel.appendChild(loginUsername); + const loginPinLabel = document.createElement("label"); + loginPinLabel.innerText = "Password"; + const loginPin = document.createElement("input") as HTMLInputElement; + loginPin.type = "password"; + loginPin.value = localStorage.getItem( + "2_pin_" + this.server.profile.address + ); + loginPinLabel.appendChild(loginPin); - const loginPinLabel = document.createElement('label'); - loginPinLabel.innerText = "Password"; - const loginPin = document.createElement('input') as HTMLInputElement; - loginPin.type = "password"; - loginPin.value = localStorage.getItem("2_pin_" + this.server.profile.address); - loginPinLabel.appendChild(loginPin); + const saveBtn = document.createElement("button") as HTMLButtonElement; + saveBtn.innerText = "save"; - const saveBtn = document.createElement('button') as HTMLButtonElement; - saveBtn.innerText = "save"; + saveBtn.addEventListener("click", () => { + localStorage.setItem( + "2_username_" + this.server.profile.address, + loginUsername.value + ); + localStorage.setItem( + "2_pin_" + this.server.profile.address, + loginPin.value + ); + updateLoginTextElement(this.server.profile.address); + }); - saveBtn.addEventListener('click', () => { - localStorage.setItem("2_username_" + this.server.profile.address, loginUsername.value); - localStorage.setItem("2_pin_" + this.server.profile.address, loginPin.value); - updateLoginTextElement(this.server.profile.address); - }); - - - loginSection.appendChild(loginUsernameLabel); - loginSection.appendChild(loginPinLabel); - loginSection.appendChild(saveBtn); - - return content; - } + loginSection.appendChild(loginUsernameLabel); + loginSection.appendChild(loginPinLabel); + loginSection.appendChild(saveBtn); + return content; + } } export function updateLoginTextElement(serverAddress: string): void { - const account = localStorage.getItem("2_username_" + serverAddress); - const pin = localStorage.getItem("2_pin_" + serverAddress); - const element = document.getElementById('LoginText'); - if (account && pin) { - element.innerHTML = `Logged in as ${account}`; - } else { - element.innerHTML = "Automatic login not set up"; - } -} \ No newline at end of file + const account = localStorage.getItem("2_username_" + serverAddress); + const pin = localStorage.getItem("2_pin_" + serverAddress); + const element = document.getElementById("LoginText"); + if (account && pin) { + element.innerHTML = `Logged in as ${account}`; + } else { + element.innerHTML = "Automatic login not set up"; + } +} diff --git a/src/renderer/gameserver/serverView/screenshots.ts b/src/renderer/gameserver/serverView/screenshots.ts index 2d6fc62..5af8391 100644 --- a/src/renderer/gameserver/serverView/screenshots.ts +++ b/src/renderer/gameserver/serverView/screenshots.ts @@ -2,54 +2,56 @@ import { ipcRenderer, shell } from "electron"; import { GameServerPage } from "./serverPage"; export class ServerScreenshotPage extends GameServerPage { - getPage(): HTMLElement { - const screenshotContainer = document.createElement('div'); + const screenshotContainer = document.createElement("div"); screenshotContainer.classList.add("screenshotsContainer"); screenshotContainer.id = "screenshots"; - ipcRenderer.send('getScreenshots', this.server.profile.address); + ipcRenderer.send("getScreenshots", this.server.profile.address); return screenshotContainer; } } -ipcRenderer.on('getScreenshots', (event: any, data: { dir: string, screenshots: string[] }) => { - console.log(data) - const screenshots = document.getElementById('screenshots'); - if (screenshots) { - // Display screenshots if that tab is open - if (data.screenshots.length !== 0) { - data.screenshots.forEach((fileName: string) => { - const screenshot = document.createElement("div"); - screenshot.classList.add("screenshot"); - screenshots.appendChild(screenshot); - const img = document.createElement("img"); - img.src = data.dir + fileName; - screenshot.appendChild(img); - - // const text = document.createElement("span"); - // text.innerText = fileName; - // screenshot.appendChild(text); - screenshot.addEventListener('dragstart', (event) => { - event.preventDefault() - ipcRenderer.send('dragFileOut', data.dir + fileName) - }) - +ipcRenderer.on( + "getScreenshots", + (event: any, data: { dir: string; screenshots: string[] }) => { + console.log(data); + const screenshots = document.getElementById("screenshots"); + if (screenshots) { + // Display screenshots if that tab is open + if (data.screenshots.length !== 0) { + data.screenshots.forEach((fileName: string) => { + const screenshot = document.createElement("div"); + screenshot.classList.add("screenshot"); + screenshots.appendChild(screenshot); + const img = document.createElement("img"); + img.src = data.dir + fileName; + screenshot.appendChild(img); + + // const text = document.createElement("span"); + // text.innerText = fileName; + // screenshot.appendChild(text); + screenshot.addEventListener("dragstart", (event) => { + event.preventDefault(); + ipcRenderer.send("dragFileOut", data.dir + fileName); + }); + }); + } else { + const nothingHere = document.createElement("p"); + nothingHere.classList.add("nothingHere"); + nothingHere.innerText = + "There is nothing here, yet. Make some screenshots in Game and come back here. The default key for snaping screenshots is 'P'."; + + screenshots.appendChild(nothingHere); + } + + const openFolderButton = document.createElement("button"); + openFolderButton.innerText = "Open folder to see all"; + openFolderButton.addEventListener("click", () => { + shell.openItem(data.dir); }); - } else { - const nothingHere = document.createElement("p"); - nothingHere.classList.add("nothingHere"); - nothingHere.innerText = "There is nothing here, yet. Make some screenshots in Game and come back here. The default key for snaping screenshots is 'P'." - - screenshots.appendChild(nothingHere); + screenshots.appendChild(openFolderButton); } - - const openFolderButton = document.createElement('button'); - openFolderButton.innerText = "Open folder to see all"; - openFolderButton.addEventListener('click', () => { - shell.openItem(data.dir); - }); - screenshots.appendChild(openFolderButton); } -}) +); diff --git a/src/renderer/gameserver/serverView/serverPage.ts b/src/renderer/gameserver/serverView/serverPage.ts index 91556b0..622f633 100644 --- a/src/renderer/gameserver/serverView/serverPage.ts +++ b/src/renderer/gameserver/serverView/serverPage.ts @@ -1,14 +1,11 @@ import GameServer from "../server"; export class GameServerPage { - - constructor(protected server: GameServer) { - - } - getPage(): HTMLElement { - const content = document.createElement('div'); - content.classList.add("unknownServerPage"); - content.innerText = `Unknown page for${this.server.name}`; - return content; - }; -} \ No newline at end of file + constructor(protected server: GameServer) {} + getPage(): HTMLElement { + const content = document.createElement("div"); + content.classList.add("unknownServerPage"); + content.innerText = `Unknown page for${this.server.name}`; + return content; + } +} diff --git a/src/renderer/gameserver/socialLink.ts b/src/renderer/gameserver/socialLink.ts index b56fab0..9c7e353 100644 --- a/src/renderer/gameserver/socialLink.ts +++ b/src/renderer/gameserver/socialLink.ts @@ -1,24 +1,28 @@ import { shell } from "electron"; export class socialLink { - constructor( - public icon: string,// has to be one from font awesome -https://fontawesome.com/icons - public tooltip: string, - public url: string - ) { } - - getHTML(): HTMLElement { - //
- const element = document.createElement('button'); - element.onclick = () => { this.open() }; - element.innerHTML = ``; - element.title = this.tooltip; - return element; - } - - open() { - console.log("A link was clicked!", this.url); - if (this.url) - shell.openExternal(this.url.indexOf("://") !== -1 ? this.url : `https://${this.url}`); - } - } \ No newline at end of file + constructor( + public icon: string, // has to be one from font awesome -https://fontawesome.com/icons + public tooltip: string, + public url: string + ) {} + + getHTML(): HTMLElement { + //
+ const element = document.createElement("button"); + element.onclick = () => { + this.open(); + }; + element.innerHTML = ``; + element.title = this.tooltip; + return element; + } + + open() { + console.log("A link was clicked!", this.url); + if (this.url) + shell.openExternal( + this.url.indexOf("://") !== -1 ? this.url : `https://${this.url}` + ); + } +} diff --git a/src/renderer/index.ts b/src/renderer/index.ts index f83bd3f..c5729de 100644 --- a/src/renderer/index.ts +++ b/src/renderer/index.ts @@ -1,39 +1,36 @@ -import { ipcRenderer } from 'electron'; +import { ipcRenderer } from "electron"; -const quitBtn = document.getElementById('quit'); +const quitBtn = document.getElementById("quit"); -quitBtn.addEventListener('click', () => { - ipcRenderer.send('quit'); +quitBtn.addEventListener("click", () => { + ipcRenderer.send("quit"); }); -const minimizeBtn = document.getElementById('minimize'); +const minimizeBtn = document.getElementById("minimize"); -minimizeBtn.addEventListener('click', () => { +minimizeBtn.addEventListener("click", () => { minimizeBtn.blur(); - ipcRenderer.send('minimize'); + ipcRenderer.send("minimize"); }); document.ondragover = document.ondrop = (event) => { event.preventDefault(); }; - -const debugBtn = document.getElementById('debug'); +const debugBtn = document.getElementById("debug"); //debugBtn.hidden = true; -debugBtn.addEventListener('click', () => { +debugBtn.addEventListener("click", () => { debugBtn.blur(); - ipcRenderer.send('debug'); + ipcRenderer.send("debug"); }); -const activityLabel = document.getElementById('activity'); -const progressBar = document.getElementById('progress') as HTMLProgressElement; -ipcRenderer.on('status-update', (event:any, status:any) => { +const activityLabel = document.getElementById("activity"); +const progressBar = document.getElementById("progress") as HTMLProgressElement; +ipcRenderer.on("status-update", (event: any, status: any) => { activityLabel.innerText = status.activity; - if(status.ActivityIsError) - activityLabel.classList.add("error"); - else - activityLabel.classList.remove("error"); + if (status.ActivityIsError) activityLabel.classList.add("error"); + else activityLabel.classList.remove("error"); progressBar.value = status.progress; -}) +}); diff --git a/src/renderer/serverView.ts b/src/renderer/serverView.ts index 04ecde4..d502cc5 100644 --- a/src/renderer/serverView.ts +++ b/src/renderer/serverView.ts @@ -1,140 +1,156 @@ -import { ipcRenderer, shell } from 'electron'; -import GameServer from './gameserver/server'; -import { switchPage } from './customEvents'; +import { ipcRenderer, shell } from "electron"; +import GameServer from "./gameserver/server"; +import { switchPage } from "./customEvents"; -import CheckNAcceptTOS from './gameserver/TOSCheck'; -import { acceptLastTOS } from './gameserver/TOSCheck'; +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); +let GameServerList: GameServer[] = null; +let SelectedGameserver: GameServer = null; +const playBtn: HTMLButtonElement = document.getElementById( + "play" +) as HTMLButtonElement; -const TOSDialog:HTMLDialogElement = document.getElementById('TOSDialog') as (HTMLDialogElement); +const TOSDialog: HTMLDialogElement = document.getElementById( + "TOSDialog" +) as HTMLDialogElement; -playBtn.addEventListener('click', async () => { - if( await CheckNAcceptTOS(SelectedGameserver)){ +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 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) { +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 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(){ +const sidebarReference = document.getElementById("sidebar"); +let clickableMenueEntries: HTMLElement[] = []; +function updateView() { // This is for updating the ui to new data - - if(GameServerList){ + if (GameServerList) { // Clear every thing out while (sidebarReference.firstChild) { - sidebarReference.removeChild(sidebarReference.firstChild); + sidebarReference.removeChild(sidebarReference.firstChild); } - GameServerList.forEach((server)=>{ + GameServerList.forEach((server) => { sidebarReference.appendChild(server.getMenuEntry()); }); //Switch page according localstorage: - if(GameServerList.length != 0){ + if (GameServerList.length != 0) { const selectedServer = localStorage.getItem("selected_server"); - if(selectedServer && selectedServer !==null ){ - if(GameServerList.filter((server)=>server.name==selectedServer).length == 0){ + 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'); + switchPage("SERVER", GameServerList[0].name, "INFO"); + } else { + switchPage("SERVER", selectedServer, "INFO"); } - }else{ + } else { //TODO ask if is on special page like global settings first - switchPage("SERVER", GameServerList[0].name, 'INFO'); + switchPage("SERVER", GameServerList[0].name, "INFO"); } } } } -const serverPage = document.getElementById('serverPage'); -const switchPageEvent = document.createElement('span'); +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]; +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); + serverPage.removeChild(serverPage.firstChild); } let page = SelectedGameserver.pageController.getPage(event.detail.subPage); serverPage.appendChild(page); // page.classList.add('animated'); // page.classList.add('fadeIn'); - }else{ + } else { SelectedGameserver == null; - } - if(typeof(SelectedGameserver) === "undefined" || SelectedGameserver == null){ + if (typeof SelectedGameserver === "undefined" || SelectedGameserver == null) { // No gameserver selected playBtn.hidden = true; - }else{ + } else { // A gameserver is selected - playBtn.innerText=`Play ${SelectedGameserver.menuName}`; + 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){ +let peviousSelectedGameserver: any = null; +const contentBackground = document.getElementById("contentBackground"); +function setBackground() { + if (peviousSelectedGameserver !== SelectedGameserver) { while (contentBackground.firstChild) { - contentBackground.removeChild(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'); + 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'); + background1.classList.add("animated"); + background1.classList.add("fadeIn"); } - contentBackground.appendChild(document.createElement('div')) - contentBackground.hidden=false; - contentBackground.classList.remove('hidden'); + contentBackground.appendChild(document.createElement("div")); + contentBackground.hidden = false; + contentBackground.classList.remove("hidden"); } } peviousSelectedGameserver = SelectedGameserver; } -ipcRenderer.on('status-update', (event:any, status:any) => { +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'; +import { GameServers } from "./gameserver/data"; GameServerList = GameServers; updateView(); -- cgit v1.2.3-60-g2f50