Upload file prepare-minecraft-items.ps1 via GUI
This commit is contained in:
360
prepare-minecraft-items.ps1
Normal file
360
prepare-minecraft-items.ps1
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user