Kozma Hunor

MineLease

Git-alapú Minecraft szerver menedzsment alkalmazás a konfliktusmentes közös játékért.

MineLease demo

A Kihívás (The Challenge)

Egy baráti társasággal közös Minecraft szervert szerettünk volna használni, de a fájlok szinkronizálása (pl. Google Drive-val) megbízhatatlan volt, és gyakran vezetett adatvesztéshez vagy konfliktusokhoz, amikor többen akartak egyszerre játszani.

A Megoldásom (My Solution)

Létrehoztam egy Electron és React alapú desktop alkalmazást, ami a szerverfájlokat egy Git repozitóriumként kezeli. A rendszer egy 'kölcsönzési' (leasing) logikán alapul: a játékos 'kiveszi' a szervert, ami egy lock fájl segítségével zárolja azt a többiek elől. Játék után a változások (a világ új állapota) egy új 'commit'-ként kerülnek feltöltésre, majd a szerver újra elérhetővé válik. Ez a modell teljes verziókövetést és adatbiztonságot nyújt.

Felhasznált Technológiák (Tech Stack)

  • Electron: Lehetővé tette, hogy webtechnológiákkal (React, Node.js) hozzak létre egy cross-platform desktop alkalmazást, ami hozzáfér a fájlrendszerhez és futtathat parancssori műveleteket (Git).
  • React: Modern és reszponzív felhasználói felületet biztosított az alkalmazásnak.
  • Git: A rendszer magja. A Git hatékonyan kezeli a nagy fájlok változásait és biztosítja a teljes verziótörténetet, ami a projekt alapját képezi.
  • keytar: Biztonságosan tárolja a felhasználó GitHub tokenjét az operációs rendszer kulcskarikájában.

Technikai Mélymerülés (Technical Deep-Dive)

A rendszer lelke a `lock` és `unlock` folyamatok atomi műveletként való kezelése. Amikor egy felhasználó el akarja indítani a szervert, az alkalmazás először csak a `.mclease_lock` fájlt módosítja és tölti fel a Git repozitóriumba. Ez egy rendkívül gyors művelet, ami azonnal 'lefoglalja' a szervert. Csak a sikeres 'lock' után indul el a helyi Minecraft szerver. A játék végén a folyamat fordított: a világ mentése, a lock fájl frissítése és a kettő együttes feltöltése egyetlen commit-ban történik, garantálva a konzisztens állapotot.