diff --git a/prepare-minecraft-items.ps1 b/prepare-minecraft-items.ps1 new file mode 100644 index 0000000..e9805a2 --- /dev/null +++ b/prepare-minecraft-items.ps1 @@ -0,0 +1,360 @@ +# ==================================================================== +# Minecraft Items & Blocks fuer WIS Shop vorbereiten +# Autor: M_Viper +# Version: 1.1 (Emoji-frei) +# ==================================================================== + +# Farben definieren +$Green = "Green" +$Yellow = "Yellow" +$Cyan = "Cyan" +$Magenta = "Magenta" +$Red = "Red" + +# ==================================================================== +# PFADE KONFIGURIEREN +# ==================================================================== + +$BASE_PATH = "C:\Users\Viper\Downloads\minecraft-assets-1.21.11\minecraft-assets-1.21.11\assets\minecraft\textures" +$ITEM_DIR = "$BASE_PATH\item" +$BLOCK_DIR = "$BASE_PATH\block" +$OUTPUT_DIR = "C:\Users\Viper\Downloads\wis-shop-items" + +# ==================================================================== +# BANNER ANZEIGEN +# ==================================================================== + +Clear-Host +Write-Host "" +Write-Host " ===================================================================" -ForegroundColor $Cyan +Write-Host " MINECRAFT TEXTURES PREPARATION" -ForegroundColor $Cyan +Write-Host " WIS Shop - Item Textures Vorbereitung v1.1" -ForegroundColor $Yellow +Write-Host " ===================================================================" -ForegroundColor $Cyan +Write-Host "" + +# ==================================================================== +# SCHRITT 1: PFADE PRUEFEN +# ==================================================================== + +Write-Host "[SCHRITT 1] Pfade pruefen..." -ForegroundColor $Magenta +Write-Host "" + +# Items-Ordner pruefen +if (-not (Test-Path $ITEM_DIR)) { + Write-Host "[FEHLER] Items-Ordner nicht gefunden!" -ForegroundColor $Red + Write-Host "Erwartet: $ITEM_DIR" -ForegroundColor $Yellow + Write-Host "" + Write-Host "LOESUNG:" -ForegroundColor $Cyan + Write-Host "1. Pruefe ob die minecraft-assets heruntergeladen sind" -ForegroundColor $Yellow + Write-Host "2. Passe den Pfad im Script an (Zeile 18)" -ForegroundColor $Yellow + Write-Host "" + Read-Host "Druecke Enter zum Beenden" + exit +} + +# Bloecke-Ordner pruefen +if (-not (Test-Path $BLOCK_DIR)) { + Write-Host "[FEHLER] Bloecke-Ordner nicht gefunden!" -ForegroundColor $Red + Write-Host "Erwartet: $BLOCK_DIR" -ForegroundColor $Yellow + Write-Host "" + Read-Host "Druecke Enter zum Beenden" + exit +} + +Write-Host "[OK] Items-Ordner gefunden: $ITEM_DIR" -ForegroundColor $Green +Write-Host "[OK] Bloecke-Ordner gefunden: $BLOCK_DIR" -ForegroundColor $Green +Write-Host "" + +# Anzahl Dateien zaehlen +$itemCount = (Get-ChildItem -Path $ITEM_DIR -Filter "*.png" | Measure-Object).Count +$blockCount = (Get-ChildItem -Path $BLOCK_DIR -Filter "*.png" | Measure-Object).Count + +Write-Host "GEFUNDENE TEXTUREN:" -ForegroundColor $Cyan +Write-Host "- Items: $itemCount PNG-Dateien" -ForegroundColor $Yellow +Write-Host "- Bloecke: $blockCount PNG-Dateien" -ForegroundColor $Yellow +Write-Host "- Gesamt: $($itemCount + $blockCount) Dateien" -ForegroundColor $Green +Write-Host "" + +# ==================================================================== +# SCHRITT 2: AUSGABEORDNER VORBEREITEN +# ==================================================================== + +Write-Host "[SCHRITT 2] Ausgabeordner vorbereiten..." -ForegroundColor $Magenta +Write-Host "" + +if (Test-Path $OUTPUT_DIR) { + $fileCount = (Get-ChildItem -Path $OUTPUT_DIR -Filter "*.png" | Measure-Object).Count + + if ($fileCount -gt 0) { + Write-Host "[WARNUNG] Ausgabeordner existiert bereits mit $fileCount Dateien" -ForegroundColor $Yellow + Write-Host "Pfad: $OUTPUT_DIR" -ForegroundColor $Yellow + Write-Host "" + + $response = Read-Host "Moechtest du den Ordner leeren? (j/n)" + + if ($response -eq "j" -or $response -eq "J") { + Write-Host "" + Write-Host "Loesche alte Dateien..." -ForegroundColor $Yellow + Remove-Item "$OUTPUT_DIR\*" -Force + Write-Host "[OK] Ordner geleert" -ForegroundColor $Green + } else { + Write-Host "[INFO] Behalte existierende Dateien" -ForegroundColor $Cyan + } + } else { + Write-Host "[OK] Ausgabeordner existiert (leer)" -ForegroundColor $Green + } +} else { + Write-Host "Erstelle neuen Ausgabeordner..." -ForegroundColor $Cyan + New-Item -ItemType Directory -Force -Path $OUTPUT_DIR | Out-Null + Write-Host "[OK] Ausgabeordner erstellt" -ForegroundColor $Green +} + +Write-Host "" +Write-Host "ZIELORDNER: $OUTPUT_DIR" -ForegroundColor $Cyan +Write-Host "" + +# ==================================================================== +# SCHRITT 3: ITEMS VERARBEITEN +# ==================================================================== + +Write-Host "[SCHRITT 3] Items kopieren & umbenennen..." -ForegroundColor $Magenta +Write-Host "" + +$itemsCopied = 0 +$itemsSkipped = 0 +$itemsFailed = 0 + +$items = Get-ChildItem -Path $ITEM_DIR -Filter "*.png" +$totalItems = $items.Count +$currentItem = 0 + +foreach ($file in $items) { + $currentItem++ + $oldName = $file.Name + $baseName = $file.BaseName + + # Fortschrittsanzeige + $percent = [math]::Round(($currentItem / $totalItems) * 100) + Write-Progress -Activity "Items verarbeiten" -Status "$currentItem von $totalItems ($percent%)" -PercentComplete $percent + + # Neuer Name: minecraft_ITEMNAME.png + $newName = "minecraft_$baseName.png" + $destPath = Join-Path -Path $OUTPUT_DIR -ChildPath $newName + + try { + if (Test-Path $destPath) { + $itemsSkipped++ + } else { + Copy-Item -Path $file.FullName -Destination $destPath -Force -ErrorAction Stop + $itemsCopied++ + } + } catch { + Write-Host "[FEHLER] Bei: $oldName" -ForegroundColor $Red + $itemsFailed++ + } +} + +Write-Progress -Activity "Items verarbeiten" -Completed + +Write-Host "[OK] Items verarbeitet!" -ForegroundColor $Green +Write-Host "- Kopiert: $itemsCopied" -ForegroundColor $Green +Write-Host "- Uebersprungen: $itemsSkipped" -ForegroundColor $Yellow +if ($itemsFailed -gt 0) { + Write-Host "- Fehler: $itemsFailed" -ForegroundColor $Red +} +Write-Host "" + +# ==================================================================== +# SCHRITT 4: BLOECKE VERARBEITEN +# ==================================================================== + +Write-Host "[SCHRITT 4] Bloecke kopieren & umbenennen..." -ForegroundColor $Magenta +Write-Host "" + +$blocksCopied = 0 +$blocksSkipped = 0 +$blocksFailed = 0 + +$blocks = Get-ChildItem -Path $BLOCK_DIR -Filter "*.png" +$totalBlocks = $blocks.Count +$currentBlock = 0 + +foreach ($file in $blocks) { + $currentBlock++ + $oldName = $file.Name + $baseName = $file.BaseName + + # Fortschrittsanzeige + $percent = [math]::Round(($currentBlock / $totalBlocks) * 100) + Write-Progress -Activity "Bloecke verarbeiten" -Status "$currentBlock von $totalBlocks ($percent%)" -PercentComplete $percent + + # Neuer Name: minecraft_BLOCKNAME.png + $newName = "minecraft_$baseName.png" + $destPath = Join-Path -Path $OUTPUT_DIR -ChildPath $newName + + try { + # Nur kopieren wenn noch nicht vorhanden (Items haben Vorrang) + if (Test-Path $destPath) { + $blocksSkipped++ + } else { + Copy-Item -Path $file.FullName -Destination $destPath -Force -ErrorAction Stop + $blocksCopied++ + } + } catch { + Write-Host "[FEHLER] Bei: $oldName" -ForegroundColor $Red + $blocksFailed++ + } +} + +Write-Progress -Activity "Bloecke verarbeiten" -Completed + +Write-Host "[OK] Bloecke verarbeitet!" -ForegroundColor $Green +Write-Host "- Kopiert: $blocksCopied" -ForegroundColor $Green +Write-Host "- Uebersprungen: $blocksSkipped" -ForegroundColor $Yellow +if ($blocksFailed -gt 0) { + Write-Host "- Fehler: $blocksFailed" -ForegroundColor $Red +} +Write-Host "" + +# ==================================================================== +# SCHRITT 5: ZUSAMMENFASSUNG +# ==================================================================== + +$totalCopied = $itemsCopied + $blocksCopied +$totalSkipped = $itemsSkipped + $blocksSkipped +$totalFailed = $itemsFailed + $blocksFailed + +Write-Host "" +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "FERTIG!" -ForegroundColor $Green +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "" +Write-Host "ZUSAMMENFASSUNG:" -ForegroundColor $Magenta +Write-Host "" +Write-Host "Erfolgreich kopiert:" -ForegroundColor $Green +Write-Host "- Items: $itemsCopied" -ForegroundColor $Yellow +Write-Host "- Bloecke: $blocksCopied" -ForegroundColor $Yellow +Write-Host "- GESAMT: $totalCopied Dateien" -ForegroundColor $Green +Write-Host "" + +if ($totalSkipped -gt 0) { + Write-Host "Uebersprungen: $totalSkipped (bereits vorhanden)" -ForegroundColor $Yellow + Write-Host "" +} + +if ($totalFailed -gt 0) { + Write-Host "[WARNUNG] Fehler: $totalFailed Dateien konnten nicht kopiert werden" -ForegroundColor $Red + Write-Host "" +} + +Write-Host "ALLE DATEIEN IN:" -ForegroundColor $Cyan +Write-Host "$OUTPUT_DIR" -ForegroundColor $Yellow +Write-Host "" + +# ==================================================================== +# SCHRITT 6: ZIP ERSTELLEN (OPTIONAL) +# ==================================================================== + +Write-Host "[SCHRITT 5] ZIP-Datei erstellen? (Optional)" -ForegroundColor $Magenta +Write-Host "" +Write-Host "Eine ZIP-Datei ist praktisch fuer:" -ForegroundColor $Cyan +Write-Host "- WordPress Plugin Upload" -ForegroundColor $Yellow +Write-Host "- Gitea Upload (falls Web-Interface limitiert ist)" -ForegroundColor $Yellow +Write-Host "- Backup" -ForegroundColor $Yellow +Write-Host "" + +$createZip = Read-Host "ZIP erstellen? (j/n)" + +if ($createZip -eq "j" -or $createZip -eq "J") { + $zipPath = "C:\Users\Viper\Downloads\wis-shop-items.zip" + + Write-Host "" + Write-Host "Erstelle ZIP-Datei..." -ForegroundColor $Cyan + Write-Host "(Dies kann 1-3 Minuten dauern bei $totalCopied Dateien)" -ForegroundColor $Yellow + Write-Host "" + + # Alte ZIP loeschen falls vorhanden + if (Test-Path $zipPath) { + Remove-Item $zipPath -Force + } + + # ZIP erstellen + try { + Compress-Archive -Path "$OUTPUT_DIR\*" -DestinationPath $zipPath -CompressionLevel Optimal + + $zipSize = [math]::Round((Get-Item $zipPath).Length / 1MB, 2) + + Write-Host "[OK] ZIP-Datei erstellt!" -ForegroundColor $Green + Write-Host "Pfad: $zipPath" -ForegroundColor $Yellow + Write-Host "Groesse: $zipSize MB" -ForegroundColor $Yellow + Write-Host "" + } catch { + Write-Host "[FEHLER] Beim Erstellen der ZIP-Datei" -ForegroundColor $Red + Write-Host "$($_.Exception.Message)" -ForegroundColor $Yellow + Write-Host "" + } +} else { + Write-Host "" + Write-Host "[INFO] ZIP-Erstellung uebersprungen" -ForegroundColor $Cyan + Write-Host "" +} + +# ==================================================================== +# SCHRITT 7: NAECHSTE SCHRITTE +# ==================================================================== + +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "NAECHSTE SCHRITTE" -ForegroundColor $Magenta +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "" + +Write-Host "OPTION A - Gitea Upload (Empfohlen):" -ForegroundColor $Yellow +Write-Host "" +Write-Host "1. Erstelle ein neues Repository in Gitea:" -ForegroundColor $Cyan +Write-Host " Name: minecraft-items" -ForegroundColor $Yellow +Write-Host "" +Write-Host "2. Erstelle einen Ordner 'images' im Repository" -ForegroundColor $Cyan +Write-Host "" +Write-Host "3. Lade alle PNG-Dateien hoch:" -ForegroundColor $Cyan +Write-Host " Von: $OUTPUT_DIR" -ForegroundColor $Yellow +Write-Host "" +Write-Host "4. Kopiere die Raw-URL:" -ForegroundColor $Cyan +Write-Host " Format: https://dein-gitea.com/user/minecraft-items/raw/branch/main/images/" -ForegroundColor $Green +Write-Host "" +Write-Host "5. In WordPress eintragen:" -ForegroundColor $Cyan +Write-Host " Ingame Shop -> Einstellungen -> Bilder Basis-URL" -ForegroundColor $Yellow +Write-Host "" +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "" + +Write-Host "OPTION B - WordPress direkter Upload:" -ForegroundColor $Yellow +Write-Host "" +Write-Host "1. Gehe zu: Ingame Shop -> Bilder" -ForegroundColor $Cyan +Write-Host "" +Write-Host "2. Waehle 'ZIP Hochladen'" -ForegroundColor $Cyan +Write-Host "" +Write-Host "3. Waehle: wis-shop-items.zip" -ForegroundColor $Cyan +Write-Host "" +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "" + +# ==================================================================== +# SCHRITT 8: ORDNER OEFFNEN +# ==================================================================== + +Write-Host "Moechtest du den Ausgabeordner jetzt oeffnen?" -ForegroundColor $Magenta +$openFolder = Read-Host "Ordner oeffnen? (j/n)" + +if ($openFolder -eq "j" -or $openFolder -eq "J") { + explorer $OUTPUT_DIR + Write-Host "" + Write-Host "[OK] Ordner geoeffnet!" -ForegroundColor $Green +} + +Write-Host "" +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "Viel Erfolg mit deinem WIS Shop!" -ForegroundColor $Green +Write-Host "===================================================================" -ForegroundColor $Cyan +Write-Host "" +Write-Host "Druecke Enter zum Beenden..." -ForegroundColor $Yellow +Read-Host \ No newline at end of file