Minecraft - Linux Server Script

01/29/2016 18:39 ComputerBaer#1
Minecraft - Linux Server Script
Einfache Installation und Verwaltung von MinecraftServern

Informationen
Sprachen: Deutsch, Englisch
Quellcode: [Only registered and activated users can see links. Click Here To Register...]
Testsysteme: Ubuntu 15.10, CentOS 7 1511, openSUSE 42.1

Installation

Der folgende Befehl muss dort ausgeführt werden, wo ihr den Minecraftserver haben wollt. Dadurch wird das Skript heruntergeladen und vollständig installiert.
Code:
curl -sL https://git.io/vzQYi -o mcserver.sh && chmod +x mcserver.sh && ./mcserver.sh
Verwendung

Nach der Installation des Skripts, könnt ihr es verwenden um einen Vanilla-, Bukkit- oder Spigot-Server zu installieren. Für Forge und andere Server gibt es weiter unten noch zusätzliche Informationen.
Code:
# Server installieren / aktualisieren
./mcserver.sh install

# Server starten
./mcserver.sh start

# Server stoppen
./mcserver.sh stop

# Backup erstellen
./mcserver.sh backup
Konfiguration

configuration.ini
Code:
#######################
##  Server Settings  ##
#######################

# Server Types: "vanilla", "bukkit", "spigot", "forge"
ServerType="vanilla"
# Vanilla: "1.8.9", "16w04a"
# Bukkit/Spigot: "latest", "1.8.8", "580" - https://hub.spigotmc.org/versions/
# Forge: "1.8.9-11.15.1.1741" - http://files.minecraftforge.net/
ServerVersion="1.8.9"

MinMemory="1G"
MaxMemory="2G"

#######################
##   MySQL Backup    ##
#######################

MySQL_Username=""
MySQL_Password=""
MySQL_Hostname="localhost"
MySQL_Port="3306"
MySQL_Database=""

#######################
##  Script Settings  ##
#######################

InstanceName="MyMinecraftServer"

ScriptLanguage="en"

ScriptBranch="master"
ScriptUpdates=true
Aktionen

./mcserver.sh backup
Erstellt ein Backup von allen wichtigen Serverdateien und der Konfigurationsdatei des Skripts. Alle jar-Dateien werden irgnoriert, damit das Backup nicht unnötig groß wird.
./mcserver.sh help
Zeigt eine Liste mit allen verfügbaren Aktionen an. Es werden auch Aktionen angezeigt, die vom Benutzer hinzugefügt wurden.
./mcserver.sh install
Installiert/Aktualisiert einen Vanilla-, Bukkit- oder Spigot-Server, je nachdem was in der Konfigurationsdatei festgelegt wurde. Bukkit und Spigot haben immer die neuste Version, bei Vanilla ist es die eingestellte Version.
./mcserver.sh say <text>
Sendet den Befehl "say <text>" an den Server. Dadurch wird der Text dann im Chat angezeigt.
./mcserver.sh start
Startet den Server mit screen im Hintergrund.
./mcserver.sh status
Zeigt den aktuellen Status des Servers an: Server läuft / Server läuft nicht
./mcserver.sh stop
Sendet den Befehl "stop" an den Server.
./mcserver.sh view
Holt den screen-Prozess in den Vordergrund, in dem der Server läuft. Hier könnte ihr direkt mit der Serverkonsole interagieren. Zum Verlassen müsst ihr [Strg]+[A]+[D] drücken.
Alternative Java-Server / Andere Versionen / Modpacks

Das Skript kann euch, wie ihr bereits gelesen haben solltet, bei der Installation von Vanilla, Bukkit/Spigot und Forge helfen. Wenn ihr jetzt aber eine andere Java-Serversoftware (z.B. Canary oder SpongeVanilla), eine ältere Version von Bukkit/Spigot (z.B. 1.7.10 oder auch 1.6) oder ein Modpack (z.B. Hexxit, FTB Infinity) verwenden wollte, dann kann das Skript die Installation nicht ausführen. Für bereits vorhandene Server, die auf dieses Skript umstellen, ist dieser Bereich auch interessant.

Ihr müsst euren Server, von der "mcserver.sh" aus gesehen, in den Unterordner "game" installieren. Anschließend habt ihr zwei Möglichkeiten, damit das Skript euren Server erkennt und ihn verwenden kann. In beiden Fällen solltet ihr danach kein "./mcserver.sh install" mehr ausführen, ansonsten wird die jar-Datei durch die die eingestellte Serversoftware ersetzt (im Standardfall wäre es Vanilla).
  1. Ihr installiert einen Server über das Skript, ersetzt dann alle Dateien und nennt die server.jar (z.B. craftbukkit.jar oder hexxit.jar) genau so wie die installierte Jar-Datei hieß (z.B. vanilla.1.8.9.MyMinecraftServer.jar).
  2. Oder ihr fügt die folgende Zeile in eure configuration.ini ein und gebt den Namen der server.jar ein. Damit wird die automatische Erstellung des Namens im Skript überschrieben. Den Beispielnamen "meineServer.jar" ersetzt ihr dabei durch den richtigen Namen (z.B. craftbukkit.jar oder hexxit.jar).
    Code:
    GAME_EXECUTABLE="${GAME_DIR}meineServer.jar"
Mehrere Server

Das Skript kann problemlos für mehrere Server auf der selben Maschine verwendet werden, dafür muss es für jeden Server an einem anderen Ort neu installiert werden. Die "InstanceName" Einstellung in der configuration.ini muss (!!!) für jeden Server anders sein, ansonsten funktioniert das Skript nicht richtig und es kann passieren, dass ihr Server1 nicht starten könnt weil er angeblich schon läuft, aber eigentlich läuft nur Server2. Außerdem müsst ihr in der server.properties-Datei vom Server dafür sorgen, dass die Server sich nicht den selben Port nehmen wollen, dann könnte nämlich auch nur einer der Server laufen.

Erweiterungen und Anpassungen

Neue Aktionen / Sprachen
Zusätzliche Dateien werden von der Update-Funktion nicht beachtet. Ihr könnt als problemlos eigene Aktionen im ".script/actions/"-Ordner anlegen und neue Sprachen im ".script/languages/"-Ordner erstellen.

Das selbe gilt auch für neue Funktionsbibliotheken im ".script/"-Ordner. Hierbei solltet ihr aber beachten, dass diese Dateien jedes mal geladen und damit auch ausgeführt werden.

Fehlerkorrekturen / Anpassungen
Alle Änderungen an meinen Dateien, werden vom Updater erkennt und wieder überschrieben. Wenn ihr das verhindern wollt, müsst ihr den Updater in der configuration.ini deaktivieren.

Zum Projekt beitragen
Ihr könnte natürlich auch einen Fork des Projekts anlegen, dort eure Fehlerkorrekturen, Anpassungen, Erweiterungen usw. einfügen und es dann mit einem Pull-Request an mich zurück schicken. Ich werde mir die Änderungen dann genau ansehen und entscheiden, ob ich sie annehme oder ablehne.

Besonders beim Hinzufügen und Verbessern der Sprachdateien bin ich auf eure Hilfe angewiesen.

Meine TODO-Liste
Hier stehen Änderungen und Erweiterung für das Skript, die mir eingefallen aber noch nicht umgesetzt sind. Ihr dürft euch auch gerne einen oder mehrere der Punkte vornehmen. Die Punkte mit einem * bearbeite ich und will in kürze damit anfangen.
  • Installation von Bukkit / Spigot (2016-02-01)
  • Backup-Funktion auch für MySQL (2016-02-12)
  • Installation von Forge (2016-02-12)
  • Einrichtung als Service
  • Verwaltung mehrere Server durch eine Skript Installation
02/09/2016 23:33 Sikk.#2
Das Script ist mega geil.
Leicht zu bedienen und sehr übersichtlich.
Top !
02/10/2016 17:17 ArgonQQ#3
Sieht wirklich sehr interessant aus!



LG Argon
02/12/2016 14:16 ComputerBaer#4
Ich habe jetzt ein größeres Update veröffentlicht. Die wichtigen Änderungen sind:
  • Installation von älteren Bukkit/Spigot Versionen (z.B. 1.8 oder 1.8.3)
  • Installation von Forge
  • Backup-Funktion für MySQL-Datenbanken

Dabei hat sich auch die configuration.ini verändert:
Code:
#######################
##  Server Settings  ##
#######################

# Server Types: "vanilla", "bukkit", "spigot", "forge"
ServerType="vanilla"
# Vanilla: "1.8.9", "16w04a"
# Bukkit/Spigot: "latest", "1.8.8", "580" - https://hub.spigotmc.org/versions/
# Forge: "1.8.9-11.15.1.1741" - http://files.minecraftforge.net/
ServerVersion="1.8.9"

MinMemory="1G"
MaxMemory="2G"

#######################
##   MySQL Backup    ##
#######################

MySQL_Username=""
MySQL_Password=""
MySQL_Hostname="localhost"
MySQL_Port="3306"
MySQL_Database=""

#######################
##  Script Settings  ##
#######################

InstanceName="MyMinecraftServer"

ScriptLanguage="en"

ScriptBranch="master"
ScriptUpdates=true
Diese Zeilen wurden aus der Datei entfernt und durch neue ersetzt:
Code:
# Vanilla Release- ("1.8.9") and Snapshot- ("16w04a") Versions
# Or latest CraftBukkit ("bukkit") and Spigot ("spigot")
MinecraftVersion="1.8.9"
Außerdem werde ich demnächst den Bereich "Bukkit / Spigot / Forge / ..." überarbeiten, da mittlerweile alle Server direkt über das Skript installiert werden können. Dabei werde ich dann auch etwas genauer auf die Installation von zum Beispiel Modpacks eingehen.