ubuntuusers.de

Dedizierter Minecraft-Server

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Der Artikel sollte mit neueren Ubuntu-Versionen getestet werden. Darüber hinaus stimmen die URLs für den Bukkit Server und dessen Plugins teilweise nicht mehr (siehe auch Bukkit may cease to exist in the future {en}, Stand: 09/2014).

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

./minecraft_logo1.png Es gibt mehrere Möglichkeiten, einen Minecraft-Server zu betrieben. In diesem Artikel wird die Einrichtung des Vanilla-Server und dessen Erweiterung zum Bukkit-Server beschrieben.

Hardware

Für einen reinen Minecraft-Server mit 10 Slots wird ein Prozessor mit mindestens 1 GHz und 1 GiB RAM benötigt. Möchte man mehr Slots oder z.B. einen Webserver haben, sollte man bei 2 GiB anfangen.

Voraussetzungen

Minecraft basiert auf Java. Wie man eine Laufzeitumgebung (JRE, ab Version 6) installiert, ist im Artikel Java/Installation beschrieben. Um den Server nur bei Bedarf zu starten, reicht das vollkommen. Es wird aber empfohlen, auch screen und wget zu installieren, um die neuste Serversoftware herunterzuladen und den Server aus der Ferne verwalten zu können [1]:

  • wget

  • screen

Wiki/Vorlagen/Installbutton/button.png 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 {en}, mit dem man den Server unter anderem aktualisieren kann. Dafür wird benötigt:

  • perl

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install perl 

sudo aptitude install perl 

Dann muss das Skript noch heruntergeladen werden [2]:

wget https://raw.github.com/sandain/MinecraftServerControlScript/master/minecraft_server 

Hinweis!

Fremdsoftware kann das System gefährden.

Das Skript benutzt aus Sicherheitsgründen den Benutzer minecraft, der noch angelegt werden muss [3][4]:

sudo adduser minecraft 

Jetzt das Skript nach /etc/init.d/ kopieren und ausführbar machen [5]:

sudo cp minecraft_server /etc/init.d/minecraft_server
sudo chmod 755 /etc/init.d/minecraft_server
sudo update-rc.d minecraft_server defaults 

Weiter geht es im Abschnitt Linux Minecraft Server Control Script.

Vanilla

Der Vanilla-Server ist der von Mojang freigegebene Original-Minecraft-Server, mit dem man einfach nur Minecraft spielen kann, ohne Plugins oder Ähnlichem. Um den Server zu nutzen, muss der Server zuerst heruntergeladen 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 dem Befehl:

java -Xmx 1024M -Xms 1024M -jar minecraft_server.jar -nogui 

oder mit einem kurzen Shellskript:

1
2
#!/bin/bash
java -Xmx 1024M -Xms 1024M -jar minecraft_server.jar -nogui

welches z.B. als minecraft_server.sh gespeichert wird, gestartet werden. Das Argument -nogui sorgt dafür, dass das Swing-GUI, welches im Vanilla Server integriert ist, nicht geöffnet wird.

Bukkit Server

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 von dl.bukkit.org {en} herunter geladen werden. Die Datei 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
#!/bin/bash
java -Xmx 1024M -Xms 1024M -jar craftbukkit.jar

welches z.B. als craftbukkit.sh gespeichert wird, gestartet werden. Der Bukkitserver beinhaltet keine Swing-GUI, weshalb kein -nogui angehängt werden muss. Es gibt aber Plugins, die eine GUI oder ein Webinterface hinzufügen.

Plugins installieren

Um Plugins zu installieren, muss einfach das von z.B. DevBukkit{en} heruntergeladene .jar-Datei Archiv in den Ordner plugins kopiert werden.

su minecraft
cd ./plugins
wget http://dev.bukkit.org/media/files/538/85/PermissionsBukkit-1.2.jar   ## Download nicht mehr verfuegbar! 

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.

Empfohlene Plugins

Plugin Liste
Name Autor Beschreibung
CommandBook {en} sk89q Ein sehr verbreitetes Plugin, welches viele neue Befehle hinzufügt und alte verbessert.
WorldEdit {en} sk89q Ein ingame Map-Editor, wie z.B. MCEdit, mit vielen Zusatz-Features.
WorldGuard {en} sk89q Ein Sicherheits Plugin, welches man auf sogut wie jedem Server findet. Erlaubt es unter anderem Region zu definieren und Explosionen zu verhindern.
CommandHelper {en} sk89q Ein sehr praktisches Plugin mit einem repeat Befehl und der Möglichkeit mehrere Befehle zusammenzufassen
CraftBook {en} sk89q Ein sehr schönes Plugin mit ICs, Liftschildern, schaltbaren Areas und vielem mehr.
Bukkitmanager {en} efreak1996 Ein Plugin zum verwalten des Servers und seiner Plugins
PermissionsEx {en} t3hk0d3 Ein sehr häufig genutztes und mächtiges Permissions Plugin
PermissionsBukkit {en} SpaceManiac Ein sehr leichtes und kleines Permissions Plugin.
SuperpermBridge {en} SpaceManiac Eine Brücke zwischen verschiedenen Permissionssystemen und PermissionsBukkit
iConomy {en} Nijikokun Ein Geldplugin, welches von den meisten Plugins unterstützt wird.
LWC {en} Hidendra Ein Plugin, zum Abschliessen von Türen, Truhen und vielem mehr.
Multiverse {en} MultiverseTeam Ein Multiworld Plugin.
Multiverse Portale {en}, Schild Portale {en}, Nether Portale {en} MultiverseTeam Verschiedene Portalarten für Multiverse
DynMap {en} mikeprimm, FrozenCow2 Eine sehr beliebtes LiveMap plugin, welches auch Apache unterstützt

Permissions - interne Rechteverwaltung

Einleitung

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

Eigene Permission Nodes

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

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 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

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 {en}

SuperpermsBridge

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 {en}.

Linux Minecraft Server Control Script

Zum Starten des Servers einfach

su minecraft
/etc/init.d/minecraft_server start 

eingeben.

Liste der Argumente

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

Nutzung mit Bukkit

Um einen Bukkit-Server mit dem Skript zu nutzen, benötigt es einiger Änderungen an der Datei minecraft_server. Einfach nach dem Eintrag "Minecraft Server Options" suchen und die drei Zeilen:

SERVER_URL="http://www.minecraft.net/download/minecraft_server.jar"
SERVER_JAR="minecraft_server.jar"
SERVER_ARGS="nogui"

mit jeweils einem vorangestelltem # deaktivieren und die drei Zeilen:

# 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=""

einkommentieren (#-Zeichen entfernen).

Server-Befehle

Die Serverbefehle sind Befehle, die in der Serverkonsole oder inGame mit OP-Rechten, 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

server.properties

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

Diese Revision wurde am 25. September 2014 16:26 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Java, unfreie Software, Netzwerk, Server, Linux-Spiel, Spiele