MineLease
Git-alapú Minecraft szerver menedzsment alkalmazás a konfliktusmentes közös játékért.
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.