[[Vorlage(Archiviert, )]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:Benutzer_und_Gruppen: Neuen Benutzer anlegen] [:chmod: Zugriffsrechte von Dateien ändern] [:Dedizierter_Spiele-Server: Dedizierten Spiele-Server einrichten] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./minecraft_logo1.png,64,align=left)]] Es gibt mehrere Möglichkeiten, einen [:Spiele/Minecraft:Minecraft]-Server zu betrieben. In diesem Artikel wird die Einrichtung des Vanilla-Server und dessen Erweiterung zum Bukkit-Server beschrieben. ##Hier wird zur Verwaltung das [http://www.minecraftforum.net/topic/1218##30-multi-world-linux-minecraft-server-control-script/Linux Minecraft Kontroll Skript] {en} von Minecraftforum-Mitglied [http://www.minecraftforum.net/user/79565-sandain/ sandain] {en} benutzt. = 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 ([:Java#JRE:JRE], ab Version 6) installiert, ist im Artikel [:Java/Installation#OpenJDK:] 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]: {{{#!vorlage Paketinstallation wget screen }}} Zur besseren Handhabung des Servers gibt es ein fertiges Skript von Minecraftforum-Mitglied [http://www.minecraftforum.net/user/79565-sandain/ sandain] {en}, mit dem man den Server unter anderem aktualisieren kann. Dafür wird benötigt: {{{#!vorlage Paketinstallation perl }}} Dann muss das Skript noch heruntergeladen werden [2]: {{{#!vorlage Befehl wget https://raw.github.com/sandain/MinecraftServerControlScript/master/minecraft_server }}} [[Vorlage(Fremd,Software,"")]] Das Skript benutzt aus Sicherheitsgründen den Benutzer `minecraft`, der noch angelegt werden muss [3][4]: {{{#!vorlage Befehl sudo adduser minecraft }}} Jetzt das Skript nach '''/etc/init.d/''' kopieren und ausführbar machen [5]: {{{#!vorlage Befehl 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 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. {{{#!vorlage Befehl wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.3/minecraft_server.1.8.3.jar }}} Die '''minecraft_server.jar''' kann an einem beliebigen Ort gespeichert werden und von dort mit dem Befehl: {{{#!vorlage Befehl java -Xmx 1024M -Xms 1024M -jar minecraft_server.jar -nogui }}} oder mit einem kurzen Shellskript: {{{#!code bash #!/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 [https://dl.bukkit.org/downloads/bukkit/list/rb/ 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 {{{#!vorlage Befehl java -Xmx 1024M -Xms 1024M -jar craftbukkit.jar }}} oder mit einem kurzen Shellskript: {{{#!code bash #!/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. [http://dev.bukkit.org/server-mods DevBukkit]{en} heruntergeladene '''.jar'''-Datei Archiv in den Ordner '''plugins''' kopiert werden. {{{#!vorlage Befehl 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 == {{{#!vorlage Tabelle <-3 tablestyle="width: 97%;" rowclass="titel"> Plugin Liste +++ Name Autor Beschreibung +++ [http://dev.bukkit.org/server-mods/commandbook CommandBook] {en} sk89q Ein sehr verbreitetes Plugin, welches viele neue Befehle hinzufügt und alte verbessert. +++ [http://dev.bukkit.org/server-mods/worldedit WorldEdit] {en} sk89q Ein ingame Map-Editor, wie z.B. MCEdit, mit vielen Zusatz-Features. +++ [http://dev.bukkit.org/server-mods/worldguard 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. +++ [http://dev.bukkit.org/server-mods/commandhelper CommandHelper] {en} sk89q Ein sehr praktisches Plugin mit einem repeat Befehl und der Möglichkeit mehrere Befehle zusammenzufassen +++ [http://dev.bukkit.org/server-mods/craftbook CraftBook] {en} sk89q Ein sehr schönes Plugin mit ICs, Liftschildern, schaltbaren Areas und vielem mehr. +++ [http://dev.bukkit.org/server-mods/bukkitmanager Bukkitmanager] {en} efreak1996 Ein Plugin zum verwalten des Servers und seiner Plugins +++ [http://dev.bukkit.org/server-mods/permissionsex PermissionsEx] {en} t3hk0d3 Ein sehr häufig genutztes und mächtiges Permissions Plugin +++ [http://dev.bukkit.org/server-mods/permbukkit PermissionsBukkit] {en} SpaceManiac Ein sehr leichtes und kleines Permissions Plugin. +++ [http://dev.bukkit.org/server-mods/permbukkit SuperpermBridge] {en} SpaceManiac Eine Brücke zwischen verschiedenen Permissionssystemen und PermissionsBukkit +++ [http://dev.bukkit.org/server-mods/iconomy iConomy] {en} Nijikokun Ein Geldplugin, welches von den meisten Plugins unterstützt wird. +++ [http://dev.bukkit.org/server-mods/lwc LWC] {en} Hidendra Ein Plugin, zum Abschliessen von Türen, Truhen und vielem mehr. +++ [http://dev.bukkit.org/server-mods/multiverse-core Multiverse] {en} MultiverseTeam Ein Multiworld Plugin. +++ Multiverse [http://dev.bukkit.org/server-mods/multiverse-portals Portale] {en}, [http://dev.bukkit.org/server-mods/multiverse-signportals Schild Portale] {en}, [http://dev.bukkit.org/server-mods/multiverse-netherportals Nether Portale] {en} MultiverseTeam Verschiedene Portalarten für Multiverse +++ [http://dev.bukkit.org/server-mods/dynmap/ 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: {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> Gruppen-Überblick +++ Gruppe Bedeutung +++ Gast Die Standard-Gruppe. Hat meist nur Rechte zum Chatten und zum Spawnen. +++ Member Der normale Benutzer. 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: [http://dev.bukkit.org/server-mods/permbukkit 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 [http://dev.bukkit.org/server-mods/permbukkit DevBukkit Thread] {en}. = Linux Minecraft Server Control Script = Zum Starten des Servers einfach {{{#!vorlage Befehl su minecraft /etc/init.d/minecraft_server start }}} eingeben. Alternativ siehe auch [github:Ahtenus/minecraft-init:Init script for minecraft/bukkit servers] {en}. == Liste der Argumente == {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> 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. {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" ##rowclass="titel"> 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. {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" ##rowclass="titel"> 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 }}} {{{#!vorlage Tabelle <-2 tablestyle="width: 97%;" rowclass="titel"> 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 (kreieren) 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, ist dieser aus, findet keine Überprüfung statt. +++ `gamemode` Wechselt zwischen dem Standard Gamemode (Creative|Survival|Hardcore) +++ `spawn-animals` Erlaubt oder verbietet das Spawnen (kreieren) von Tieren +++ `max-players` Die maximale Spielerzahl +++ `server-ip` Lässt den Server nur auf die angegebene IP lauschen +++ `pvp` Erlaubt oder verbietet PvP (Player versus Player (Spieler gegen Spieler)) +++ `level-seed` Erlaubt das Angeben eines benutzerdefinierten Seeds (Startwert einer Welt) +++ `server-port` Gibt den Port an, auf dem der Server läuft (Standard: 25565) +++ `allow-flight` Erlaubt oder verbietet fliegen. Fly-mod wird benötigt +++ `white-list` In der Whitelist können Spieler eingetragen werden, die sich verbinden dürfen +++ `motd` Die Nachricht, die in der Serverliste angezeigt wird. Beispiel: Mein Minecraft-Server }}} = Links = * [http://maketecheasier.com/complete-guide-to-running-a-minecraft-server/2011/04/21 The Complete Guide to Running a Minecraft Server] {en} - Blogbeitrag, 04/2011 * [http://www.debianroot.de/server/minecraft-server-erstellen-auf-einem-debian-server-1297.html Minecraft Server erstellen auf einem Debian Server] {de} - Blogbeitrag, 01/2011 * [holarse:Minecraft_Dedicated_Server:Minecraft Dedicated Server] {de} * [http://wiki.multiplay.co.uk/Minecraft Weitere Informationen zum Betrieb eines Minecraft-Servers] {en} * [http://www.minecraftforum.net/topic/121830-multi-world-linux-minecraft-server-control-script/ Linux Minecraft server control script] {en} * [http://bukkit.org/ Bukkit] {en} * [http://dev.bukkit.org/ DevBukkit] {en} * [http://minecraft.net/ Minecraft-Homepage] {en} * [https://www.rock-server.de/gameserver/minecraft-server-mieten/ Minecraft Server mieten] {en} - kommerzieller Anbieter * [:Spiele/Minecraft:Minecraft] - Hauptartikel #tag: Netzwerk, Spiele, Server, unfreie Software, Linux-Spiel, Java