Update k8s/games/minecraft/deployments.yaml
All checks were successful
Check with kubeconform / lint (push) Successful in 17s
All checks were successful
Check with kubeconform / lint (push) Successful in 17s
This commit is contained in:
@@ -45,111 +45,17 @@ data:
|
|||||||
# Replace default Dynmap title with custom server name
|
# Replace default Dynmap title with custom server name
|
||||||
sub_filter 'Minecraft Dynamic Map' "Hexor's MC server";
|
sub_filter 'Minecraft Dynamic Map' "Hexor's MC server";
|
||||||
|
|
||||||
# Inject custom JavaScript and UI elements before closing body tag
|
# Inject main JavaScript functions before closing body tag
|
||||||
sub_filter "</body>" '
|
sub_filter "</body>" '<script>function getUsername(){var headers=document.querySelectorAll("meta");for(var i=0;i<headers.length;i++){if(headers[i].getAttribute("name")==="remote-user"){return headers[i].getAttribute("content");}}var jwt=document.cookie.split("; ").find(row=>row.startsWith("authentik_session="));if(jwt){try{var token=jwt.split("=")[1];var payload=JSON.parse(atob(token.split(".")[1]));return payload.sub||payload.username||"web-user";}catch(e){}}return "web-user";}var username=getUsername();console.log("Username found:", username);if(username && username!=="web-user" && window.location.search.indexOf("playername=")===-1){var currentUrl=new URL(window.location.href);currentUrl.searchParams.set("playername",username);console.log("Redirecting to:", currentUrl.href);window.location.href=currentUrl.href;}document.addEventListener("DOMContentLoaded",function(){var userBlock=document.createElement("div");userBlock.style.cssText="background-color: #CEC6CB; color: black; padding: 8px; text-align: center; font-size: medium; border-radius: 4px; position: absolute; top: 10px; right: 10px; max-width: 200px;";userBlock.innerHTML="Logged in as: <b>"+username+"</b>";document.body.appendChild(userBlock);});</script></body>';
|
||||||
<script>
|
|
||||||
// Function to extract username from various sources
|
|
||||||
function getUsername() {
|
|
||||||
// First try to get from meta tag (set by Authentik)
|
|
||||||
var headers = document.querySelectorAll("meta");
|
|
||||||
for (var i = 0; i < headers.length; i++) {
|
|
||||||
if (headers[i].getAttribute("name") === "remote-user") {
|
|
||||||
return headers[i].getAttribute("content");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fallback: try to decode JWT from cookie
|
# Add server information panel
|
||||||
var jwt = document.cookie.split("; ").find(row => row.startsWith("authentik_session="));
|
sub_filter '</body>' '<p style="background-color: #CEC6CB; color: black; padding: 10px 10px; text-align: center; font-size: large; text-decoration: none; display: inline-block; border-radius: 4px; position: absolute; top: 10px; left: 150px;">Get <a href="https://github.com/PrismLauncher/PrismLauncher/releases/tag/8.4" >Prism Launcher</a> and <a href="/clients/1.12.2.zip" >client.zip</a> for this server. Server address <b>minecraft.hexor.cy:30565</b><br><br><a href="#" onclick="showInstallModal(); return false;" style="color: black; text-decoration: underline;">Windows Install Script</a></p></body>';
|
||||||
if (jwt) {
|
|
||||||
try {
|
|
||||||
var token = jwt.split("=")[1];
|
|
||||||
var payload = JSON.parse(atob(token.split(".")[1]));
|
|
||||||
return payload.sub || payload.username || "web-user";
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Default fallback username
|
# Add installation modal
|
||||||
return "web-user";
|
sub_filter '</body>' '<div id="installModal" style="display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5);"><div style="background-color: #CEC6CB; margin: 15% auto; padding: 10px; border-radius: 4px; width: 70%; max-width: 500px; text-align: center; color: black; font-size: large;"><h3 style="margin-top: 0; color: black;">Windows Installation</h3><p style="color: black;">Copy and paste this command into PowerShell (run as Administrator):</p><textarea id="scriptCommand" readonly style="width: 90%; height: 60px; font-family: monospace; padding: 8px; border: 1px solid #888; border-radius: 4px; resize: none; background-color: white; color: black;">iwr -useb https://minecraft.hexor.cy/clients/win-install.ps1 | iex</textarea><br><br><button id="copyButton" onclick="copyToClipboard()" style="background-color: #CEC6CB; color: black; padding: 10px 15px; border: 1px solid #888; border-radius: 4px; cursor: pointer; margin-right: 10px; font-size: large; text-decoration: none;">Copy</button><button onclick="closeInstallModal()" style="background-color: #CEC6CB; color: black; padding: 10px 15px; border: 1px solid #888; border-radius: 4px; cursor: pointer; font-size: large; text-decoration: none;">Close</button></div></div></body>';
|
||||||
}
|
|
||||||
|
|
||||||
// Get username and add to URL parameters if not already present
|
# Add modal control functions
|
||||||
var username = getUsername();
|
sub_filter '</body>' '<script>function showInstallModal() { document.getElementById("installModal").style.display = "block"; } function closeInstallModal() { document.getElementById("installModal").style.display = "none"; } function copyToClipboard() { var textarea = document.getElementById("scriptCommand"); textarea.select(); textarea.setSelectionRange(0, 99999); if (document.execCommand("copy")) { var button = document.getElementById("copyButton"); button.style.borderColor = "#4CAF50"; setTimeout(function() { button.style.borderColor = "#888"; }, 2000); } } window.onclick = function(event) { var modal = document.getElementById("installModal"); if (event.target == modal) { closeInstallModal(); } }</script></body>';
|
||||||
console.log("Username found:", username);
|
|
||||||
|
|
||||||
// Auto-redirect to add playername parameter for authenticated users
|
|
||||||
if (username && username !== "web-user" && window.location.search.indexOf("playername=") === -1) {
|
|
||||||
var currentUrl = new URL(window.location.href);
|
|
||||||
currentUrl.searchParams.set("playername", username);
|
|
||||||
console.log("Redirecting to:", currentUrl.href);
|
|
||||||
window.location.href = currentUrl.href;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add user info block to page after DOM loads
|
|
||||||
document.addEventListener("DOMContentLoaded", function() {
|
|
||||||
var userBlock = document.createElement("div");
|
|
||||||
userBlock.style.cssText = "background-color: #CEC6CB; color: black; padding: 8px; text-align: center; font-size: medium; border-radius: 4px; position: absolute; top: 10px; right: 10px; max-width: 200px;";
|
|
||||||
userBlock.innerHTML = "Logged in as: <b>" + username + "</b>";
|
|
||||||
document.body.appendChild(userBlock);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Server information and download links panel -->
|
|
||||||
<p style="background-color: #CEC6CB; color: black; padding: 10px 10px; text-align: center; font-size: large; text-decoration: none; display: inline-block; border-radius: 4px; position: absolute; top: 10px; left: 150px;">
|
|
||||||
Get <a href="https://github.com/PrismLauncher/PrismLauncher/releases/tag/8.4">Prism Launcher</a>
|
|
||||||
and <a href="/clients/1.12.2.zip">client.zip</a> for this server.
|
|
||||||
Server address <b>minecraft.hexor.cy:30565</b>
|
|
||||||
<br><br>
|
|
||||||
<a href="#" onclick="showInstallModal(); return false;" style="color: black; text-decoration: underline;">
|
|
||||||
Windows Install Script
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<!-- Modal for Windows installation instructions -->
|
|
||||||
<div id="installModal" style="display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,0.5);">
|
|
||||||
<div style="background-color: #CEC6CB; margin: 15% auto; padding: 10px; border-radius: 4px; width: 70%; max-width: 500px; text-align: center; color: black; font-size: large;">
|
|
||||||
<h3 style="margin-top: 0; color: black;">Windows Installation</h3>
|
|
||||||
<p style="color: black;">Copy and paste this command into PowerShell (run as Administrator):</p>
|
|
||||||
<textarea id="scriptCommand" readonly style="width: 90%; height: 60px; font-family: monospace; padding: 8px; border: 1px solid #888; border-radius: 4px; resize: none; background-color: white; color: black;">iwr -useb https://minecraft.hexor.cy/clients/win-install.ps1 | iex</textarea>
|
|
||||||
<br><br>
|
|
||||||
<button id="copyButton" onclick="copyToClipboard()" style="background-color: #CEC6CB; color: black; padding: 10px 15px; border: 1px solid #888; border-radius: 4px; cursor: pointer; margin-right: 10px; font-size: large; text-decoration: none;">Copy</button>
|
|
||||||
<button onclick="closeInstallModal()" style="background-color: #CEC6CB; color: black; padding: 10px 15px; border: 1px solid #888; border-radius: 4px; cursor: pointer; font-size: large; text-decoration: none;">Close</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
// Modal control functions
|
|
||||||
function showInstallModal() {
|
|
||||||
document.getElementById("installModal").style.display = "block";
|
|
||||||
}
|
|
||||||
|
|
||||||
function closeInstallModal() {
|
|
||||||
document.getElementById("installModal").style.display = "none";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Copy PowerShell command to clipboard
|
|
||||||
function copyToClipboard() {
|
|
||||||
var textarea = document.getElementById("scriptCommand");
|
|
||||||
textarea.select();
|
|
||||||
textarea.setSelectionRange(0, 99999);
|
|
||||||
|
|
||||||
if (document.execCommand("copy")) {
|
|
||||||
var button = document.getElementById("copyButton");
|
|
||||||
button.style.borderColor = "#4CAF50";
|
|
||||||
setTimeout(function() {
|
|
||||||
button.style.borderColor = "#888";
|
|
||||||
}, 2000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close modal when clicking outside of it
|
|
||||||
window.onclick = function(event) {
|
|
||||||
var modal = document.getElementById("installModal");
|
|
||||||
if (event.target == modal) {
|
|
||||||
closeInstallModal();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>';
|
|
||||||
|
|
||||||
# Apply sub_filter replacements globally (not just once)
|
# Apply sub_filter replacements globally (not just once)
|
||||||
sub_filter_once off;
|
sub_filter_once off;
|
||||||
|
Reference in New Issue
Block a user