HOME

Wiki: Linux Spiele Server: Spigot-Server

Spigot ist nur einer von mehreren verfügbaren Minecraft-Server-Mods.
Inzwischen kabbeln sich die Entwickler der verschiedenen Versionen leider anstelle gemeinsam zusammen zu arbeiten. Das geht so weit, das Spigot in einer Infoseite Sponge total unterschlägt..
Wenigstens ein neutraler Hinweis wäre fair gewesen.
Witzig ist, das ich zuletzt(2017?) noch einen Spongeserver eingesetzt hatte.. inzwischen ist die "Rückständigkeit" von Sponge ausschlaggebend für mich stattdessen auf Spigot zu setzen.
Bitte nicht falsch verstehen, die Jungs von Sponge machen wirklich einen guten Job! Verglichen mit *damals* waren CraftBukkit&co auch lange ähnlich "zurückgeblieben" wie Sponge heute.
Eher ein Zeichen, das die Sponge Leute tatsächlich daran arbeiten, statt nur die Versionsnummern zu faken..(und nach und nach alle neuen Gimmicks nachzureichen).

Dennoch bleibt dieses Versionswirrwarr übel: Die "Plugins" sind auf dem neuesten Stand, aber Sponge hängt noch ein paar Versionen zurück. Wo findet man denn nun die "alten" Plugins?
Die meisten Spieler WOLLEN doch unbedingt die neuesten Versionen austesten(als wenn die bisherigen mehr als 400 Blöcke nicht genug wären..).
Nur.. wer einmal einen Server mit netten Plugins wie Teleport und ähnlichem Kram besucht hat.. wird mit der normalen Vanilla Version angeödet..

Zur Unterscheidung:
Die Vanilla-Version bezieht sich auf das Original von Microsoft(ehemals Mojang) zu finden unter minecraft.net
Um selber zu modden braucht man die JAVA-Edition von minecraft. Die anderen Versionen.. können gegen klingende Münze Mods nachladen, vergleichbar mit DLCs.
Aus meiner Sicht ist der einzige Vorteil der Vanilla-Version die Möglichkeit immer die aktuellste Version zu spielen.

Spigot ist relativ dicht an den aktuellsten Versionen dran, aber ich vermute, das die Jungs dabei "cheaten", anders kann ich mir das nicht erklären, das Sponge immer noch bei 1.12 hängt und Spigot bereits auf 1.16.3 steht..
Früher war das ja kein Ding, da wurde eben die Versionsnummer angepasst, obwohl man immer noch die Vorgängerversion laufen hatte..
Es steckt einfach viel zu viel Arbeit da drin um alles bei jedem Versionswechsel neu umzuschreiben..

Vorbereitungen für den Server

Abhängig von der verwendeten Linux-Version muss "java" installiert werden. Hier wird am Beispiel von Debian 10 der Installationsweg gezeigt!
Früher war es mal die 6. Version(von Java) nötig, zum Zeitpunkt dieses Geschreibsels soll es wohl die 11er sein auch wenn die Installationsanleitungen im Netz immer noch die 8.er Version angeben.

Minecraft "Spigot" Server

Spigot scheint recht schnell auf bei Updates von Minecraft mit den Versionsnummern aufzuholen. Ob das nur *FAKE* ist kann ich noch nicht bestätigen..
Aus Lizenzgründen wurde es verboten die ausführbaren(gemoddeten) jar Dateien zum Download anzubieten. Somit verschwanden Vorgängerprojekte wie Bukkit/Craftbukkit quasi in der Bedeutungslosigkeit.
Dies wurde umgangen indem man eine ORIGINALE Version besitzen musste, die dann über Patchdateien umgeschrieben wurde. Somit konnte niemand ohne das Original diese modifizierten Versionen nutzen.

Das hat sich nun geändert, was man nachlesen kann: buildtools, da die ursprünglich verlinkten Quellen seit 6 Jahren.. veraltet sind :D
Bei Spigot baut man sich (den Minecraft SERVER) selber. Keine Angst, das geht inzwischen fast vollautomatisch.

Einen neuen User für den Minecraft-Server anlegen

useradd -m minecraft -s /bin/bash

(lässt man -s /bin/bash weg.. kann je nach Distribution die Bash echt SCHEISSE aussehen!! Die letzten Befehle kann man nicht aufrufen und der Prompt ist ne Zumutung!!)

Und noch ein Passwort für diesen USER anlegen:

passwd minecraft

Zum User minecraft wechseln(falls man noch als root unterwegs sein sollte und sich noch nicht als User minecraft angemeldet hatte):

su - minecraft

(das - ist dafür gedacht, das man WIRKLICH wie der User minecraft unterwegs ist und alle Rechte von minecraft nutzt)

Java und die BuildTools installieren

Zuerst die Pakete aktualisieren:

apt-get update && apt-get upgrade

Dann die headerless(quasi nur das Java OHNE den ganzen Fensterquatsch(wir sind via SSH Terminal mit einem Server verbunden!!)) Pakete von java installieren:

apt-get install openjdk-11-jre-headless

(Falls es eine neuere Version gibt/benötigt wird.. den vorherigen Befehl eingeben, dabei alles von 11- weglassen und mehrfach TAB drücken. Dann sollten alle vorrätigen Versionen angezeigt werden)

Git installieren:

apt-get install git

Git konfigurieren:

git config --global --unset core.autocrlf


Und die aktuellen BuildTools von jenkins herunterladen.
Für die BuildTools ein eigenes Verzeichnis einrichten, z.B. /home/minecraft/buildtools und die BuildTools dort hin verschieben.

mkdir ~/BuildTools mv BuildTools.jar ~/BuildTools/BuildTools.jar cd ~/BuildTools

Somit spart man sich ein "zugemülltes" /home Verzeichnis.

Einen aktuellen Spigotserver "bauen"

In das Verzeichnis ~/BuildTools/ wechseln.
Der folgenden Defaultbefehl setzt automatisch die aktuellste Spigotversion zusammen:

java -jar BuildTools.jar

Nach einigen Minuten wird der fertige Spigot-Server als Spigot-x.x.x.jar im BuildTools Verzeichnis erstellt(x.x.x steht für irgendeine Versionsnummer.)
Achtung! Es *kann* vorkommen, das die neue Version gar keinen abweichenden Dateinamen bekommt(selbe Versionsnummer). Trotzdem ist die "innere" Buildnummer anders.
Ingame kann man jederzeit durch Eingabe von /Version prüfen ob es eine neuere gibt oder ob man bereits die momentan aktuelle Version verwendet.
Durch obigen Befehl kann man jederzeit wieder eine neue Version bauen(lassen).

Der erste Spigot Start

Zuvor noch beachten:
Ist der Serverport(Default:25565 TCP+UDP) noch frei(nicht von einem anderen Server belegt)?
Ist der Serverport(Default:25565 TCP+UDP) in der Firewall "freigeschaltet"?
Firewall prüfen(hier im Beispiel ufw):

ufw status

Nutzt man den Defaultbefehl wird im Verzeichnis ~/BuildTools die Datei spigot-versionsnummer.jar erzeugt.
Es sollte die aktuelle "empfohlene" Version sein. Diese verschieben(nicht umbenennen!) in ein eigenes Unterverzeichnis wie z.B. ~/spigot/spigotWieAuchImmerDasGenanntWird.jar und dort einmal starten:

java -Xms512M -Xmx2048M -jar spigot.jar nogui

Statt des spigot.jar muss man natürlich den AKTUELLEN Namen eingeben(also mit Versionsnummer, etc.)

Und auch hier muss man die eula.txt abändern, so das dort EULA=true steht.
Dann den obigen Befehl erneut ausführen, die Welt wird generiert(normale Welt/Nether/End?).
Achtung: Wird die Konsole geschlossen.. wird auch der Server nicht weiterlaufen!!
Dies umgeht man mit dem folgenden kleinen Script:

#!/bin/bash #either AVOID using commands like clear OR try to use export TERM=xterm. Otherwise ENVIRONMENT error calling this script using crontab(expecting NO screen, but TTY..) export TERM=xterm # STOP using clear to clear out the console comtempt! better just use some echo to make spare room.. echo PROCESS_NAME="mcspigot" #Name of the later launched SCREEN session cd "$( dirname "$0" )" echo "+----------------------------------------------+" echo "| Easy to use startup-script for spigot server |" echo "| Version 0.00 - 18.10.2020 |" echo "| (c) 2020 DHLF - Licenced under GPL 3.0 |" echo "+----------------------------------------------+" echo PROC_ID=`pgrep -f "SCREEN -AmdS $PROCESS_NAME"` if [ "$PROC_ID" = "" ]; then screen -AmdS $PROCESS_NAME java -Xms2048M -Xmx4096M -jar /home/minecraft/mcspigot/spigot.jar nogui #check for correct path/server file name FIRST!! PROC_ID=`pgrep -f "SCREEN -AmdS $PROCESS_NAME"` if [ "$PROC_ID" = "" ]; then echo "SCREEN session $PROCESS_NAME has NOT been launched!" else echo "SCREEN session $PROCESS_NAME($PROC_ID) successful launched." fi else echo "Process $PROCESS_NAME is ALREADY running!" fi echo

Sollte screen noch auf dem System fehlen, kann es leicht nachinstalliert werden:

apt-get install screen

Eine etwas ausführlicheres Startscript kann man unter diesem LINK herunterladen.

Diverse Optimierungen SERVER

Einige der folgenden Erweiterungen/Plugins/Whatever funktionieren NICHT sofort und sind nur als INFO hinterlegt:
  1. WorldEdit DER in-Game Karten-Editor ;)
  2. WorldGuard DAS Plugin für sichere Zonen..
  3. CraftBook DAS Plugin für Schaltungen wie Relais, Sensoren, ausfahrbare Brücken..
  4. MCMMo Ist ein sehr beliebtes Plugin das Rollenspielelemente hereinbrachte.
  5. DynMap Erstellt eine per Browser anzeigbare Karte des bereits entdeckten Gebietes eines Minecraftservers(das dauert!!!)

Diverse Optimierungen CLIENT

  1. Optifine viele Feineinstellungen, was die grafische Darstellung betrifft(Shader!) wie z.B. Texturepacks, MultiMobs, etc.
  2. Xaeros-Minimap
  3. Emfires 64x64 realistic Texture Pack. Quasi Misas TexturePack auf die aktuellere 1.16.2 erweitert. Nur Blöcke, keine MOBs!
  4. Shaders(benötigen Optifine!) ändern.. durch Beleuchtung und Reflektionen.. das ganze Spiel! ">Sonic Ether’s Unbelievable Shaders SEUS Renewed 1.0.1(von Feb2020) läuft zwar mit 1.16.3, aber.. nein. Alles grau/weiss.. Wenn ein Update kommt nochmal versuchen!
https://www.curseforge.com/minecraft/mc-mods/zeros-selection-mod

Probleme mit Mods/Plugins

Einige Plugins benötigen zusätzliche "loader". Quasi sind die abhängig von Dingen wie "FORGE", "ModLoader", etc.
Die jeweiligen *.jar Dateien werden einfach in das /welchernameauchimmer/plugins Verzeichnis geschmissen. Beim nächsten Start von Spigot SOLLTE aus den in den *.JAR Dateien enthaltenen Informationen ein weiteres Unterverzeichnis erstellt werden, in dem Konfigurationsdateien geändert werden können.
Am Beispiel von SetHome einer einfachen Teleportationshilfe(/sethome und /home):
Die *.jar Datei von dem Link herunterladen(und hoffen, das die Versionen zueinander passen!) und in den /spigot/plugins Ordner werfen. Dann den Server(spigot) via /stop sauber beenden und neustarten.
NORMALERWEISE war es das schon.
In ~/mcspigot/plugins findet sich VOR dem Serverneustart nur die Datei SetHome-5.1.2.jar (Versionsnummer zum Zeitpunkt des Geschreibsels!)
Nach erfolreicher "Anmeldung" durch einen Serverneustart werden das zugehörige Verzeichnis und etwaige Konfigurationsdateien angelegt.
Unter ~/mcspigot/plugins/SetHome findet sich hier die config.yml(Konfigurationsdatei) und homes.yml(die Koordinaten der jeweiligen Spieler).

Man könnte auch ingame(als OP) durch Eingabe von /reload ein erneutes Einlesen erzwingen, aber nicht alle Plugins kommen damit klar.

Dazu kommt ein komisches Verhalten von Spigot:
Es KANN passieren, das neue Plugins einfach nicht aktiviert werden(Erfolgreiche Aktivierung erkennbar an neuen Unterordnern unter /spigot/plugins/ benannt nach jeweiligem Plugin).
Neustarts nutzen nichts, auch nicht das Löschen aller Plugins oder deren Neuinstallation.
Allerdings hatte ich zuvor an den Configs rumgespielt, war disable SNOOP in der spigot.yml die Ursache? K.A. ..

Texturepacks

Wer mit dem Gedanken spielt einige Grafiken des Spieles zu verändern(Nude-Mod? In pixelig? LOL!) mag auf die Idee kommen, die minecraft.jar zu öffnen und Bilder auszutauschen.
Hab ich schon versucht: Klappt nicht. Frecherweise wird die geänderte Datei komplett ignoriert.
Öffnet man mit mc(midnightcommander!!) LOKAL(nicht auf dem SERVER!) ~/.minecraft/mcspigot/versions/1.16.3/1.16.3.jar..
und navigiert dann weiter zu /assets/minecraft/textures/ kann man dort die einzelnen Unterordner ansteuern.
Ich habe mich für den Ordner item entschieden, wo alle Gegenstände abgelegt sind, die im Inventar auftauchen.
Öffnet man z.B. apple.png sieht man, das es als pixeliges 16x16 icon gespeichert wurde.
Ersetzt man das durch den Apfel aus dem Misa Pack(64x64) ~/.minecraft/texturepacks/misa.zip/#assets/minecraft/textures/items/apple.png fallen die abweichenden Namen des Pfades auf.
Das # weist nur daraufhin, das die misa.zip "entpackt" wurde und deren Unterverzeichnisse eben so wie nach dem "#" benannt sind.
Der alte Name war wohl noch items, nun heisst der eben nur "item".

Nur leider funktioniert das eben NICHT wie oben beschrieben.

Stattdessen besucht man wikihow.com was aber nur der Windowswelt hilft.
Viele der dort beschriebenen Sachen funktionieren so nicht mehr(oder nicht in der Linux-Welt).
Weder existiert ein "grüner Pfeil" noch habe ich herausbekommen können WIE man denn vom Launcher in das Verzeichnis einer Minecraftversion wechseln kann. Der Punkt fehlt einfach!
Also..
Zuerst ein Verzeichnis erstellen mit dem dämlichen Namen ~/.minecraft/MeinTexturepack. Ja, dieses Verzeichnis kommt(noch) NICHT in den ~/.minecraft/ressourcepacks Ordner!
Dann sucht man sich in ~/.minecraft/version den passenden Ordner aus(aktuelle Versionsnummer 1.16.3 zum Zeitpunkt des Geschreibsels):
Mit dem folgenden Befehl extrahiert man alles aus der *.jar Datei in das MeinTexturepack Unterverzeichnit 1.16.3:

unzip ~/.minecraft/versions/1.16.3/1.16.3.jar -d ~/.minecraft/MeinTexturepack/1.16.3

Nicht mit dem mc(midnightcommander) entpacken(das dauert Minuten!!). Unzip erledigt das in wenigen Sekunden!

Alles aus dem gerade befüllten Ordner löschen BIS auf den Ordner assets, genau den brauchen wir für das RessourcePack.
Dann müsste man noch eine Datei erstellen ausserhalb des assets Ordners namens pack.mcmeta:

{ "pack": { "pack_format": 6, "description": "Ich bin nur ein Platzhalter.." } }

Dann kann man(nach den Änderungen) diese Dateien wieder Packen und in den resourcepack Ordner kopieren. Dann noch das neue Resourcepack ingame anwählen, fertig.

Leider hat Misa ihr Interesse an Minecraft verloren(letztes Update ihres wunderbaren RessourcePacks.. 2015) und GEIER-Seiten machen IRREFÜHRENDE Werbung mit Überschriften wie:
Misa’s Realistic Resource Pack 1.16.4/1.15.2/1.14.4/1.13.2/1.12.2(resourcepack.info besucht 20201019 08:00 CEST) wobei die auf die alte 1.6.x verlinken!!

Da habe ich Emfires 64x64 Pack entdeckt.. und lasse Misas Resurrection erst mal sein.

Diese Seite wurde zuletzt am 20.10.2020 um 21:15 geändert.

(c) 2024 DHLF ☮🇺🇦