Skip to content

Releases: Harsha240105/Mine-Control

v1.0.42 - Feedback Center, Privacy & Security, Universal Compatibility Manager

27 Jun 04:01

Choose a tag to compare

What's New in v1.0.42

🎯 Feedback Center

  • New bug report system (BUG-XXXXX IDs) with automatic diagnostic collection (app version, OS, CPU, RAM, Java, Minecraft version, plugins, console logs, network state)
  • Feature request system (MC-XXXXX IDs) with community voting
  • Local ticket persistence with offline queue
  • Dedicated Feedback page accessible from sidebar

🔒 Privacy & Security

  • New Privacy page showing all stored data with counts (servers, players, backups, tickets, chat logs, disk usage)
  • One-click clear logs, clear backups, and export my data
  • Electron security hardening: sandbox mode, Content Security Policy headers, web security enforcement
  • Feedback Center menu item replaces old Report Issue external link

🔌 Universal Compatibility Manager

  • Compatibility step in server creation wizard: choose between Java Only, Java + Bedrock, Premium Only, or Offline Mode
  • Toggle ViaVersion/ViaBackwards auto-install during server creation
  • Software page now shows ALL versions with collapsible type groups (Stable, Snapshots, Beta, Alpha, Old)
  • Discord notification event toggles: Server Start/Stop/Crash, Backup Created, Player Join/Leave
  • Custom backup folder support with dual-location (save to both default and custom folder)

🐛 Bug Fixes

  • Fixed: server.properties now auto-generated before first server launch (eliminates NoSuchFileException warning in console)
  • Fixed: server.properties generation includes all standard Minecraft properties with sensible defaults

v1.0.41 — Complete Local-First Stability, Persistence & Multiplayer Repair

27 Jun 03:14

Choose a tag to compare

v1.0.41 — Complete Local-First Stability, Persistence & Multiplayer Repair

What's New

  • Server Library Landing — Server selection screen is now the app home. Displays all locally created servers with version, status, players, world size, dates. "Create New Server" modal with software/version/RAM/gamemode/difficulty/seed. Import and search support.
  • Player Tracking Enrichment — Automatically reads playerdata/.dat, stats/.json, and advancements/*.json on player join. Stores health, food, XP, position, dimension, inventory, armor, death count, kills.
  • TPS Parsing — TPS is now parsed from Minecraft console output (Vanilla, Paper, plugin TPS reports) instead of always showing 20.0.
  • Server Status Persistence — Server state is stored in the database and survives application restart.
  • Backend Auto-Recovery — Electron process monitors backend health every 10s and auto-restarts on failure.
  • Connection Verification — TCP port tests to 127.0.0.1, LAN addresses with latency measurement.
  • Playit Tunnel Status — Checks if playit agent is running and DNS resolves. Shows tunnel address, auth status, agent state.
  • Server Config File Management — New API endpoints for ops.json, whitelist.json, banned-players.json, banned-ips.json, usercache.json.
  • Data Directory Standardization — All data stored under "MineControl OS/" folder with proper subdirectories.
  • API Health Endpoint — GET /api/server/health for lightweight monitoring without auth.
  • Connection Status Indicators — Top bar shows "Backend Offline" or "Reconnecting..." badges.

Fixed

  • Server status now persists in database across restarts
  • TPS value updates in real-time on dashboard
  • Player data survives both server and application restart
  • Backend crash no longer requires manual restart
  • Data directory structure is now cleanly organized

Changed

  • Updated package.json, README badges, and progress tracker for v1.0.41
  • Path resolution now uses MineControl OS/ folder by default
  • Enhanced database schema with 18 new player tracking columns

v1.0.40 — Backend Communication Repair

27 Jun 02:45

Choose a tag to compare

v1.0.40 — Backend Communication Repair

Fixed

  • Fixed /api/players/banned returning 404 — Route ordering bug: moved /banned, /chat, and /roles routes before the /:id catch-all route in players.ts. Also added missing temp-ban route.
  • Socket.IO Reconnection & Error Handling — Frontend useSocket hook now logs connection errors, implements exponential backoff reconnection, and exposes error state. Server-side Socket.IO now logs engine errors and emits players:update, server:update, and console:update events.
  • Fixed Playit.gg Tunnel Click-Jacking — Removed click-to-toggle from the entire Playit.gg card, keeping toggle only on the chevron button. Added stopPropagation on the config panel so clicking input fields or Save button no longer closes the panel.
  • Fixed Plugins Marketplace Search — Fixed response destructuring bug where { data } was expected but Modrinth API returns { hits }.
  • API Request Timeouts — Added 15-second AbortController timeout to all API requests to prevent infinite loading states.
  • Backend Stability — Socket.IO server now properly handles connection errors with logging. Added players:update and server:update socket events for real-time telemetry.
  • Dashboard Error State — Dashboard now shows a clear "Backend Unavailable" message with retry button when server cannot be reached, instead of infinite spinner.

Changed

  • Updated package.json, README badges, and progress tracker for v1.0.40.

v1.0.39

26 Jun 16:35

Choose a tag to compare

v1.0.39 - Java 25 Support

  • Java 25 Compatibility — Confirmed support for JDK 25 (class version 69.0). The resolveJava() auto-detection in the server process manager now correctly finds Java 25 installations from Eclipse Adoptium, Temurin, and all standard scan paths.
  • Fabric 1.21.4+ Fix — Servers using Fabric with Minecraft 1.21.4+ require Java 25 for the net/minecraft/bundler/Main class. The auto-detection logic now finds and selects Java 25 when the configured Java is too old, resolving the UnsupportedClassVersionError: class file version 69.0 error.
  • Updated documentation and version badges for v1.0.39.

v1.0.38

26 Jun 16:21

Choose a tag to compare

v1.0.38 - State Machine, Java Resolution & Dashboard Fixes

  • Complete State Machine Rewrite — The Minecraft server process manager has been fully rewritten with a proper 5-state lifecycle (STOPPED → STARTING → RUNNING → STOPPING → STOPPED, with FAILED for error states). All old boolean this.running/this.starting flags have been removed. State transitions are now atomic, emit server:state events via Socket.IO, and are reflected in real-time on the Dashboard.
  • Automatic Java Runtime Resolution — Scans the server jar's .class files to determine the required Java version, checks the configured path, and auto-selects a compatible JDK from all installed runtimes. If none is found, lists every installed JDK with versions and download links.
  • Pre-Flight Validation Before Starting — Checks jar existence, EULA, and port availability before entering STARTING state. The Dashboard never gets stuck at "Starting..." when validation fails.
  • Dashboard Handles All States — Status indicator shows correct color/text for all 5 states. Subscribes to server:state Socket.IO events for instant UI updates.
  • Child Process Error Handling — Non-zero exit codes transition to FAILED with captured error messages. Close handler defers to graceful stop() to prevent race conditions.
  • Server Status API/api/server/status now includes the state field.

v1.0.37

26 Jun 15:52

Choose a tag to compare

v1.0.37 — Hotfix (June 26, 2026)

Fixed Dashboard crash on null status

When /api/server/status returns a 500 error, the Dashboard no longer crashes with Cannot read properties of null (reading 'onlinePlayers'). Added a null-status guard that shows "Unable to connect to server. Retrying..." instead of crashing. All null guards changed from !== null (which fails for undefined when ?. returns undefined) to != null (which catches both null and undefined).

Fixed production package.json path resolution

The /api/server/status endpoint used require('../../package.json') which resolves to dist/package.json in the production ASAR bundle, causing a 500 error. Added a try-catch fallback chain that works in both development (tsx watch) and production (Electron ASAR) environments.

Null-safe Dashboard rendering

All computed values (cpuPercent, ramPercent, sysRamPercent, diskPercent) now use optional chaining with ?? fallbacks, so they never crash when status is null or partially initialized.

v1.0.36

26 Jun 15:41

Choose a tag to compare

v1.0.36 — June 26, 2026

Automatic Java Version Detection

minecraftServer.start() now scans all installed JDKs via JavaDetector.scan() when the configured Java is too old. If the server jar requires Java 25+ (class version 69.0) but the default java on PATH is only Java 21, MineControl will automatically find a compatible JDK among installed runtimes and use it. If none is found, the error message lists every installed JDK with versions and provides direct download links.

Dashboard "Connecting..." State

Dashboard now shows a spinner with "Connecting to server..." on initial load, instead of immediately rendering placeholder values. Once the first /api/server/status response arrives, real data is shown. If an error occurs during startup, the RepairFlow appears immediately.

Error Propagation Fix

POST /api/server/start now awaits the minecraftServer.start() promise directly, so pre-check failures (missing jar, incompatible Java) return an HTTP 400 with the error message instead of being silently swallowed by catch(). Combined with the Socket.IO server:error handler fix, start errors always reach the frontend.

Socket.IO Error Handler Fix

The Dashboard's server:error listener no longer filters out errors when status.starting is true. Start-time errors (Java mismatch, port conflicts) now display the RepairFlow instead of being hidden.

Enhanced Diagnostics

The /api/server/diagnostics endpoint now runs JavaDetector.scan() to list all installed JDKs, compares their versions against the required Java version detected from the server jar's class files, and reports exactly which version is needed vs. what's available. The health-check endpoint also reports detailed Java status.

Null-Safe Dashboard Rendering

Replaced all || fallback operators (which masked null/offline values) with ?? nullish coalescing, ensuring the Dashboard never shows "20.0 TPS", "0 GB RAM", or "0/4 players" when the server is offline.

v1.0.35

26 Jun 15:23

Choose a tag to compare

v1.0.35 — Stability & Diagnostics Overhaul

Atomic Server Provisioning

Server creation now downloads the jar BEFORE creating the database record. If the download fails, no orphaned server record is created and the directory is cleaned up. The wizard sends all data in a single API call.

Forge 404 Fix

Forge download now returns "This Forge version is unavailable. Choose another version." when a version has no matching build, instead of a cryptic error.

Dashboard Offline State

Dashboard now shows "Server Offline" / "Not yet started" instead of fake zero values for CPU, RAM, TPS, and Players when the server is not running.

Global JSON Error Handler

Added JSON parse error middleware for malformed request bodies and an API 404 handler that returns application/json for unknown API routes.

Software Installation Badges

Software page now shows granular badges: "Active" (current), "Downloaded" (on disk), "Not Installed".

Plugin Install Progress

Plugin install buttons now show a spinner and "Downloading..." text with disabled state to prevent duplicate clicks.

Expanded Diagnostics

Added 8 new diagnostic checks: World Data, server.properties, Disk Space, Java Memory, Folder Permissions, Download Cache, Minecraft Version.

Download Service Refactor

Extracted all download functions into a shared server/services/download.ts module, eliminating code duplication.

Full Changelog

v1.0.34...v1.0.35

1.0.34

26 Jun 14:50

Choose a tag to compare

v1.0.34

v1.0.34: Dashboard stats reliability, plugin download fixes, settings…

1.0.33

26 Jun 14:26

Choose a tag to compare

v1.0.33

v1.0.33: Java class-version check, plugin shadow fix, CPU seed, Fabri…