1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-08 06:08:20 -05:00

Update server banner plugin for .net 8

This commit is contained in:
RaidMax 2024-06-22 11:49:53 -05:00
parent 34af7a332c
commit d786d7c336

View File

@ -9,7 +9,7 @@ const serverOrderCache = [];
const plugin = { const plugin = {
author: 'RaidMax', author: 'RaidMax',
version: '1.0', version: '1.1',
name: 'Server Banner', name: 'Server Banner',
serviceResolver: null, serviceResolver: null,
scriptHelper: null, scriptHelper: null,
@ -26,6 +26,9 @@ const plugin = {
this.manager = serviceResolver.resolveService('IManager'); this.manager = serviceResolver.resolveService('IManager');
this.logger = serviceResolver.resolveService('ILogger', ['ScriptPluginV2']); this.logger = serviceResolver.resolveService('ILogger', ['ScriptPluginV2']);
this.webfrontUrl = serviceResolver.resolveService('ApplicationConfiguration').webfrontUrl; this.webfrontUrl = serviceResolver.resolveService('ApplicationConfiguration').webfrontUrl;
this.logger.logInformation('{Name} {Version} by {Author} loaded,', this.name, this.version,
this.author);
}, },
onServerMonitoringStart: function (startEvent) { onServerMonitoringStart: function (startEvent) {
@ -123,11 +126,13 @@ const plugin = {
}, },
}; };
plugin.manager.getServers().forEach(eachServer => { const servers = plugin.manager.servers;
if (eachServer.id === serverId) { for (let i = 0; i < servers.length; i++) {
server = eachServer; if (servers[i].id === serverId) {
server = servers[i];
break;
}
} }
});
if (serverLocationCache[server.listenAddress] === undefined) { if (serverLocationCache[server.listenAddress] === undefined) {
plugin.onServerMonitoringStart({ plugin.onServerMonitoringStart({
@ -280,7 +285,7 @@ const plugin = {
<div class="server-container small" id="server"> <div class="server-container small" id="server">
<div class="first-line small"> <div class="first-line small">
<div class="game-icon small"></div> <div class="game-icon small"></div>
<div class="header" style="${colorLeft}">${server.serverName.stripColors()}</div> <div class="header" id="serverName" style="${colorLeft}"></div>
</div> </div>
<div class="third-line game-info small"> <div class="third-line game-info small">
${status} ${status}
@ -298,6 +303,10 @@ const plugin = {
</div> </div>
</div> </div>
</div> </div>
<script>
const serverNameElem = document.getElementById('serverName');
serverNameElem.textContent = '${server.serverName.stripColors()}';
</script>
</body> </body>
</html>`; </html>`;
} }
@ -310,7 +319,7 @@ const plugin = {
style="background: url('https://raidmax.org/resources/images/icons/games/${gameCode}.jpg');"> style="background: url('https://raidmax.org/resources/images/icons/games/${gameCode}.jpg');">
</div> </div>
<div style="flex: 1; ${colorLeft}" class="game-info large"> <div style="flex: 1; ${colorLeft}" class="game-info large">
<div class="header">${server.serverName.stripColors()}</div> <div class="header" id="serverName"></div>
<div class="text-weight-lighter subtitle">${displayIp}:${server.listenPort}</div> <div class="text-weight-lighter subtitle">${displayIp}:${server.listenPort}</div>
<div class="players-flag-section"> <div class="players-flag-section">
<div class="subtitle">${server.throttled ? '-' : server.clientNum}/${server.maxClients} Players</div> <div class="subtitle">${server.throttled ? '-' : server.clientNum}/${server.maxClients} Players</div>
@ -324,6 +333,10 @@ const plugin = {
${status} ${status}
</div> </div>
</div> </div>
<script>
const serverNameElem = document.getElementById('serverName');
serverNameElem.textContent = '${server.serverName.stripColors()}';
</script>
</body> </body>
</html>`; </html>`;
}; };
@ -346,22 +359,24 @@ const plugin = {
interactionData.scriptAction = (_, __, ___, ____, _____) => { interactionData.scriptAction = (_, __, ___, ____, _____) => {
if (Object.keys(serverOrderCache).length === 0) { if (Object.keys(serverOrderCache).length === 0) {
plugin.manager.getServers().forEach(server => { for (let i = 0; i < plugin.manager.servers.length; i++) {
const server = plugin.manager.servers[i];
plugin.onServerMonitoringStart({ plugin.onServerMonitoringStart({
server: server server: server
}); });
}); }
} }
let response = '<div class="d-flex flex-row flex-wrap" style="margin-left: -1rem; margin-top: -1rem;">'; let response = '<div class="d-flex flex-row flex-wrap" style="margin-left: -1rem; margin-top: -1rem;">';
Object.keys(serverOrderCache).forEach(key => { Object.keys(serverOrderCache).forEach(key => {
const servers = serverOrderCache[key]; const servers = serverOrderCache[key];
servers.forEach(eachServer => { for (let i = 0; i < servers.length; i++) {
const eachServer = servers[i];
response += `<div class="w-full w-xl-half"> response += `<div class="w-full w-xl-half">
<div class="card m-10 p-20"> <div class="card m-10 p-20">
<div class="font-size-16 mb-10"> <div class="font-size-16 mb-10">
<div class="badge ml-10 float-right font-size-16">${eachServer.gameCode}</div> <div class="badge ml-10 float-right font-size-16">${eachServer.gameCode}</div>
${eachServer.serverName.stripColors()} <div id="serverName"></div>
</div> </div>
<div style="overflow: hidden"> <div style="overflow: hidden">
@ -387,8 +402,12 @@ const plugin = {
<br/>&nbsp;width="400" height="70" style="border-width: 0; overflow: hidden;"&gt;<br/> <br/>&nbsp;width="400" height="70" style="border-width: 0; overflow: hidden;"&gt;<br/>
&lt;/iframe&gt;</div> &lt;/iframe&gt;</div>
</div> </div>
</div>`; </div>
}); <script>
const serverNameElem = document.getElementById('serverName');
serverNameElem.textContent = '${eachServer.serverName.stripColors()}';
</script>`;
}
}); });
response += '</div>'; response += '</div>';