Spigot Minecraft Server te installeren op Ubuntu 20.04

Spigot is een aangepaste Minecraft server software gebaseerd op CraftBukkit. Het biedt extra prestatie-optimalisaties, configuratiemogelijkheden en mogelijkheden, terwijl de compatibiliteit met alle bestaande plugins en mods behouden blijft.

In deze handleiding leer je hoe je Spigot Server bouwt en installeert op een Ubuntu 20.04 gebaseerde server en plugins installeert.

Vereisten

  • Een server met Ubuntu 20.04 met minimaal 4GB RAM en 2 CPU Cores.

  • Een niet-root gebruiker met sudo privileges.

  • Alles is bijgewerkt.

    $ sudo apt update && sudo apt upgrade
    
  • Installeer de vereiste pakketten.

    $ sudo apt install wget apt-transport-https gnupg nano screen
    

Stap 1 – Firewall instellen

De eerste stap is het instellen van de firewall. Ubuntu wordt standaard geleverd met ufw (Uncomplicated Firewall).

Controleer of de firewall draait.

$ sudo ufw status

Je zou de volgende uitvoer moeten krijgen.

Status: inactive

Sta de SSH poort toe om te voorkomen dat de firewall de huidige verbinding verbreekt bij het inschakelen ervan.

$ sudo ufw allow OpenSSH

Sta poort 25565 toe voor de Spigot server om verbindingen te accepteren.

$ sudo ufw allow 25565

Schakel de firewall in

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Controleer nogmaals de status van de firewall.

$ sudo ufw status

Je zou een gelijkaardige uitvoer moeten zien.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
25565                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
25565 (v6)                 ALLOW       Anywhere (v6)

Stap 2 – Installeer Java en Git

Het Spigot installatieprogramma heeft Java en Git nodig om te werken. Ubuntu 20.04 wordt geleverd met OpenJDK 17 als de nieuwste beschikbare versie van Java. Voer het volgende commando uit om het te installeren.

$ sudo apt install openjdk-17-jre-headless

Bevestig de release.

$ java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 17.0.1+12-Ubuntu-120.04, mixed mode, sharing)

Installeer Git.

$ sudo apt install git

Stap 3 – Maak een Minecraft gebruiker aan

De volgende stap is het aanmaken van een speciale gebruiker voor het draaien van de server.

$ sudo adduser minecraft

Schakel over naar de nieuw aangemaakte gebruiker.

$ sudo su - minecraft

Stap 4 – Download en installeer Spigot

We zullen Spigot bouwen met de BuildTools.jar toepassing. De eerste stap is om naar de home directory te gaan.

minecraft:$ cd ~

Maak een nieuwe directory voor BuildTools en schakel daarheen.

minecraft:$ mkdir buildtools && cd buildtools

Pak het BuildTools.jar bestand.

minecraft:$ wget -O BuildTools.jar  https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

Bouw de laatste stabiele versie van Spigot.

minecraft:$ java -jar BuildTools.jar --rev latest

Afhankelijk van de beschikbare server bronnen kan dit proces enige tijd in beslag nemen.

Controleer de naam van het gemaakte Spigot jar bestand.

minecraft:$ ls 
apache-maven-3.6.0  BuildData  BuildTools.jar  BuildTools.log.txt  Bukkit  CraftBukkit  Spigot  spigot-1.18.1.jar  work

In ons geval is de naam.

Maak een andere directory voor je Spigot Server en schakel daarheen.

minecraft:$ cd ~ && mkdir server && cd server

Verplaats je Spigot jar bestand naar de nieuw gemaakte server directory.

minecraft:$ mv ~/buildtools/spigot-1.18.1.jar ~/server/spigot.jar

Stap 5 – Start de Spigot server

Om de Spigot server te starten moeten we een startup script maken waarmee we verschillende Java parameters kunnen doorgeven om de server te optimaliseren.

Maak en open het opstartscript voor Spigot.

minecraft:$ sudo nano spigotstart.sh

Plak de volgende code in het bestand.

#!/bin/sh

java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar spigot.jar nogui

De parameter -Xms3G -Xmx3G configureerde de Java heapspace voor 4GB RAM. We hebben in ons geval 1GB vrij gelaten voor het OS en alle andere dingen waarvoor het de ram nodig heeft. Verander dit in de hoeveelheid RAM die je aan de Spigot server wilt toekennen. Als je server 16 GB RAM heeft, moet je de parameter zo instellen dat hij 14 of 15 GB RAM in beslag neemt.

Als je klaar bent sla je het bestand op door op Ctrl + X te drukken en Y in te voeren als daarom gevraagd wordt.

Maak het opstartscript uitvoerbaar.

minecraft:$ chmod +x spigotstart.sh

Start je Spigot server voor de eerste keer.

minecraft:$ ./spigotstart.sh

De server zal niet starten en in plaats daarvan eindigen, met de volgende boodschap.

[14:14:21] [ServerMain/INFO]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.

Open eula.txt om te bewerken.

minecraft:$ nano eula.txt

Stel de waarde van de variabele eula in op true.

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
#Sun Dec 26 13:29:15 UTC 2021
eula=true

Als je klaar bent, sla je het bestand op door op Ctrl + X te drukken en Y in te voeren als daarom gevraagd wordt.

Voor we de server starten, configureren we hem om hem als een dienst in de achtergrond te laten draaien.

Stap 6 – Configureer Spigot als een dienst

De server moet de hele tijd de shell draaien om te kunnen werken, wat niet ideaal is. We moeten een service maken zodat de server automatisch kan starten bij het opstarten en in de achtergrond kan draaien.

Verlaat de gebruiker minecraft.

minecraft:$ exit

Maak een Spigot Service bestand en open het om te bewerken.

$ sudo nano /etc/systemd/system/spigot.service

Plak er de volgende code in.

[Unit]
Description=SpigotMC
After=network.target

[Service]
Type=forking
User=minecraft
Group=minecraft
ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh
ExecStop=/usr/bin/screen -S minecraft -p 0 -X stuff "stop$(printf \\r)"
WorkingDirectory=/home/minecraft/server

[Install]
WantedBy=multi-user.target

Sla het bestand op als je klaar bent door op Ctrl + X te drukken en Y in te voeren als daarom gevraagd wordt.

Herlaad de service daemon.

$ sudo systemctl daemon-reload

Schakel de dienst in.

$ sudo systemctl enable spigot

Start de Spigot dienst.

$ sudo systemctl start spigot

Controleer de status van de service.

$ sudo systemctl status spigot
? spigot.service - SpigotMC
     Loaded: loaded (/etc/systemd/system/spigot.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-12-27 09:15:25 UTC; 6s ago
    Process: 32011 ExecStart=/usr/bin/screen -d -m -S minecraft /home/minecraft/server/spigotstart.sh (code=exited, sta>
   Main PID: 32012 (screen)
      Tasks: 25 (limit: 4691)
     Memory: 3.2G
     CGroup: /system.slice/spigot.service
             ??32012 /usr/bin/SCREEN -d -m -S minecraft /home/minecraft/server/spigotstart.sh
             ??32013 /bin/sh /home/minecraft/server/spigotstart.sh
             ??32014 java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockEx>

Dec 27 09:15:25 spigot systemd[1]: Starting SpigotMC...
Dec 27 09:15:25 spigot systemd[1]: Started SpigotMC.

Stap 7 – Verbind met Minecraft

Nu onze server draait, is het tijd om verbinding te maken met Minecraft. Start je Minecraft spel.

Minecraft spel

Klik op de Multiplayer knop en negeer de waarschuwing voor de toekomst door het vakje aan te vinken,Laat dit scherm niet meer zien.

Waarschuwing voor Minecraft Multiplayer

Klik op de volgende pagina op Add Server knop.

Minecraft Server toevoegen

Voer het publieke IP adres en de naam van je server in. Klik op Done als je klaar bent.

Je server verschijnt nu in de lijst.

Minecraft Server Lijst

Klik op je servernaam en druk op de Join Server knop om de server te starten. Je spel zal spoedig beginnen.

Minecraft Server Spel

Je kunt je vrienden vragen zich bij je server aan te sluiten en met hen te spelen.

Stap 8 – Aanpassen van servereigenschappen

Je kunt je server aanpassen door het /home/minecraft/server/server.properties bestand te bewerken. We nemen hieronder enkele van de eigenschappen door.

  • Schakel opdrachtblokken in: Beschikbare waarden zijn true en false.

    enable-command-block=false
    
  • Gamemode: Beschikbare waarden zijn overleven, creatief, avontuur, en toeschouwer. Ze kunnen ook gedefinieerd worden door gehele getallen, beginnend met 0 voor overleven, 1 voor creatief, 2 voor avontuur, en 3 voor toeschouwer.

    gamemode=survival
    
  • Moeilijkheidsgraad: Beschikbare waarden zijn vredig, gemakkelijk, normaal en moeilijk. Ze kunnen ook gedefinieerd worden door gehele getallen die beginnen met 0 voor vreedzaam, 1 voor gemakkelijk, 2 voor normaal en 3 voor hard.

    difficulty=easy
    
  • MOTD: Staat voor Message Of The Day. Het is het bericht dat op de Serverlijst pagina getoond wordt. Accepteert een string waarde. Ondersteunt kleur, speciale tekens en opmaakcodes. Het mag niet langer zijn dan 59 tekens.

    motd=A Minecraft Server
    
  • PVP: Schakelt de Speler tegen Speler modus in. Beschikbare waarden zijn true en false.

    pvp=true
    
  • Server Poort: Bepaalt de poort waarop de Minecraft server luistert. De standaardwaarde is 25565.

    server-port=25565
    

    Als je de poortwaarde in iets anders verandert, moet je die in de firewall inschakelen; anders kunnen spelers geen verbinding maken.

  • Zie de Minecraft wiki voor meer eigenschappen.

Je moet je Spigot server herstarten nadat je veranderingen aan deze eigenschappen hebt aangebracht om ze te laten inwerken.

$ sudo systemctl restart spigot

Stap 9 – Plugins installeren

Je kunt plugins downloaden van de Spigot Resources of Bukkit Plugin pagina’s.

Als je de plugin van Spigot downloadt, zal de volgende methode niet werken omdat die geblokkeerd is. Je zult het Jar bestand handmatig moeten downloaden en naar de server verplaatsen. Maar als je van Bukkit downloadt, gebruik dan de volgende methode om direct naar je server te downloaden.

Download het .jar bestand van de plugin van de bovenstaande pagina’s naar de map /home/minecraft/server/plugins.

$ sudo wget -P /home/minecraft/server/plugins/ --content-disposition <plugin url>

De vlag --content-disposition zorgt ervoor dat het bestand met de juiste bestandsnaam wordt gedownload door gebruik te maken van de Content-Disposition headers.

Als je bijvoorbeeld de WorldEdit plugin downloadt, doe je dat zo.

$ sudo wget -P /home/minecraft/server/plugins --content-disposition https://dev.bukkit.org/projects/world
edit/files/latest

Om de plugin opnieuw te laden, herstart je je Spigot server.

$ sudo systemctl restart spigot

Stap 10 – Spigot bijwerken

Om Spigot bij te werken moet je stap 4 van deze gids herhalen om de nieuwste versie van BuildTools.jar bestand te pakken en dan een vers spigot.jar bestand te maken. Zorg ervoor dat je een backup maakt van de oude jar bestanden en stop de server voordat je dat doet.

Conclusie

Dit is het einde van onze handleiding over het installeren en instellen van de Spigot Minecraft server op een Ubuntu 20.04 gebaseerd systeem. Als je nog vragen hebt, stel ze dan in de opmerkingen hieronder.