Showing server mods in discord embed #5

This commit is contained in:
Dennis Heinrich 2024-11-26 01:05:36 +01:00
parent e4f485217f
commit ae1413db60
3 changed files with 27 additions and 0 deletions

View file

@ -0,0 +1,5 @@
export default interface IMod {
name: string;
author: string;
version: string;
}

View file

@ -124,12 +124,19 @@ export default class DiscordEmbed {
serverPassword = "-/-"; serverPassword = "-/-";
} }
let serverMods = serverStats.getServerMods();
let serverModsText = "-/-";
if(serverMods.length > 0) {
serverModsText = serverMods.map(mod => `${mod.name}`).join(', ');
}
// @ts-ignore // @ts-ignore
embed.addFields( embed.addFields(
{name: config.translation.discordEmbed.titleServerName, value: serverStats.getServerName()}, {name: config.translation.discordEmbed.titleServerName, value: serverStats.getServerName()},
{name: config.translation.discordEmbed.titleServerPassword, value: serverPassword}, {name: config.translation.discordEmbed.titleServerPassword, value: serverPassword},
{name: config.translation.discordEmbed.titleServerTime, value: serverStats.getServerTime()}, {name: config.translation.discordEmbed.titleServerTime, value: serverStats.getServerTime()},
{name: config.translation.discordEmbed.titleServerMap, value: serverStats.getServerMap()}, {name: config.translation.discordEmbed.titleServerMap, value: serverStats.getServerMap()},
{name: config.translation.discordEmbed.titleServerMods, value: serverModsText},
{ {
name: `${config.translation.discordEmbed.titlePlayerCount} (${serverStats.getPlayerCount()}/${serverStats.getMaxPlayerCount()}):`, name: `${config.translation.discordEmbed.titlePlayerCount} (${serverStats.getPlayerCount()}/${serverStats.getMaxPlayerCount()}):`,
value: playerListString value: playerListString

View file

@ -4,6 +4,7 @@ import {XMLParser} from "fast-xml-parser";
import Logging from "./Logging"; import Logging from "./Logging";
import IPlayer from "../Interfaces/Feed/IPlayer"; import IPlayer from "../Interfaces/Feed/IPlayer";
import IConfiguration from "../Interfaces/Configuration/IConfiguration"; import IConfiguration from "../Interfaces/Configuration/IConfiguration";
import IMod from "../Interfaces/Feed/IMod";
export const CONNECTION_REFUSED = 'ECONNREFUSED'; export const CONNECTION_REFUSED = 'ECONNREFUSED';
export const NOT_FOUND = 'ENOTFOUND'; export const NOT_FOUND = 'ENOTFOUND';
@ -118,6 +119,20 @@ export default class ServerStatusFeed {
return dayTime / (60 * 60 * 1000) + 0.0001; return dayTime / (60 * 60 * 1000) + 0.0001;
} }
public getServerMods(): IMod[] {
let modList = this.getServerStats()?.Server.Mods.Mod;
if(modList === undefined || !Array.isArray(modList)) {
return [];
}
return modList.map((mod: any) => {
return {
name: mod['#text'],
author: mod.author,
version: mod.version
} as IMod;
});
}
/** /**
* Returns the server month as a string * Returns the server month as a string
* @returns {string} The server month as a string * @returns {string} The server month as a string