From e2e766378b03b77cbba5d30c7aa732d9a744ebff Mon Sep 17 00:00:00 2001 From: oOHiyoriOo Date: Sat, 13 Jun 2026 18:55:46 +0200 Subject: [PATCH] feat: add fun/admin actions to player info page Added button group below stats: Kill, Heal, Moderator, Owner. - Kill/Heal are plugin-dependent (kill/heal commands) - Moderator/Owner are standard Rust RCON (moderatorid/ownerid) - Buttons hidden until player is confirmed online - Confirm dialogs on all destructive actions Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- js/pages/playerInfo.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/js/pages/playerInfo.js b/js/pages/playerInfo.js index d8d206f..87cd134 100644 --- a/js/pages/playerInfo.js +++ b/js/pages/playerInfo.js @@ -26,6 +26,14 @@ function PlayerInfoPage(params, container) { '
' + '
Loading…
' + '
' + + '' + '' + ''; container.innerHTML = html; @@ -40,9 +48,11 @@ function PlayerInfoPage(params, container) { if (!info) { document.getElementById('pi-notfound').style.display = 'block'; document.getElementById('pi-fields').innerHTML = ''; + document.getElementById('pi-actions').style.display = 'none'; return; } document.getElementById('pi-notfound').style.display = 'none'; + document.getElementById('pi-actions').style.display = 'block'; // Fix known Rust RCON quirk: VoiationLevel → ViolationLevel if (info.VoiationLevel !== undefined) { @@ -88,6 +98,32 @@ function PlayerInfoPage(params, container) { } }); + var pname = document.getElementById('pi-username'); + + document.getElementById('pi-kill').addEventListener('click', function () { + if (confirm('Kill ' + pname.textContent + '? (plugin required)')) { + Rcon.command('kill ' + userid); + } + }); + + document.getElementById('pi-heal').addEventListener('click', function () { + if (confirm('Heal ' + pname.textContent + '? (plugin required)')) { + Rcon.command('heal ' + userid); + } + }); + + document.getElementById('pi-mod').addEventListener('click', function () { + if (confirm('Promote ' + pname.textContent + ' to Moderator?')) { + Rcon.command('moderatorid ' + userid + ' ' + pname.textContent); + } + }); + + document.getElementById('pi-owner').addEventListener('click', function () { + if (confirm('Promote ' + pname.textContent + ' to Owner?')) { + Rcon.command('ownerid ' + userid + ' ' + pname.textContent); + } + }); + if (Rcon.isConnected()) refresh(); else { var _c = function () { refresh(); Rcon.off('connected', _c); }; Rcon.on('connected', _c); } }