Minecraft Karte erstellen

Sobald die Minecraft Welt etwas größer wird, möchte man doch wissen wie sie so im gesamten aussieht. Um eine solche Karte zu erstellen eignet sich das Tool c10t, welches unter http://toolchain.eu/project/c10t zu finden ist. Dazu dann noch ein kleines Skript welches die Karte erstellt, konvertiert und auf einen FTP Server hochlädt.

#!/bin/bash

#Map erstellen
./c10t -w worldname/ -o mcmap.png -z -M 1280

#In Jpg umwandeln
convert mcmap.png -quality 80 mcmap.jpg

# Datei auf FTP Server laden
FTP_FILE=mcmap.jpg

ftp -in <open example.com
user nutzer passwort
bin
put $FTP_FILE
close
bye

Aussehen könnte das ganze dann z.B. so:

Weitere Informationen gibt es unter:
http://www.minecraftforum.net/topic/31133-mapper-c10t/

1024 Ports behalte ich für mich

Unter Linux (und UNIX) kann man die Ports bis 1024 (die sogenannten Well Known Ports) nur dann binden, wenn man über root Rechte verfügt. Das ist natürlich unschön wenn man einen Server z.B. auf Port 80 laufen lassen will, dieser aber keine dementsprechenden Rechte bekommen darf.

So läuft bei mir zum Beispiel ein Etherpad Light auf dem Port 9001. Jetzt wäre es natürlich schön wenn dieser auf dem Port 80 erreichbar wäre. Dazu würde eine iptables Regel reichen:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 9001

Das Problem an dieser Regel ist zum ersten das die Anwendung damit unter Port 80 und Port 9001 zu erreichen ist. Das zweite Problem ist das jeder unprivilegierte Nutzer ebenfalls den Port 9001 öffnen kann und damit auch die Daten von Port 80 bekommt. Und es gibt auch noch ein drittes Problem. Das ganze funktioniert nicht auf Maschinen die mit dem Linux VServer betrieben werden. Dort funktioniert das IP Tables nämlich nicht:

iptables v1.4.4: can't initialize iptables table `nat': Permission denied (you must be root)

Eine weitere Variante wäre setpcaps was allerdings problematisch ist da man diese einem Programm geben muss, was dann bei Skripten nicht funktionieren sollte:

setcap 'cap_net_bind_service=+ep' /path/to/program

Weitere Informationen gibt es unter:
http://www.wensley.org.uk/info#setpcaps
http://serverfault.com/questions/112795/how-can-i-run-a-server-on-linux-on-port-80-as-a-normal-user
http://stackoverflow.com/questions/413807/is-there-a-way-for-non-root-processes-to-bind-to-privileged-ports-1024-on-li

Virtual Volumes View

Da hat man nun ein paar Festplatten (oder wahlweise CD/DVDs) im Schrank stehen und sucht nun eine Datei, möchte aber nicht jede Platte erstmal anschließen oder jede CD einlegen. Hier bietet sich ein Katalogisierungstool an. Eine gute Open Source Lösung ist dabei VVV was für Virtual Volumes View steht.

Die Software kann dabei unter http://vvvapp.sourceforge.net/ heruntergeladen werden. Neben einer Windowsversion ist auch eine Linux (32 und 64 Bit) und Mac OS X Version vorhanden. Die Software selbst steht dabei unter GPL.

Minecraft Server unter Ubuntu aufsetzen

Um einen Minecraft Server aufzusetzen muss im ersten Schritt java mittels

apt-get install openjdk-6-jre-headless

installiert werden. Nun kann die Version des installierten Javas (java -version) bestimmt werden. Diese sollte 1.6 oder höher sein:

OpenJDK Runtime Environment (IcedTea6 1.9.9) (6b20-1.9.9-0ubuntu1~10.04.2)
OpenJDK Server VM (build 19.0-b09, mixed mode)

Nachdem damit die Grundvoraussetzungen erfüllt sind wird mittels

adduser minecraft
su minecraft

ein Nutzer für den Server angelegt und in diesen Nutzer gewechselt. Nun schreiben wir uns ein kleines Startskript mit dem Namen start-server.sh:

#!/bin/sh
wget -N http://www.minecraft.net/download/minecraft_server.jar
java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui &

Dieses Skript lädt die aktuelle Version herunter und führt sie im Hintergrund aus. Nun fehlt nur noch ein Stopskript, welches auf den Namen stop-server.sh hört:

#!/bin/bash
pkill -SIGTERM java
sleep 5
pkill -SIGKILL java

Nach dem ersten Start des Servers werden einige Konfigurationsdateien angelegt. In die Datei ops.txt tragen wir den oder die Operatoren für den Server ein. In der Datei server.properties sind die grundlegenden Einstellungen für den Server zu finden. In meinem Fall wird die Whitelist aktiviert indem die Eigenschaft white-list auf true gesetzt wird. in der whitelist.txt kann man dann die entsprechenden Nutzer eintragen welche sich in die Welt einloggen dürfen.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Minecraft
http://www.debianroot.de/server/minecraft-server-erstellen-auf-einem-debian-server-1297.html

KDE 4 Probleme

Nach einem unsanften Shutdown spielte mein KDE 4 doch leicht verrückt. Es machte Sachen die es im Normalfall nicht tun sollte, wie z.B. fehlende Symbole und unregelmäßige aber häufige Abstürze. Da ich keine Lust auf eine lange Fehlersuche hatte, wählte ich die brachiale Methode und löschte den ~/.kde Ordner. Daraufhin musste ich zwar einige Dinge neu einstellen, das System lief aber wieder prima :)