summaryrefslogtreecommitdiff
path: root/src/renderer/gameserver/server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/gameserver/server.ts')
-rw-r--r--src/renderer/gameserver/server.ts267
1 files changed, 134 insertions, 133 deletions
diff --git a/src/renderer/gameserver/server.ts b/src/renderer/gameserver/server.ts
index 4c54235..654eaac 100644
--- a/src/renderer/gameserver/server.ts
+++ b/src/renderer/gameserver/server.ts
@@ -6,20 +6,20 @@ import { makeOnlineCounterList, OnlineListParser } from './onlineCount';
export default class GameServer {
constructor(
- public profile:GameServerProfile,
- public menuName:string,
- public name:string,
- 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 icon:string,
- public socialLinks:socialLink[],
- public TOSLink:string,
- public OnlineList:{parser:OnlineListParser,url:string},
- ){}
-
- getMenuEntry():HTMLElement{
+ public profile: GameServerProfile,
+ public menuName: string,
+ public name: string,
+ 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 icon: string,
+ public socialLinks: socialLink[],
+ public TOSLink: string,
+ public OnlineList: { parser: OnlineListParser, url: string },
+ ) { }
+
+ getMenuEntry(): HTMLElement {
const sidebarItem = document.createElement('div');
sidebarItem.classList.add("sidebarItem");
//Online counter
@@ -42,44 +42,45 @@ export default class GameServer {
title.appendChild(titleText);
- title.addEventListener('click', ()=>{
- switchPage("SERVER",this.name);
+ title.addEventListener('click', () => {
+ switchPage("SERVER", this.name);
});
-
- let onlineBoxActive:boolean = false;
- let onlineBoxSchouldBeActive:boolean = false;
- let updateOnlineContainer = async () => {
- if(onlineBoxSchouldBeActive == onlineBoxActive)return;
- onlineBoxActive = onlineBoxSchouldBeActive;
- while (OnlineCounterContainer.firstChild) {
+ if (this.profile.address != 'noServer') {
+ let onlineBoxActive: boolean = false;
+ let onlineBoxSchouldBeActive: boolean = false;
+ let updateOnlineContainer = async () => {
+ if (onlineBoxSchouldBeActive == onlineBoxActive) return;
+ onlineBoxActive = onlineBoxSchouldBeActive;
+ while (OnlineCounterContainer.firstChild) {
OnlineCounterContainer.removeChild(OnlineCounterContainer.firstChild);
+ }
+ if (onlineBoxSchouldBeActive) {
+ OnlineCounterContainer.appendChild(await makeOnlineCounterList(this));
+ }
+ console.log(onlineBoxSchouldBeActive);
}
- if(onlineBoxSchouldBeActive){
- OnlineCounterContainer.appendChild(await makeOnlineCounterList(this));
- }
- console.log(onlineBoxSchouldBeActive);
- }
- let SetUpdate = (state:boolean)=>{
- onlineBoxSchouldBeActive = state;
- setTimeout(()=>{updateOnlineContainer();},160);
- };
+ let SetUpdate = (state: boolean) => {
+ onlineBoxSchouldBeActive = state;
+ setTimeout(() => { updateOnlineContainer(); }, 160);
+ };
- title.addEventListener("mouseover", ()=>{
- SetUpdate(true);
- });
+ title.addEventListener("mouseover", () => {
+ SetUpdate(true);
+ });
- title.addEventListener("mouseout", ()=>{
- SetUpdate(false);
- });
+ title.addEventListener("mouseout", () => {
+ SetUpdate(false);
+ });
- OnlineCounterContainer.addEventListener("mouseover", ()=>{
- SetUpdate(true);
- });
+ OnlineCounterContainer.addEventListener("mouseover", () => {
+ SetUpdate(true);
+ });
- OnlineCounterContainer.addEventListener("mouseout", ()=>{
- SetUpdate(false);
- });
+ OnlineCounterContainer.addEventListener("mouseout", () => {
+ SetUpdate(false);
+ });
+ }
sidebarItem.appendChild(title);
@@ -91,14 +92,14 @@ export default class GameServer {
info.innerHTML = '<i class="fas fa-info fa-fw"></i>Information';
container.appendChild(info);
- info.addEventListener('click', ()=>{
- switchPage("SERVER",this.name);
+ info.addEventListener('click', () => {
+ switchPage("SERVER", this.name);
});
const news = document.createElement('div');
news.innerHTML = '<i class="far fa-newspaper fa-fw"></i>News <i class="fas fa-external-link-alt" data-fa-transform="shrink-2"></i>';
- if(this.newsPageUrl && this.newsPageUrl!==null){
- news.addEventListener('click', ()=>{
+ if (this.newsPageUrl && this.newsPageUrl !== null) {
+ news.addEventListener('click', () => {
shell.openExternal(this.newsPageUrl);
});
} else {
@@ -111,35 +112,35 @@ export default class GameServer {
screenshots.innerHTML = '<i class="fas fa-camera fa-fw"></i>Screenshots';
container.appendChild(screenshots);
- screenshots.addEventListener('click', ()=>{
+ screenshots.addEventListener('click', () => {
switchPage("SERVER", this.name, "SCREENSHOTS");
- });
-
+ })
const preferences = document.createElement('div');
- preferences.innerHTML = '<i class="fas fa-sliders-h fa-fw"></i>Preferences';
- preferences.addEventListener('click', ()=>{
- switchPage("SERVER",this.name,"PREF");
- });
- container.appendChild(preferences);
-
+ if(this.profile.address != 'noServer'){
+ preferences.innerHTML = '<i class="fas fa-sliders-h fa-fw"></i>Preferences';
+ preferences.addEventListener('click', () => {
+ switchPage("SERVER", this.name, "PREF");
+ });
+ container.appendChild(preferences);
+ }
sidebarItem.appendChild(container);
//event Target / interactivity
const events = document.createElement('span');
events.classList.add("switch-page-event");
- events.addEventListener("site-changed", (event:CustomEvent)=>{
+ events.addEventListener("site-changed", (event: CustomEvent) => {
sidebarItem.classList.remove("selected");
info.classList.remove("selected");
//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");
// } else
- if(event.detail.subPage === "PREF") {
+ if (event.detail.subPage === "PREF") {
preferences.classList.add("selected");
- } else if(event.detail.subPage === "SCREENSHOTS") {
+ } else if (event.detail.subPage === "SCREENSHOTS") {
screenshots.classList.add("selected");
} else {
info.classList.add("selected");
@@ -151,13 +152,13 @@ export default class GameServer {
return sidebarItem;
}
- getPage(type:string):HTMLElement{
+ getPage(type: string): HTMLElement {
const page = document.createElement('div');
- if (typeof(type) === undefined || type == null){
+ if (typeof (type) === undefined || type == null) {
page.appendChild(this.getInfoPage());
- } else if (type == "SCREENSHOTS"){
+ } else if (type == "SCREENSHOTS") {
page.appendChild(this.getScreenshotsPage());
- } else if (type == "PREF"){
+ } else if (type == "PREF") {
page.appendChild(this.getPreferencesPage());
} else {
const content = document.createElement('div');
@@ -169,7 +170,7 @@ export default class GameServer {
return page;
}
- private getInfoPage():HTMLElement{
+ private getInfoPage(): HTMLElement {
const content = document.createElement('div');
content.classList.add("infoServerPage");
@@ -180,8 +181,8 @@ export default class GameServer {
const socialContainer = document.createElement('div');
socialContainer.classList.add("socialContainer");
- setTimeout(()=>{
- this.socialLinks.forEach((link)=>{
+ setTimeout(() => {
+ this.socialLinks.forEach((link) => {
socialContainer.appendChild(link.getHTML());
});
}, 5);
@@ -191,17 +192,17 @@ export default class GameServer {
shrtDsrption.classList.add("shortDescription");
shrtDsrption.innerText = this.shortDescription;
content.appendChild(shrtDsrption);
- if(this.newsLatestPage && this.newsLatestPage != null){
+ if (this.newsLatestPage && this.newsLatestPage != null) {
const latestNews = document.createElement('div');
latestNews.classList.add("news");
content.appendChild(latestNews);
- News.get(this.newsLatestPage.url,this.newsLatestPage.type).then((result:string)=>{
+ News.get(this.newsLatestPage.url, this.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].addEventListener('click', () => {
+ shell.openExternal(href);
});
aTags[i].href = "#";
}
@@ -211,7 +212,7 @@ export default class GameServer {
return content;
}
- private getPreferencesPage():HTMLElement{
+ private getPreferencesPage(): HTMLElement {
const content = document.createElement('div');
content.classList.add("preferencesServerPage");
@@ -226,22 +227,22 @@ export default class GameServer {
const loginUsernameLabel = document.createElement('label');
loginUsernameLabel.innerText = "Username";
const loginUsername = document.createElement('input') as HTMLInputElement;
- loginUsername.value = localStorage.getItem("2_username_"+this.profile.address);
+ loginUsername.value = localStorage.getItem("2_username_" + this.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.profile.address);
+ loginPin.value = localStorage.getItem("2_pin_" + this.profile.address);
loginPinLabel.appendChild(loginPin);
- const saveBtn = document.createElement('button') as HTMLButtonElement;
+ const saveBtn = document.createElement('button') as HTMLButtonElement;
saveBtn.innerText = "save";
- saveBtn.addEventListener('click', ()=>{
- localStorage.setItem("2_username_"+this.profile.address, loginUsername.value);
- localStorage.setItem("2_pin_"+this.profile.address, loginPin.value);
+ saveBtn.addEventListener('click', () => {
+ localStorage.setItem("2_username_" + this.profile.address, loginUsername.value);
+ localStorage.setItem("2_pin_" + this.profile.address, loginPin.value);
this.updateLoginTextElement();
});
@@ -253,94 +254,94 @@ export default class GameServer {
return content;
}
- private getScreenshotsPage():HTMLElement{
+ private getScreenshotsPage(): HTMLElement {
const screenshotContainer = document.createElement('div');
screenshotContainer.classList.add("screenshotsContainer");
- screenshotContainer.id="screenshots";
+ screenshotContainer.id = "screenshots";
ipcRenderer.send('getScreenshots', this.profile.address);
return screenshotContainer;
}
- updateLoginTextElement():void{
- const account = localStorage.getItem("2_username_"+this.profile.address);
- const pin = localStorage.getItem("2_pin_"+this.profile.address);
+ updateLoginTextElement(): void {
+ const account = localStorage.getItem("2_username_" + this.profile.address);
+ const pin = localStorage.getItem("2_pin_" + this.profile.address);
const element = document.getElementById('LoginText');
- if(account && pin){
+ if (account && pin) {
element.innerHTML = `Logged in as <b>${account}</b>`;
- }else{
+ } else {
element.innerHTML = "Automatic login not set up";
}
}
- play(){
- 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);
+ play() {
+ 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);
}
}
export class socialLink {
constructor(
- public icon:string,// has to be one from font awesome -https://fontawesome.com/icons
- public tooltip:string,
- public url:string
- ){}
+ public icon: string,// has to be one from font awesome -https://fontawesome.com/icons
+ public tooltip: string,
+ public url: string
+ ) { }
- getHTML():HTMLElement{
+ getHTML(): HTMLElement {
//<button onclick="sv.openSocialLink(this)" socialLink="abc"><i class="fa fa-user"></i></button><br>
const element = document.createElement('button');
- element.onclick = ()=>{this.open()};
+ element.onclick = () => { this.open() };
element.innerHTML = `<i class="${this.icon}"></i>`;
element.title = this.tooltip;
return element;
}
- open(){
+ open() {
console.log("A link was clicked!", this.url);
- if(this.url)
- shell.openExternal(this.url.indexOf("://")!==-1?this.url:`https://${this.url}`);
+ if (this.url)
+ shell.openExternal(this.url.indexOf("://") !== -1 ? this.url : `https://${this.url}`);
}
}
-ipcRenderer.on('getScreenshots', (event:any, data:{dir:string, screenshots:string[]}) => {
+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)
- })
+ 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'."
+ });
+ } 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(nothingHere);
+ }
- const openFolderButton = document.createElement('button');
- openFolderButton.innerText = "Open folder to see all";
- openFolderButton.addEventListener('click', ()=>{
- shell.openItem(data.dir);
- });
- 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);
+ }
})