HOME
Spigot-Server
Paper-Server

Wiki: Linux Spiele Server: minecraft

Man kann natürlich auch lokal ein Minecraft Spiel starten und dann andere daran teilhaben lassen. Sofern man Zugriff auf einen dedizierten Root-Server hat.. sollte man den nutzen ;)
Für den Spielspass müsste die Minecraftwelt rund um die Uhr erreichbar sein, Probleme mit Stromschwankungen auf dem Land könnte man zwar durch eine günstige USV umgehen, aber schlimmer wiegt sicher bei den meisten die mangelnde Upload-Rate.
Ein *normaler* DLS-Anschluß kommt bei mehr als fünf Spielern schon an die Grenzen.. daher der Wink mit einem Server in einem beliebigen Rechenzentrum.
Die Angebote von diversen Providern(keine Namensbeispiele, sonst wirft man mir Schleichwerbung vor!!) unterscheiden sich nicht groß, die *reinen* gemieteten Minecraft Server sind meist nur für wenige Spieler geeignet.
Aus Kostgengründen wird z.B. EIN SERVER an mehrere Leute vermietet.. und so bekommen die nur einen (Bruch-)Teil der Leistungen des Servers.. quasi teilt sich der Server in virtuelle Serverchen auf..
Dafür kostet die Sache um die 10 EUR/Monat.
Ein *richtiger* Root-Server macht ungemein viel mehr Arbeit und ist i.d.R. mindestens viermal so teuer.. ob sich das lohnt?

Kommt auf den Zweck an.. wenn sowieso da ein Server rumsteht, der sich langweilt.. dann kann man auch neben Minecraft noch 7Dtd, ARK survival evolved und andere Spiele GLEICHZEITIG laufen lassen!
Einen eigenen Teamspeak(oder besser das offene Jabber) Server und Mail-Server(mit beliebigen Unter-e-Mail Adressen ^^) passt da auch noch rein.
Upps.. ich schweife schon wieder ab..sorry.

Vorbereitungen für den Server

Abhängig von der verwendeten Linux-Version muss noch "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.

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)
Einen neuen Benutzer namens minecraft 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!!)
als User minecraft weitermachen..:

su - minecraft

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

Minecraft SERVER

SERVER erstellen und verwalten für die CLIENTS(im Multiplayer-Teil) die Spielwelt.
Man kann NICHT mit eine SERVER Minecraft spielen, dafür muss man sich den CLIENT besorgen und der verbindet sich dann mit dem Server!!

Minecraft VANILLA Server

Der sogenannte Minecraft VANILLA Server kommt direkt von Microsoft und ist immer auf dem aktuellen Stand(Versionsnummer).
Für den SERVER brauchts die server.jar(im Namen ist normalerweise die Versionsnummer enthalten).
Auf www.minecraft.net den Link kopieren und mit wget herunterladen.
Für den ersten Start eingeben:

java -Xmx1024M -Xms1024M -jar server.jar nogui

(das server.jar muss natürlich zum Namen der heruntergeladenen Datei passen. Meist wird es aber auf server.jar gekürzt)

IRGENDETWAS passiert.. und dann gibt es eine Fehlermeldung. Ja, man muss nun in der gerade erstellten eula.txt das EULA=false durch EULA=true ersetzen.
Kein Scherz. Damit(so glauben die Rechtsverdreher) hat man AKTIV der EULA zugestimmt.
Danach den Befehl nochmals eingeben und die Welt sollte erstellt werden.

Hierbei noch beachten:
Sind die vom Server genutzten Ports nicht schon anderweitig belegt(beliebiger anderer Server)?
Sind die vom Server genutzten Ports in der Firewall "freigeschaltet"?
Firewall prüfen!!

ufw status

Minecraft "Sponge" Server

Sponge hinkt mehrere Versionen hinter Updates von Minecraft her.
Ob das an fehlenden Programmierern liegt oder an der Gründlichkeit im Vergleich zu Spigot.. keine Ahnung.
Ein "Vorteil" ist für Newbies, das es eine Version mit vorinstalliertem FORGE gibt, was z.B. Texturepacks mächtig erweitern kann, (Optifine, etc..)
Eigentlich müsste "sponge" die besste Version aller Minecraft-Nachbauten sein. Ursache ist das -nach dem Debakel mit der DCMA-Klage- die Entwickler das Projekt von Grund auf neu angefangen haben.
Es "las" sich in den Ankündigungen wirklich als bessere Lösung, zumal der "Schwamm" ja das Wasser aufsaugt das aus Bukkit(dem Eimer) und Spigot(dem Wasserhahn) tröpfelt..
Nur mochte ich Spongebob noch nie, egal wie er sich auf für die "Männlichkeit" eingesetzt hat.. :D
Viele namhafte Entwickler sind an Sponge beteiligt und deren Bemühen ist(war) es, alte Zöpfe abzuschneiden um viele Verbesserungen erst möglich zu machen.

Der größte Nachteil ist aber, das sich -entgegen der Ankündigungen- ursprünglich gesetzte Ziele nicht so leicht erreichen ließen wie erhofft. Dazu verderben viele Köche den Brei und es gab des öfteren Reibereien zwischen den Entwickler.
Was dazu führt das "Sponge" trotz aktiver Community mehrere Versionen hinter den aktuellen Minecraft-Client Versionen hinterher kriecht..
Trotz des besseren Unterbaus, trotz verbesserter APIs..

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..
Man kann es recht einfach modifizieren, etwas das mit der Vanilla-Version schlecht bis gar nicht möglich ist. Oder man zahlt halt bare Münze in der Windows10 Edition dafür -.-
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.

Wie das nun genau funktioniert besser hier nachlesen: 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.

Vorbereitung:
java installieren

apt-get install openjdk-8-jre-headless

(warum die immer noch -8- installieren wollen statt der aktuelleren -11- Version?? Ich ignoriere das mal und bleibe bei der -11-)
git installieren

apt-get install git

Und die aktuellen Buildtools herunterladen.
Git konfigurieren..

git config --global --unset core.autocrlf

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.

Und die BuildTools starten..

java -jar BuildTools.jar

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

java -Xmx2048M -Xms2048M -jar spigot.jar nogui

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.

Minecraft CLIENTS

Für Clients gibt das "vanilla" Minecraft von(nun) Microsoft in der Windows10 Edition und in der Java Version.
Wie unschwer zu befürchten war.. die Windows10 Edition lockt mit tollen Shadern(sieht alles viel hübscher aus..) aber einer INKOMPATIBILITÄT mit der Java Version.
Was blöde ist, denn die Java war der "Stern", der auf ALLEN Plattformen funktionieren sollte..
Die Windows10 Edition protzt auch damit, das Leute mit ner Switch(kein Scheiss!) sich damit verbinden können.

TLTR:
Windows10 Edition scheint kompiliert zu sein(schneller und kleiner), dafür sind altbekannte Mods gar nicht mehr einzubinden. Dafür können PC-XBOX-PLAYSTATION und Switch zusammenspielen.
Java wird wohl(so vermute ich -.-) nach und nach unattraktiv gemacht, damit man ja unter Windows10 err.. Geld für irgendwelchen Kram ausgibt. Vielleicht für leuchtende Heiligenscheine??
Für Linux werden eigens *.deb Pakete zum Download angeboten!

Clients werden NICHT zum direkten Download angeboten. Stattdessen muss man sich (auch für Linux!) den Launcher herunterladen. Erst wenn man sich dort(im Launcher) mit gültigen Account eingeloggt hat.. werden die restlichen Dateien heruntergeladen.


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!

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 23.10.2020 um 11:54 geändert.

(c) 2024 DHLF ☮🇺🇦