Files

136 lines
7.5 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#10130f" />
<meta name="description" content="Live Minecraft bot dashboard" />
<title>Mosfet · Minecraft Bot</title>
<link rel="stylesheet" href="/static/css/dashboard.css?v=19" />
<script defer src="/static/js/dashboard.js?v=19"></script>
</head>
<body>
<div class="shell">
<main>
<section class="hero panel">
<div class="hero-main">
<div class="eyebrow">LIVE SESSION <span class="eyebrow-line"></span></div>
<h1 id="bot-name">Mosfet<span class="name-period">.</span></h1>
<p id="session-subtitle" class="session-subtitle">Waiting for the bot connection</p>
</div>
<div class="hero-coordinates">
<div class="coordinate-label">CURRENT POSITION</div>
<div id="position" class="coordinate-value">—</div>
<div id="dimension" class="dimension-value">NO DIMENSION</div>
</div>
<div class="hero-grid" aria-hidden="true"></div>
<div class="hero-glow" aria-hidden="true"></div>
</section>
<section class="stats-grid" aria-label="Bot status">
<article class="stat-card panel">
<div class="stat-top"><span class="stat-label">HEALTH</span><span class="stat-icon heart">♥</span></div>
<div class="stat-value"><span id="health-value">—</span><small>/ 20</small></div>
<div class="meter"><span id="health-meter" class="meter-fill health-fill"></span></div>
</article>
<article class="stat-card panel">
<div class="stat-top"><span class="stat-label">HUNGER</span><span class="stat-icon food">◆</span></div>
<div class="stat-value"><span id="food-value">—</span><small>/ 20</small></div>
<div class="meter"><span id="food-meter" class="meter-fill food-fill"></span></div>
<div id="food-saturation" class="stat-caption">Saturation —</div>
</article>
<article class="stat-card panel">
<div class="stat-top"><span class="stat-label">MOVEMENT</span><span class="live-dot"></span></div>
<div id="movement-value" class="stat-value stat-word">IDLE</div>
<div id="movement-detail" class="stat-caption">No active path</div>
</article>
<article class="stat-card panel">
<div class="stat-top"><span class="stat-label">WORLD CACHE</span><span class="stat-icon cache-icon">▦</span></div>
<div class="stat-value"><span id="chunk-count">—</span><small> chunks</small></div>
<div id="chunk-detail" class="stat-caption">Waiting for world data</div>
</article>
</section>
<section class="content-grid">
<section class="inventory-panel panel">
<div class="section-heading">
<div>
<div class="eyebrow">PLAYER STORAGE</div>
<h2>Inventory</h2>
</div>
<div class="inventory-summary">
<span id="inventory-count">0 items</span>
<span class="heading-divider"></span>
<span id="inventory-slots">0 / 46 slots</span>
</div>
</div>
<div id="inventory-warning" class="inventory-warning" hidden>
Some item components are not decoded yet; displayed contents may be partial.
</div>
<div id="inventory-grid" class="inventory-grid" aria-label="Minecraft inventory"></div>
<div class="inventory-legend"><span class="legend-swatch"></span> Empty slot <span class="legend-selected"></span> Selected hotbar slot <span class="legend-note">Hover for details · click an item for actions</span></div>
</section>
<aside class="side-column">
<section id="minimap-panel" class="side-panel panel minimap-panel">
<div class="section-heading compact-heading">
<div><div class="eyebrow">WORLD · SURFACE</div><h2>Minimap</h2></div>
</div>
<canvas id="minimap-canvas" class="minimap-canvas" width="320" height="240" role="img" aria-label="Surface map centered on the bot"></canvas>
<div id="minimap-caption" class="minimap-caption">Waiting for world data</div>
<div class="minimap-controls" aria-label="Minimap controls">
<button id="minimap-zoom-out" type="button" aria-label="Zoom out" title="Zoom out">−</button>
<button id="minimap-zoom-in" type="button" aria-label="Zoom in" title="Zoom in">+</button>
<button id="minimap-north-lock" type="button" aria-label="Lock north to the top" aria-pressed="false" title="Lock north to the top">N ↑</button>
<button id="minimap-size" type="button" aria-label="Enlarge minimap" aria-pressed="false" title="Enlarge minimap">⤢</button>
</div>
</section>
<section class="side-panel panel">
<div class="section-heading compact-heading">
<div><div class="eyebrow">MULTIPLAYER</div><h2>Players</h2></div>
<span id="player-count" class="count-badge">0</span>
</div>
<div id="player-list" class="player-list"><div class="empty-state">No player data yet</div></div>
</section>
<section class="side-panel panel">
<div class="section-heading compact-heading">
<div><div class="eyebrow">AUTOMATION</div><h2>Runtime</h2></div>
</div>
<dl class="runtime-list">
<div><dt>Game mode</dt><dd id="game-mode">—</dd></div>
<div><dt>Time</dt><dd id="world-time">—</dd></div>
<div><dt>Active job</dt><dd id="job-state">IDLE</dd></div>
<div><dt>Path nodes</dt><dd id="path-length">0</dd></div>
<div><dt>Entities</dt><dd id="entity-count">0 mobs · 0 drops</dd></div>
<div><dt>AFK</dt><dd id="afk-state">NO</dd></div>
</dl>
<div id="movement-error" class="error-box" hidden></div>
</section>
</aside>
</section>
<footer class="footer">
<span class="footer-brand"><span class="footer-mark">■</span> MOSFET / 26.3</span>
<span id="connection-pill" class="connection-pill is-offline"><i></i><span>OFFLINE</span></span>
<span id="last-update">Waiting for API data</span>
</footer>
</main>
</div>
<div id="item-tooltip" class="item-tooltip" role="tooltip" hidden></div>
<div id="inventory-menu" class="inventory-menu" role="menu" aria-label="Item actions" hidden>
<div class="inventory-menu-heading">
<strong id="inventory-menu-title">Item</strong>
<span id="inventory-menu-meta"></span>
</div>
<button type="button" data-inventory-action="one" role="menuitem">Drop one</button>
<button type="button" data-inventory-action="stack" role="menuitem">Drop whole stack</button>
<button type="button" data-inventory-action="matching" role="menuitem">Drop all matching</button>
<div id="inventory-menu-status" class="inventory-menu-status" aria-live="polite" hidden></div>
<button type="button" class="menu-cancel" data-inventory-action="cancel" role="menuitem">Cancel</button>
</div>
<div id="toast" class="toast" role="status" aria-live="polite"></div>
</body>
</html>