Repository navigation
Conversation
Implemented and source-reviewed with disclosed Codex AI assistance. Publishes the reviewed source tree 2e6312c. Refs Osiris-Team#296.
|
@ithyme7 please include screenshots of the UI and the different tabs / actions here, and let me know what you did to achieve great UX? |
|
Thanks for the review. The images below render the actual production Swing/FlatLaf components from this PR, with fictional local sample profiles, saved servers and world metadata. They are offscreen component renders, not captures of a live Minecraft session or a native desktop/tray smoke run. No Microsoft account, external server ping or router operation was used for these images. Server BrowserFictional saved destinations, explicit local loader hints and Not checked status. The import/export, status and Play controls are visible; no server ping or game launch is claimed. Singleplayer and address guardThe actual Copy join address handler, with a selected fictional world and no active mapping, displays: Use Play & share first; no public mapping is active. Review EULA remains visible; no world was launched. Profiles and launch guardThe actual Launch client handler with no selected profile displays Select a profile first. The fictional review-client begins with Template No. This render does not show row-selection highlighting. Profiles after Toggle templateThe actual Toggle template action on review-client persisted Template Yes, refreshed the table and returned Ready. A fresh ProfileStore read confirmed the change; the bounded SwingWorker completed in 191 ms. No launcher or updater callback ran. SettingsThe real preference form with fixture defaults, Not signed in, explicit local offline testing and account/runtime explanations. No Microsoft sign-in was attempted. Server Manager ConsoleThe genuine additional fifth tab with the inherited command controls and an empty console. No command was executed. Its legacy Existing updates and settings subpanel is not evidenced: that content was blank in the headless layout attempt. The UX choices implemented here are:
These are implemented design choices rather than a claim of user-tested "great UX". Native tray interaction, modal keyboard/focus behaviour, real Minecraft/account joins and real router sharing still need live acceptance testing. The contribution remains AI-generated and source-reviewed by AI agents as disclosed in the PR. |






The tray opens a native FlatLaf dashboard with Server Browser, Singleplayer, Profiles, Server Manager and Settings. Play selects a matching local client profile or offers a reviewed clone/migration of a template. Singleplayer starts an isolated dedicated server, waits for its status ping, launches the client at its local port, and stops the server when the client exits. Share is an explicit action with a temporary UPnP TCP lease and a copyable public address; mapping failure retains local play with an explanation.
Implements the native architecture and virtual-world extension clarified in issue #296, starting from master
604c8ec7b9a814c37c7b8f9dbe7c8a9b8bad070d(10.2.0). No HMCL source, branch merge, imports or dependency is included. New implementation uses the repository's MIT license; existing third-party dependencies retain their own licenses.servers.datwhen present. Optional export preserves retained NBT metadata and writes a backup before replacement. Loader selection is an explicit local hint because ordinary pings do not expose a required modpack.Validation: the final selected deterministic suites passed 112 tests with zero failures, errors or skips in an offline Maven package run (network disabled). The resulting packaged JAR then passed the real Windows CLI smoke, exit 0, in an isolated temporary home/working directory. The CLI verified three independent profile defaults, version periods, world creation/client attachment and unaccepted EULA state without starting the legacy server or contacting an owner account/router. The deterministic suites cover manifests, actual installer metadata, runtime/OS rules, migration and rollback, NBT, MineStat wire responses, account cancellation, world process ownership, CLI cleanup and UPnP ownership/lease failures. Original compiled fixture clients, an original installer processor and original dedicated-server/client child JVMs run through actual production ProcessBuilder paths. Production Java metadata GET probes for Modrinth/Bukkit and read-only Paper/Purpur/Fabric captures succeeded; they used no account and executed no game/server artifact. Fixture provenance records actual URLs, capture times and published checksums or honest absence of a published checksum.
Acceptance limits: the real Minecraft game, final authenticated Microsoft join, native desktop/tray interaction and real router/public-world accessibility have not been exercised. Swing screenshots render the actual four client panels at 800 and 1180 pixels offscreen, excluding Server Manager. UPnP uses an original localhost SOAP fixture; it does not configure the owner's router. Forge/NeoForge official installer metadata is tested, but real installer processors have not run against a real Minecraft JAR. Dedicated-server preparation automatically supports Paper/Purpur/Fabric; loaders needing server installers/argument scripts require an explicitly supplied executable bootstrap/server JAR. The inherited external-network/SteamCMD/download suites are excluded from the deterministic selector. Maintainers perform final live game validation under the issue clarification.
AI disclosure: this contribution was implemented and directly source-reviewed by AI coding agents. Concrete review findings were repaired and exercised with regression tests and actual build/CLI runs. No separate human technical review or owner account login is claimed. No payout address, account secret, game JAR or loader binary is included in the contribution.
See
docs/native-client-dashboard.md,docs/unified-profiles.mdandsrc/main/java/com/osiris/autoplug/client/worlds/PROTOCOL.mdfor commands, provider limits, process cleanup, protocol references and fixture provenance.Refs #296. This requests maintainer acceptance testing and review; it does not claim the issue is already accepted, merged or paid.