import os
import msgpack
import pprint

# Twoja ścieżka do plików świata
MTR_DATA_PATH = "/var/lib/pterodactyl/volumes/cc7ccc03-03bd-4bde-8488-3057d3803420/world/mtr/minecraft/overworld"

def scan_rails():
    path = os.path.join(MTR_DATA_PATH, "rails")
    if not os.path.exists(path):
        print(f"Folder {path} nie istnieje!")
        return

    print(f"[*] Skanowanie folderu rails...")
    
    # Szukamy pierwszego lepszego pliku w podfolderach (np. rails/00/plik)
    for root, dirs, files in os.walk(path):
        for filename in files:
            full_path = os.path.join(root, filename)
            
            try:
                with open(full_path, "rb") as f:
                    # raw=False, żeby napisy były stringami
                    data = msgpack.unpack(f, raw=False)
                    
                    print(f"\n=== ZNALEZIONO PLIK TORU: {filename} ===")
                    print("Struktura danych:")
                    # Pretty print, żeby było czytelnie
                    pprint.pprint(data)
                    
                    # Sprawdzamy czy są tu jakieś kordy
                    print("\n--- Analiza kluczy ---")
                    print(list(data.keys()))
                    
                    return # Kończymy po pierwszym pliku
            except Exception as e:
                print(f"Błąd odczytu {filename}: {e}")
                continue

if __name__ == "__main__":
    scan_rails()
