Konvertierung der Map von Minecraft 1.12 auf 1.13 durchführen

Vor einigen Wochen erschien Version 1.13 des Open-Word-Spieles Minecraft. Im Zuge dieser Aktualisierung wurden unter anderem die Daten der Blöcke verändert. Beim Erzeugen der Weltkarte über die freie Minecraft-Rendersoftware Mapcrafter traten nach dem Update Probleme auf.

Nur die bereits konvertierten Chunks werden gerendert

Während der Server ohne Probleme lief, wurden in der Karte nur bestimmte Chunks gerendert. Der Grund hierfür war das nur die Chunks in das neue Format der Version 1.13 konvertiert wurden, die von den Spielern auf dem Server besucht worden waren. Alle anderen Chunks lagen noch im Format der Version 1.12 vor. Eine Lösung für dieses Problem schafft der mit 1.13 neu eingeführte Kommandozeilen-Parameter –forceUpgrade des Minecraft-Servers. Wenn man diesen entsprechend startet:

java -Xmx4096M -Xms2048M -jar minecraft_server.jar nogui --forceUpgrade

beginnt der Server alle Chunks in das neue Format zu überführen:

[06:42:34] [Server thread/INFO]: Starting minecraft server version 1.13.1
...
[06:42:34] [Server thread/INFO]: Forcing world upgrade!
[06:42:34] [Server thread/INFO]: Counting chunks...
[06:42:48] [Server thread/INFO]: Upgrading structure data...
[06:42:48] [Server thread/INFO]: 0% completed (0 / 1630135 chunks)...
[06:42:49] [Server thread/INFO]: 0% completed (0 / 1630135 chunks)...
..
[08:52:58] [Server thread/INFO]: 99% completed (1629866 / 1630135 chunks)...
[08:52:59] [Server thread/INFO]: 99% completed (1630017 / 1630135 chunks)...
[08:53:00] [pool-4-thread-1/INFO]: World optimizaton finished after 7812721 ms

Je nach der Größe der eigenen Welt kann dieser Vorgang durchaus einige Stunden in Anspruch nehmen. Nachdem alle Chunks konvertiert wurden, funktioniert das Rendering der Weltkarte wieder wie gewohnt.

libwave.net

Möchte man eine Wave-Datei unter .NET oder Mono öffnen, so wird man feststellen das es hierfür wenige sinnvolle Möglichkeiten gibt. Viele der vorgeschlagenen Lösungen nutzen spezielle APIs, welche die Platzformunabhängigkeit zerstören. Aus diesem Grund habe ich mir wieder mal NAudio vorgenommen und aus dieser Bibliothek eine Bibliothek namens libwave.net abgeleitet.

Eine geöffnete Wave-Datei

Eine geöffnete Wave-Datei

Dank der freien Lizenz (NAudio ist unter der Ms-Pl lizenziert) stellte dies kein Problem dar. Mit der Bibliothek ist es möglich Wave-Dateien zu schreiben und zu lesen. Das Interface wurde dabei auf das notwendigste reduziert. Die Möglichkeiten werden dabei in den beiliegenden Beispielen aufgezeigt. Lauffähig ist die Bibliothek unter .NET und Mono. Zu finden ist das Projekt unter github.com/seeseekey/libwave.net.