Ubuntu 10.04 „Lucid Lynx“
Es gibt mehrere Minecraft-Server Arten, in diesem Artikel wird die Einrichtung des Vanilla-Server und dessen Erweiterung zum Bukkit-Server beschrieben.
Für einen reinen Minecraft-Server mit 10 Slots wird ein Prozessor mit mindestens 1GHz und 1GB RAM benötigt. Möchte man mehr Slots oder z.B. einen Webserver haben, sollte man bei 2GB anfangen.
Da Minecraft in Java geschrieben ist, muss Java-Runtime installiert werden[1].
openjdk-6-jre
mit apturl
Paketliste zum Kopieren:
sudo apt-get install openjdk-6-jre
sudo aptitude install openjdk-6-jre
Um den Server nur bei Bedarf zu starten, reicht das vollkommen, es wird aber empfohlen screen und wget zu installieren, um die neuste Serversoftware runterzuladen und den Server im Hintergrund zu starten.
wget
screen
mit apturl
Paketliste zum Kopieren:
sudo apt-get install wget screen
sudo aptitude install wget screen
Zur besseren Handhabung des Servers gibt es ein fertiges Skript von Minecraftforum-Mitglied sandain , mit dem man den Server unter anderem aktualisieren kann. Dafür wird benötigt:
perl
screen
wget
mit apturl
Paketliste zum Kopieren:
sudo apt-get install perl screen wget
sudo aptitude install perl screen wget
Außerdem muss noch das Skript mit wget herunter geladen werden[2]:
wget https://mcshellscript.svn.sourceforge.net/svnroot/mcshellscript/trunk/minecraft_server
Fremdsoftware kann das System gefährden.
Das Skript benutzt aus Sicherheitsgründen einen anderen Benutzer, namens minecraft
, der noch angelegt werden muss [5]:
sudo adduser minecraft
Jetzt noch das Skript nach /etc/init.d kopieren und ausführbar[6] machen.
sudo cp minecraft_server /etc/init.d/minecraft_server sudo chmod 755 /etc/init.d/minecraft_server sudo update-rc.d minecraft_server defaults
Der Vanilla Server ist der von Mojang freigegebene Minecraft-Server, mit dem man einfach nur Minecraft spielen kann, ohne Plugins oder Ähnlichem.
Um den Server zu nutzen, muss der Server erst Mal von Minecraft.net herunter geladen werden.
wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar?
Die minecraft_server.jar kann an einem beliebigen Ort gespeichert werden und von dort mit Doppelklick oder aus dem Terminal heraus mit
java -Xmx 1024M -Xms 1024M -jar minecraft_server.jar -nogui
oder mit einem kurzen Shellskript:
1 2 | #!/sh/bash
java -Xmx 1024M -Xms 1024M -jar minecraft_server.jar -nogui
|
welches z.B. als RUN.sh gespeichert wird, gestartet werden. Das Argument -nogui sorgt dafür, dass das Swing GUI, welches in dem Vanilla Server integriert ist, nicht geöffnet wird.
Der Bukkit Server ist eine Art Mod für den Minecraft Server, der es unter anderem ermöglicht, Plugins zu installieren.
Um den Server zu nutzen, muss der Server erst Mal von dl.bukkit.org herunter geladen werden.
wget http://dl.bukkit.org/latest-rb/craftbukkit.jar
Die craftbukkit.jar kann an einem beliebigen Ort gespeichert werden und von dort aus dem Terminal heraus mit
java -Xmx 1024M -Xms 1024M -jar craftbukkit.jar
oder mit einem kurzen Shellskript:
1 2 | #!/sh/bash
java -Xmx 1024M -Xms 1024M -jar craftbukkit.jar
|
welches z.B. als RUN.sh gespeichert wird, gestartet werden. Der Bukkitserver beinhaltet kein Swing GUI, weshalb kein -nogui angehängt werden muss. Es gibt aber Plugins die ein GUI oder ein Webinterface hinzufügen.
Um Plugins zu installieren, muss einfach das von z.B. DevBukkit heruntergeladene .jar Archiv in den plugins Ordner kopiert werden.
su minecraft cd ./plugins wget http://dev.bukkit.org/media/files/538/85/PermissionsBukkit-1.2.jar
Diese Befehle würden PermissionsBukkit in den Standard-Pluginordner herunterladen. Beim nächsten Start des Servers oder bei einem reload wird das Plugin automatisch geladen.
Plugin Liste | ||
Name | Autor | Beschreibung |
CommandBook ![]() | sk89q | Ein sehr verbreitetes Plugin, welches viele neue Befehle hinzufügt und alte verbessert. |
WorldEdit ![]() | sk89q | Ein ingame Map-Editor, wie z.B. MCEdit, mit vielen Zusatz-Features. |
WorldGuard ![]() | sk89q | Ein Sicherheits Plugin, welches man auf sogut wie jedem Server findet. Erlaubt es unter anderem Region zu definieren und Explosionen zu verhindern. |
CommandHelper ![]() | sk89q | Ein sehr praktisches Plugin mit einem repeat Befehl und der Möglichkeit mehrere Befehle zusammenzufassen |
CraftBook ![]() | sk89q | Ein sehr schönes Plugin mit ICs, Liftschildern, schaltbaren Areas und vielem mehr. |
Bukkitmanager ![]() | efreak1996 | Ein Plugin zum verwalten des Servers und seiner Plugins |
PermissionsEx ![]() | t3hk0d3 | Ein sehr häufig genutztes und mächtiges Permissions Plugin |
PermissionsBukkit ![]() | SpaceManiac | Ein sehr leichtes und kleines Permissions Plugin. |
SuperpermBridge ![]() | SpaceManiac | Eine Brücke zwischen verschiedenen Permissionssystemen und PermissionsBukkit |
iConomy ![]() | Nijikokun | Ein Geldplugin, welches von den meisten Plugins unterstützt wird. |
LWC ![]() | Hidendra | Ein Plugin, zum Abschliessen von Türen, Truhen und vielem mehr. |
Multiverse ![]() | MultiverseTeam | Ein Multiworld Plugin. |
Multiverse Portale ![]() ![]() ![]() | MultiverseTeam | Verschiedene Portalarten für Multiverse |
Spout ![]() | Spout-Dev | In Verbindung mit dem Spoutcraft ![]() |
DynMap ![]() | mikeprimm, FrozenCow2 | Eine sehr beliebtes LiveMap plugin, welches auch Apache unterstützt |
Spout ist der Nachfolger von BukkitContrib und ermöglicht dem Server den Clienten zu modifizieren. Dadurch sind im Minecraft-Multiplayer sogut wie keine Grenzen mehr gesetzt. Für manche Plugins, die nativ Spout nicht unterstützen, z.B. LWC, gibt es mehrere Plugins welche das hinzufügen. Spoutcraft bietet die Möglichkeit Befehle auf bestimmte Tasten zu legen. Bukkit Plugins können mit der Hilfe von Spout auch Aktionen auf Tasten legen, z.B. zum Abschliessen einer Tür mit LWC und SpoutLWC. Ausserdem kann man das Texturepack festlegen, Achievementmeldungen anzeigen oder den Mainscreen bearbeiten.
Permissions(Rechte) sorgen bei den meisten großen Servern dafür, dass neue Spieler keinen Mist bauen können oder nur Admins cheaten können. In dieser kurzen Anleitung werden nur PermissionsEx, PermissionsBukkit und die SuperpermsBridge beschrieben, da sie die am meist genutzten Permissions Plugins sind
Im Root Ordner des Minecraft Servers befindet sich eine permissons.yml in der man mehrere Permissionseinträge bündeln kann. Beispiel:
admin: commandbook.*: true permissions.*: true vip: commandbook.give.*: true
Diese Permissionnodes sind aber nur dazu gedacht, große Sammlungen an Permissionnodes zu einer zusammenzufassen. Um die Permissionnodes zu verteilen, muss ein Permissions Plugin installiert werden.
PermissionsBukkit ist ein relativ kleines und komfortables Permissions Plugin, welches nur auf kleineren oder Homeservern verwendet werden sollte. Ab einer gewissen Größe und Anzahl an Plugins sollte man, z.B. auf PermissionsEx umsteigen. Wenn das Plugin installiert ist, findet man im Ordner /plugins/PermissionsBukkit/ eine Datei namens config.yml. Wenn man diese öffnet, sollte das Ganze in etwa so aussehen:
# PermissionsBukkit configuration file # # A permission node is a string like 'permissions.build', usually starting # with the name of the plugin. Refer to a plugin's documentation for what # permissions it cares about. Each node should be followed by true to grant # that permission or false to revoke it, as in 'permissions.build: true'. # Some plugins provide permission nodes that map to a group of permissions - # for example, PermissionsBukkit has 'permissions.*', which automatically # grants all admin permissions. You can also specify false for permissions # of this type. # # Users inherit permissions from the groups they are a part of. If a user is # not specified here, or does not have a 'groups' node, they will be in the # group 'default'. Permissions for individual users may also be specified by # using a 'permissions' node with a list of permission nodes, which will # override their group permissions. World permissions may be assigned to # users with a 'worlds:' entry. # # Groups can be assigned to players and all their permissions will also be # assigned to those players. Groups can also inherit permissions from other # groups. Like user permissions, groups may override the permissions of their # parent group(s). Unlike users, groups do NOT automatically inherit from # default. World permissions may be assigned to groups with a 'worlds:' entry. # # The cannot-build message is configurable. If it is left blank, no message # will be displayed to the player if PermissionsBukkit prevents them from # building, digging, or interacting with a block. Use '&' characters to # signify color codes. users: ConspiracyWizard: permissions: permissions.example: true groups: - admin groups: default: permissions: permissions.build: false admin: permissions: permissions.*: true inheritance: - user user: permissions: permissions.build: true worlds: creative: coolplugin.item: true inheritance: - default messages: build: '&cYou do not have permission to build here.'
Unter dem Eintrag user werden später alle Nutzer inklusive ihrer Gruppen und evtl. sonder-Permissions eingetragen. Das übernimmt PermissionsBukkit automatisch, sobald sich jemand Neues einloggt.
Unter dem Eintrag group
s werden alle Gruppen samt Permissionsnodes definiert.
Unter dem Eintrag messages können alternativ Nachrichten, für den Fall, dass man für etwas keine Berechtigung hat, definiert werden.
Beschäftigen wir uns mit den Gruppen:
Auf den meisten Servern gibt es folgende Gruppen:
Gruppe | Bedeutung |
Gast | Die Standard Gruppe. hat meist nur Rechte zum Chatten und zum Spawnen |
Member | Der normale User. Kann nichts besonderes, aber mehr als der Gast. |
VIP | Werden oft vom Member durch Spenden hochgestuft. Kann meist Cheaten. |
Supporter | Hilft den Gästen, Membern und VIP's. Kann manchmal auch Gäste freischalten. |
Admin | Ist der Mächtigste von Allen. Kann alles machem was er will. |
Eine config.yml mit diesen Gruppen könnte z.B. so aussehen:
user: Bämm2000: permissions: groups: - member knorckator50: permissions: groups: - admin groups: gast: permissions: permissions.build: false commandbook.spawn: true member: inheritance: - gast permissions: permissions.build:true commandbook.sethome: true commandbook.warp: true vip: inheritance: -member permissions: commandbook.give.*: true supporter: inheritance: -vip permissions: permissions.*: true admin: inheritance: -supporter permissions: commandbook.*: true worldedit.*: true worldguard.*: true commandhelper.*: true iConomy.*: true messages: build: '&cYou do not have permission to build here.'
Bei den Usern ist die Einrichtung sehr simpel gehalten:
users: ConspiracyWizard: permissions: permissions.example: true groups: - admin groups: admin: permissions: permissions.*: true inheritance: messages: build: '&cYou do not have permission to build here.'
Wie man sieht, ist der user teil dem groups teil sehr ähnlich.
Statt einem Gruppennamen wird der Username angegeben und es gibt keine inheritance, stattdessen einen groups eintrag.
Der Permissionseintrag ist dazu da, um jemandem, zusätzliche Rechte zu geben oder zu nehmen.
Unter dem Groupseintrag trägt man die zugehörige Gruppe ein.
Für weitere Informationen zu PermissionsBukkit und seiner Einrichtung:
DevBukkit Thread
Es kann vorkommen, dass ein Plugin PermissionsBukkit nicht unterstützt, sondern z.B. Permissions 3.1.6. In diesem Fall hilft die SuperpermsBridge, indem sie diesen Plugins ein anderes Permissions vorgaukelt. Wenn PermissionsEx genutzt wird ist dies nicht nötig, da PermissionsEx die API von Permissions 2&3 unterstützt. Um nun diese Permission Nodes zu verteilen, muss man nicht z.B.
xauth.register: true
sondern
superpermbridge.xauth.register: true
eingeben.
Weitere Informationen gibts es im DevBukkit Thread .
Die Serverbefehle sind Befehle, die in der Serverkonsole, oder inGame mit OP-Rechten, immer eingegeben werden können.
Liste aller Befehle - Vanilla | |
Befehl | Bedeutung |
stop | Stoppt den Server. |
save-all | Speichert die Welt |
save-on | Aktiviert das Speichern von Weltänderungen |
save-off | Deaktiviert das Speichern von Weltänderungen |
say NACHRICHT | Gibt eine globale Nachricht aus |
tp P1 P2 | Teleportiert Spieler 1 zu Spieler 2 |
gamemode SPIELER GAMEMODE | Wechselt den Gamemode des Spielers (Creative|Survival) |
give SPIELER ID ANZAHL | Gibt dem Spieler ein oder mehr Items mit der angegebenen ID |
kick SPIELER | Kickt den Spieler SPIELER |
ban SPIELER | Bannt den Spieler SPIELER |
pardon SPIELER | Hebt den Bann eines Spielers wieder auf |
ban-ip IP | Bannt eine IP |
pardon-ip IP | Hebt den Bann einer IP wieder auf |
help | Zeigt eine Befehlsübersicht an. |
op SPIELER | Macht einen Spieler zum OP, mit allen Server Befehlen. |
deop SPIELER | Löscht den OP Status eines Spielers |
tell SPIELER NACHRICHT | Sendet dem gegebenen Spieler SPIELER eine Nachricht NACHRICHT . |
list | Listet alle Spieler auf. |
say NACHRICHT | Sendet allen Spielern eine Nachricht. |
time add|set WERT | Fügt der Systemzeit den Wert hinzu/Setzt die Systemzeit auf den Wert(0-24000). |
Der Bukkit Server besitzt außerdem noch die folgenden und durch Plugins hinzugefügte Befehle.
Liste aller Befehle - Bukkit | |
Befehl | Bedeutung |
plugins | Gibt eine Liste mit allen Plugins zurück |
reload | Lädt den Server und die Plugins neu |
In der server.properties kann man so gut wie alles beim Server einstellen.
level-name=world allow-nether=true view-distance=10 spawn-monsters=true online-mode=true gamemode=0 spawn-animals=true max-players=20 server-ip= pvp=true level-seed= server-port=25565 allow-flight=false white-list=false motd=A Minecraft Server
Bedeutung der Einträge | |
Eintrag | Bedeutung |
level-name | Gibt den Namen der Welt an. |
allow-nether | Erlaubt oder verbietet den Nether(Hölle) |
view-distance | Gibt die Sichtweite an(1-10) |
spawn-monsters | Erlaubt oder verbietet das Spawnen von Monstern |
online-mode | Schaltet den Onlinemode an oder aus. Wenn er an ist, wird auf den Minecraft-Servern überprüft, ob der Spieler registriert ist. |
gamemode | Wechselt zwischen dem Standard Gamemode(Creative|Survival) |
spawn-animals | Erlaubt oder verbietet das Spawnen von Tieren |
max-players | Die maximale Spielerzahl |
server-ip | Lässt der Server nur auf die angegebene IP lauschen |
pvp | Erlaubt oder verbietet PvP |
level-seed | Erlaubt das Angeben eines benutzerdefinierten Seeds |
server-port | Gibt den Port an, auf dem der Server läuft |
allow-flight | Erlaubt oder verbietet fliegen. Fly-mod wird benötigt |
white-list | Ob nur Spieler die in der Whitelist eingetragen sind joinen dürfen |
motd | Die Nachricht, die in der Serverliste angezeigt wird |
Zum Starten des Servers einfach
su minecraft /etc/init.d/minecraft_server start
eingeben.
Um einen Bukkit-Server mit dem Skript zu nutzen, benötigt es einiger Änderunden an der minecraft_server Datei. Einfach nach dem "Minecraft Server Options" Eintrag suchen und die drei Einträge:
SERVER_URL="http://www.minecraft.net/download/minecraft_server.jar" SERVER_JAR="minecraft_server.jar" SERVER_ARGS="nogui"
mit jeweils einem vorangestelltem #
versehen und die drei Einträge:
# SERVER_URL="http://ci.bukkit.org/job/dev-CraftBukkit/lastStableBuild/artifact/target/craftbukkit-1.0.1-R2-SNAPSHOT.jar" # SERVER_JAR="craftbukkit-1.0.1-R2-SNAPSHOT.jar" # SERVER_ARGS=""
auskommentieren.
Liste aller Argumente | |
Argumente | Bedeutung |
start WELT | Startet die angegebene Welt, bzw. alle Welten. |
stop WELT | Stopt die angegebene Welt, bzw. alle Welten. |
restart WELT | Startet die angegebene Welt, bzw. alle Welten neu. |
force-stop WELT | Erzwingt das Stoppen der angegebenen Welt, bzw. aller Welten. |
force-restart WELT | Erzwingt das Neustarten der angegebenen Welt, bzw. aller Welten. |
status WELT | Zeigt den Status der angegebenen Welt, bzw. aller Welten. |
send WELT BEFEHL | Sendet einen Befehl zur angegebenen Welt. |
backup WELT | Macht ein Backup der angegebenen Welt, bzw. aller Welten. |
screen WELT | Wechselt zur Konsole der angegebenen Welt. |
watch WELT | Zeigt die log File der angegebenen Welt. |
update server | Updatet die Serverjar's und die Plugins |