HOME

Wiki: Linux Spiele Server: Paper-Server(Minecraft)

Paper ist eine Abspaltung von Spigot, welches wiederum als Nachfolger von CraftBukkit angetreten ist.
Paper ist noch recht neu in der gemoddeten Minecraft-Server Welt. Das Team ist recht klein aber die Jungs sind sehr engagiert, was ihr Projekt angeht.
Somit schaffe sie es in nur wenigen Tage nachdem Spigot auf eine neue Minecraft-Version upgegradet wurde nachzuziehen.

Der einzige Grund für mich eine weitere(recht unbekannte) Minecraft-Server-Version auszuprobieren war ein Hinweis in dem großartigen Mod "WorldEdit".
Zitat: WorldEdit works better if you use Paper as your server software.
Wenn das von dem Entwickler des wichtigsten Mods kommt.. dann muss ich diesem Hinweis ja mal folgen ;)

Einen neuen User für den Minecraft-Server anlegen

Zu aller erst sollte man einen weiteren USER anlegen, damit im schlimmsten Fall nur dieses Konto kompromittiert wird:

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 dann nicht aufrufen und der Prompt ist eine Zumutung!!)

Und noch ein Passwort für diesen USER anlegen(nicht vergessen!):

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 installieren

Abhängig von der verwendeten Linux-Version muss "java" installiert werden. Hier wird am Beispiel von Debian 10 der Installationsweg gezeigt!
Falls vorhanden kann die installierte Version angezeigt werden:

java --version

Vorgeschlagen(von Paper) ist mindestens die Java Version 8, aber man *könne* auch neuere Versionen probieren.

Zuerst aber 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 eine andere Version gewünscht wird.. den obigen Befehl eingeben, dabei alles von 11- weglassen und mehrfach TAB drücken. Dann sollten alle vorrätigen Versionen angezeigt werden)

Den Ordner ~/paper anlegen(/home/minecraft/paper) und dorthin wechseln:

mkdir ~/paper

cd ~/paper


Anders als bei Spigot braucht man "git" hier nicht. Die fertigen JAR Dateien finden sich unter papermc.io/downloads

wget --content-disposition https://papermc.io/api/v1/paper/1.16.3/244/download

Lässt man --content-disposition beim vorherigen Befehl weg.. lautet die heruntergeladene Datei schlicht "download" statt paper-244.jar.
Wieder anders als bei Spigot wo der Dateiname IMMER die entsprechende Minecraftversion angibt, auch wenn es verschiedene Builds gibt.
Bei Paper erkennt man die Änderung, weiss aber erst mal nicht, WELCHE Minecraftversion unterstützt wird.

Der erste Paper-Server Start

Die paper-244.jar starten(244 steht für die jeweilige Buildnummer):

java -Xms2G -Xmx4G -jar paper-244.jar

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

Falls es der erste Start war.. wird die aktuelle Minecraft(Vanilla)-Server Datei heruntergeladen, dann gepatcht.
Es geht recht schnell bis zu dem Punkt, das die server.properties Datei fehlt(die wird dann automatisch neu erzeugt)

Und auch hier muss man die eula.txt abändern, so das dort EULA=true steht.

Findet Paper den Default-Port(25565) bereits belegt vor bricht er JEDEN Startvorgang ab. Darum jetzt in den gerade angelegten Konfigurationsdateien die Portnummern ändern.

Auch 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


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="paper" #Name of the later launched SCREEN session cd ~/paper/ echo "+----------------------------------------------+" echo "| Easy to use startup-script for paper server |" echo "| Version 0.00 - 20.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 ~/paper/paper-244.jar #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 für PAPER-Server

  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. DynMap Erstellt eine per Browser anzeigbare Karte des bereits entdeckten Gebietes eines Minecraftservers(das dauert!!!)
https://www.curseforge.com/minecraft/mc-mods/zeros-selection-mod

Probleme mit Mods/Plugins

Ein häufiger Fehler des Anwenders.. ist die Verwirrung um Mods/Plugins. Spigot unterteilt es in MODs(für Clients) und PLUUGINs(für den Server).

Plugins wie Mods benötigen zusätzliche "loader". Und hier gibt es weitere Unterscheidungen:
Serverseitig legt man sich durch die Verwendung des modifizierten Servers fest: Vanilla/Spigot/Paper/Sponge/whatever.
Somit begrenzt man auch die Auswahl der Plugins; Sponge trat an mit dem schönen Wunschtraum ALLE Plugins einbinden zu können. Die Entwickler haben das aufgegeben(viel zu viel Aufwand!).
Da Paper auf Spigot aufsetzt können auch alle für Spigot funktionierenden Plugins weiter verwendet werden.
Die jeweiligen *.jar Dateien werden einfach in das /welchernameauchimmer/plugins Verzeichnis geschmissen. Beim nächsten Start des Servers 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).
############ muss noch überarbeitet werden: Trennung in SERVER und Client ist nicht ausreichend!

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. ..
########## Da hier Paper beschrieben wird.. sollte der Spigot Kram RAUS hier..
Clientseitig.. ist die Sache mit FORGE recht unausgegoren.
Einerseits ist FORGE unglaublich mächtig(GUI-Einbindung!). Aber genau das ist das Problem mit FORGE.. So toll es auch ist.. bei einem Update des Clients dauert es sehr lange, bis alles wieder wie gewohnt funktioniert.

Die Alternativen zu FORGE sind wesentlich schneller auf dem aktuellen Stand(eine Woche, statt.. mehrere Wochen/Monate).
Bis jetzt ist ein gangbarer Weg auf Forge komplett zu verzichten. Schade für einige nicht portierte Mods, aber was will man machen?
Zunächst braucht man den Minecraft-Launcher(mit funktionsfähigem=legalen Account). Dann wählt man im Launcher, welche Version von Minecraft man denn haben möchte.
Netterweise unterstützt der Launcher beliebige Versionen(auch die *alten*) nebeneinander.
Passend zum gewünschten Modloader wählt man die Minecraftversion(z.B. 1.16.3)
Dann holt man sich den FabricLoader(für Spigot/Paper):

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 12:13 geändert.

(c) 2024 DHLF ☮🇺🇦