Skip to content

PD-Codes/MCRessourcePackager

Repository files navigation

MC Ressource Packager

Ein lokales Web-Tool zum gezielten Kombinieren von Minecraft Resource Packs. Lade bis zu zwei Packs gleichzeitig hoch, wähle pro Textur, Sound oder Asset aus welchem Pack es stammen soll, und exportiere das Ergebnis als fertig spielbaren Resource Pack.


Features

  • Zwei Packs vergleichen – Lade bis zu zwei ZIP-Packs gleichzeitig hoch und sieh beide nebeneinander
  • Kategorien – Durchsuche Blöcke, Items, GUI, Entitäten, Sounds, Partikel, Gemälde, Schriften und mehr
  • 3D-Vorschau – Blöcke und Items werden mit dem echten Modell-JSON des Packs in Three.js gerendert
  • Sound-Vorschau – OGG-Sounds direkt im Browser abspielen und einzeln auswählen
  • Nur-Unterschiede-Filter – Zeigt ausschließlich Texturen, die sich zwischen den beiden Packs unterscheiden
  • Suche – Echtzeit-Suche über alle Textur- und Sound-Namen
  • Smarter Export – Exportiert Texturen, Modell-JSONs, Blockstates, Equipment-JSONs (ab 1.21.2) und sounds.json in einem validen Pack
  • Standalone EXE – Kann per PyInstaller als Windows-EXE gebaut werden, die den Browser automatisch öffnet

Screenshots

(folgen)


Voraussetzungen

  • Python 3.11+
  • pip

Installation & Start

# 1. Repository klonen
git clone https://github.com/TheMRX13/MCRessourcePackager.git
cd MCRessourcePackager

# 2. Abhängigkeiten installieren
pip install -r requirements.txt

# 3. Server starten
python main.py

Der Browser öffnet sich automatisch auf http://127.0.0.1:5000.


Als Windows-EXE bauen

build.bat

Das Skript installiert PyInstaller, baut die EXE und legt sie unter dist\MCRessourcePackager\ ab. Die EXE startet den lokalen Server und öffnet den Browser – kein Python erforderlich.


Benutzung

  1. Pack hochladen – ZIP-Datei in die Upload-Zone ziehen oder über den Datei-Dialog auswählen (max. 512 MB, max. 50 000 Dateien pro Pack)
  2. Kategorie wählen – Tabs oben: Blöcke, Items, GUI, Entitäten, Sounds, Weiteres
  3. Textur / Sound auswählen – Jede Karte zeigt beide Pack-Varianten; per Klick wird die gewünschte Quelle festgelegt
  4. Vorschau – Rechte Seitenleiste zeigt die aktive Textur als 3D-Modell (Blöcke/Items) oder 2D-Bild
  5. Pack-Name eingeben – Textfeld oben rechts
  6. Export – Schaltfläche „Export Pack" erstellt eine ZIP-Datei, die direkt in den Minecraft-resourcepacks-Ordner gelegt werden kann

Projektstruktur

MCRessourcePackager/
├── app.py                  # Flask-Backend: API-Routen, Pack-Katalogisierung, Export
├── main.py                 # Einstiegspunkt: startet Server + Browser
├── requirements.txt        # Python-Abhängigkeiten
├── build.bat               # PyInstaller-Build-Skript (Windows)
├── MCRessourcePackager.spec# PyInstaller-Konfiguration
├── templates/
│   └── index.html          # Einzige HTML-Seite der App
└── static/
    ├── css/style.css       # Dark-Theme-Styles
    └── js/
        ├── app.js          # Frontend-Logik (State, Rendering, API-Calls)
        └── preview3d.js    # Three.js 3D-Renderer für Block- und Item-Modelle

API-Übersicht

Methode Pfad Beschreibung
GET /api/packs Alle geladenen Packs mit Metadaten
POST /api/upload Pack-ZIP hochladen und katalogisieren
DELETE /api/packs/<id> Pack entfernen
GET /api/texture/<id>/<cat>/<name> Einzelne Textur als PNG
GET /api/icon/<id> Pack-Icon (pack.png)
GET /api/model/<id>/<cat>/<name> Modell-JSON
GET /api/sound/<id>/<path> Sound-Datei als OGG
GET /api/textures/all Alle Texturen aller Packs aggregiert
GET /api/sounds/all Alle Sound-Events aller Packs aggregiert
POST /api/export Kombinierten Pack als ZIP exportieren

Tech Stack

Bereich Technologie
Backend Python 3 · Flask · Werkzeug
Frontend Vanilla JS · CSS Grid
3D-Vorschau Three.js r128
Packaging PyInstaller

Sicherheitshinweise

Das Tool läuft lokal und ist nicht für den Betrieb im Internet ausgelegt. Es enthält jedoch grundlegende Schutzmaßnahmen:

  • Zip-Slip-Erkennung (Pfad-Traversal wird abgelehnt)
  • Maximale unkomprimierte Größe: 2 GB
  • Maximale Dateianzahl: 50 000
  • Dateiname-Validierung per Regex für alle API-Parameter

Lizenz

Dieses Projekt steht unter der MIT License.
© 2026 PD Codes – TheMRX13 & Domekologe

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors