Als een plugin of mod tijdens het draaien een programmafout tegenkomt, schrijft Java een foutmelding met stacktrace naar het log. De stacktrace is de lijst met „at”-regels onder de foutregel. Hij laat zien welk programmadeel er draaide en wijst zo meestal naar de verantwoordelijke plugin of mod. De meeste van deze fouten leggen de server niet plat, maar een functie valt uit en herhaalde fouten vullen de console.

Elk onderstaand onderdeel behandelt één melding: hoe die eruitziet, wat erachter zit en wat je kunt doen. De volledige melding vind je in de Console of onder Bestanden in logs/latest.log. Lees daar ook de regels direct ervoor en erna. Maak een back-up onder Back-ups voordat je configuratie- of wereldbestanden wijzigt of plugins vervangt. Plugin-bestanden vervang je het best terwijl de server gestopt is.

NullPointerException: plugin of mod grijpt naar een ontbrekende waarde

Zo ziet de melding eruit:

java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonObject.entrySet()" because "jsonobject" is null
java.lang.NullPointerException: Cannot invoke "java.lang.invoke.MethodHandle.invoke(Object, String)" because "this.DESERIALIZE_METHOD" is null
java.lang.NullPointerException: Cannot invoke "com.google.gson.JsonElement.getAsBoolean()" because the return value of "com.google.gson.JsonObject.get(String)" is null

Wat er achter zit: Een plugin of mod grijpt naar een ontbrekend object; Java noemt deze waarde „null". Achter „Cannot invoke" staat de methode, achter „because" de ontbrekende waarde. Ook bij het inlezen van een taalbestand of configuratie kan dit gebeuren. De betreffende actie wordt afgebroken; bij „Skipped language file" wordt het taalbestand overgeslagen. Tijdens het opstarten kan de fout ook het startproces onderbreken.

Zo los je het op:

  1. Open de volledige melding in de Console of in logs/latest.log. Lees ook wat ervoor staat: een genoemd taal- of configuratiebestand helpt bij het herkennen van de oorzaak.
  2. De „at"-regels heten stacktrace: de aanroepketen tot aan de fout. Lees vanaf de eerste regel tot aan de betrokken plugin of mod; de eerste regel kan Minecraft zelf noemen.
  3. Werk de gevonden plugin onder Plugins of de mod onder Mods bij, passend bij de serverversie. Stop de server voordat je bestanden vervangt en start daarna opnieuw op.
  4. Als er een configuratie wordt genoemd, maak er dan een back-up van en vergelijk de benodigde instellingen met de voorgaven van de auteur. Blijft de fout bestaan, meld de auteur dan de volledige melding en de actie die de fout veroorzaakt.

Goed om te weten: pl:mixin:APP:<Mod>.mixins.json noemt een mod met een mixin, een ingreep in spelprocessen.

„Could not pass event": plugin crasht bij een spelgebeurtenis

Zo ziet de melding eruit:

Could not pass event <Event> to <Plugin> v<Version>
java.lang.NoSuchMethodError: …
java.lang.IllegalArgumentException: The found tag instance (ByteTag) cannot store Integer

Wat er achter zit: Plugins reageren op gebeurtenissen (events) zoals joinen, klikken in de inventaris of schade. Als een plugin daarbij een exception gooit, dus een Java-fout, wordt de verwerking afgebroken. Na „to" staan plugin en versie, ervoor de gebeurtenis. „NoSuchMethodError" of „NoSuchFieldError" wijst op een niet passende serverversie. „IllegalArgumentException" kan bijvoorbeeld een ongeldige kleurwaarde of een niet passend gegevenstype betekenen. Dat moet de pluginauteur corrigeren. De server blijft draaien, maar de betreffende pluginfunctie valt bij deze gebeurtenis uit.

Zo los je het op:

  1. Lees in de Console de pluginnaam en versie na „to" en de foutregel eronder.
  2. Controleer onder Versie welke serverversie draait en zoek op de pluginpagina een uitgave die deze versie ondersteunt.
  3. Stop de server, plaats de passende uitgave onder Plugins en start opnieuw op.
  4. Blijft de fout bestaan, meld die dan aan de pluginauteur met de actie die de fout veroorzaakt en de volledige foutmelding.

Goed om te weten: Uitgebreide uitleg over „NoSuchMethodError" en „NoSuchFieldError": Plugin past niet bij de serverversie.

„Task … generated an exception": pluginTaak mislukt op de achtergrond

Zo ziet de melding eruit:

[<Plugin>] Task #<Number> for <Plugin> v<Version> generated an exception
java.lang.IllegalArgumentException: missing required data class java.lang.Float
java.lang.IllegalArgumentException: WATER isn't an item

Wat er achter zit: Plugins plannen taken (tasks), bijvoorbeeld voor deeltjes, hologrammen of het opslaan van gegevens. Ze kunnen eenmalig of regelmatig draaien. Een taak is afgebroken met een Java-fout, een exception. Herhaalt dit zich voortdurend, dan is de plugin vaak niet compatibel met de serverversie, bijvoorbeeld na een update. Ook ongeldige waarden in de plugin kunnen de fout veroorzaken. De server blijft draaien, maar een pluginfunctie valt uit en de console loopt bij herhalingen vol.

Zo los je het op:

  1. Lees de pluginnaam na „for" en de foutregel eronder.
  2. Controleer onder Plugins of er een passende nieuwere uitgave is voor jouw serverversie. Stop de server, plaats de uitgave en start opnieuw op.
  3. Is er geen passende uitgave, stop dan de server en verplaats het .jar-bestand onder Bestanden uit plugins/ naar een aparte map. Start daarna opnieuw op. Voortdurende fouten kunnen de server vertragen.
  4. Controleer in de Console of de melding wegblijft. Blijft de melding ook met de actuele uitgave, meld die dan aan de auteur.

Goed om te weten: „missing required data class" wijst op ontbrekende deeltjesgegevens; „WATER isn't an item" op een ongeldig voorwerp. „NoSuchMethodError" of „NoSuchFieldError" wijst op een versieonverenigbaarheid.

„Exception … executing task": plugintaak of commando wordt afgebroken

Zo ziet de melding eruit:

[Essentials] Command <Command> failed:
[<Plugin>] Plugin <Plugin> v<Version> generated an exception while executing task <Number>
[MythicMobs] [SCHEDULER] Exception thrown whilst executing task

Wat er achter zit: Een plugin is bij een commando of een geplande taak afgebroken met een exception, dus een Java-fout. De server blijft draaien, maar de betreffende pluginfunctie niet. De oorzaak staat eronder, bij geneste fouten achter „Caused by". „Cannot perform command async" betekent dat een plugin een commando ongeoorloofd uitvoert vanuit een achtergrondthread, een parallelle werkstroom. Dat moet de pluginauteur corrigeren.

Zo los je het op:

  1. Zoek onder de melding de „Caused by"-regel of de eerste regel met „Exception" of „Error".
  2. Bepaal de plugin aan de hand van de melding of de „at"-regels, de aanroepketen tot aan de fout. Daar kan <Plugin>.jar staan.
  3. Werk de plugin onder Plugins bij naar een uitgave voor jouw serverversie. Stop de server voordat je bestanden vervangt en start daarna opnieuw op.
  4. Herhaal het commando of let op de volgende uitvoering van de taak. Blijft de fout bestaan, meld die dan aan de auteur met de actie, het tijdstip en de volledige melding.

Goed om te weten: „NoSuchMethodError", „NoSuchFieldError" of „NoSuchFieldException" betekent dat een benodigde methode of een veld ontbreekt. Controleer de door de plugin ondersteunde serverversie en de afhankelijkheden; je hebt uitgaven nodig die bij elkaar passen.

ClassCastException: mod of plugin verwacht een ander gegevenstype

Zo ziet de melding eruit:

java.lang.ClassCastException: class <PackageA>.<ClassA> cannot be cast to class <PackageB>.<ClassB>
Cannot load key=<Entry>, type=<DataType> in config=<Configuration>

Wat erachter zit: Een mod of plugin verwacht een ander gegevenstype dan een betrokken component levert. Dat gebeurt bijvoorbeeld wanneer een mod is bijgewerkt en een afhankelijke mod niet. De fout kan ook optreden bij het inlezen van een mod-configuratie, zoals in het tweede voorbeeld met aansluitend een ClassCastException. Vaak valt alleen de betreffende functie uit, bijvoorbeeld het laden van buitgegevens of een configuratie-item.

Zo los je het op:

  1. Lees de volledige melding in logs/latest.log onder Bestanden. De pakketnamen voor de klassenamen helpen om de betrokken mods of plugins te herkennen; java.lang.String is daarentegen het Java-gegevenstype voor tekst.
  2. Controleer welke component het laatst is bijgewerkt. Breng de betrokken mods of plugins op onderling passende versies: update ze samen of zet ze terug naar de vorige stand.
  3. Gebruik je een Modpack, update dan het hele modpack in plaats van losse mods.
  4. Wordt een configuratie-item genoemd, controleer het dan aan de hand van de documentatie van de geïnstalleerde modversie.
  5. Start opnieuw op en herhaal de handeling.

Meer over modconflicten: Modfouten op Forge, NeoForge en Fabric.

ArrayIndexOutOfBoundsException: toegang tot een ontbrekend lijstitem

Zo ziet de melding eruit:

java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.ArrayIndexOutOfBoundsException: Index -3 out of bounds for length 16
Caught exception during event FMLCommonSetupEvent dispatch for modid <Mod>

Wat erachter zit: Een plugin of mod probeert een ongeldige positie in een array te benaderen, dus een lijst met een vaste lengte. Java telt vanaf 0: bij een lengte van 3 bestaan alleen de posities 0 tot en met 2; negatieve posities zijn ook ongeldig. Vaak ontbreken er commandoargumenten of configuratiewaarden, of een oudere plugin leest de serverversie verkeerd uit. De voorbeelden hebben bovendien betrekking op de verwerking van wereldgegevens door Geyser en op het opstarten van mods; afhankelijk van de plek valt een functie uit of mislukt het opstarten.

Zo los je het op:

  1. Lees de foutregels in de Console of onder Bestanden in logs/latest.log. De "at"-regels eronder tonen de aanroepketen, ook wel stacktrace genoemd; zoek daarin de betreffende plugin of mod.
  2. Trad de fout op bij een commando, controleer dan de vereiste argumenten ervan. Vergelijk na eigen configuratiewijzigingen de waarden met de sjabloon of een back-up.
  3. Werk de betreffende plugin onder Plugins of de mod onder Mods bij naar een uitgave die past bij de server en de loader. De loader laadt de mods. Start opnieuw op.
  4. Blijft de fout bestaan, meld dan de foutmelding samen met de aanroepketen en de aanleiding aan de auteur.

Configuratiebestand van een plugin is defect.

NumberFormatException: een tekst had een getal moeten zijn

Zo ziet de melding eruit:

java.lang.NumberFormatException: For input string: "%vault_eco_balance_fixed%"
java.lang.NumberFormatException: For input string: "craftbukkit"

Wat erachter zit: De game, een mod of een plugin wilde een tekstwaarde als getal lezen, en de tekst was geen getal. Tussen de aanhalingstekens staat wat er daadwerkelijk binnenkwam. De oorzaak kan een configuratie, een onverwachte gegevenswaarde of een versie- of programmafout zijn. Twee gevallen herken je aan de waarde: een placeholder met procentteken zoals hierboven is niet vervangen. Meestal ontbreekt dan de bijbehorende extensie voor PlaceholderAPI, de plugin die zulke placeholders invult, of de plugin die de waarde levert. Een woord als craftbukkit wijst erop dat een oudere plugin de serverversie verkeerd uitleest.

Zo los je het op:

  1. Controleer de volledige stacktrace en update het daarin genoemde onderdeel.
  2. Bij een placeholder: test in het spel met /papi parse me <Placeholder> of er een waarde terugkomt. Zo niet, installeer dan de passende PlaceholderAPI-extensie, bijvoorbeeld met /papi ecloud download <Naam>, en laad die met /papi reload.
  3. Noemt de melding een bestand of instelling, vergelijk dan de waarde met de standaardconfiguratie van de plugin.
  4. Start opnieuw op en voer de actie nog een keer uit.

ArrayIndexOutOfBoundsException zonder verdere details

Zo ziet de melding eruit:

[<Plugin>] Error occurred while loading item: 2
java.lang.ArrayIndexOutOfBoundsException

Wat erachter zit: Een plugin of mod heeft een ongeldige lijstindex gebruikt, zoals in de vorige sectie. Hier ontbreken alleen index en lengte. Dat gebeurt wanneer dezelfde fout heel vaak optreedt: Java laat de details dan om prestatieredenen weg. De regel ervoor verraadt vaak welke plugin wat wilde doen, in het voorbeeld een item laden. De eerste stacktrace-regel eronder, als die er is, noemt de veroorzaker.

Zo los je het op:

  1. Lees de regel direct vóór de melding. Daar staat vaak de plugin tussen vierkante haken.
  2. Lees de eerste stacktrace-regel onder de melding.
  3. Ontbreekt beide, zoek dan in logs/latest.log hoger op naar het eerste voorkomen. Daar staat de fout meestal nog volledig. Oudere logs staan ingepakt in de map logs/.
  4. Update de als eerste genoemde plugin of mod. Noemt de regel ervoor een bepaald item, controleer dat dan in de configuratie van de plugin.
  5. Blijft de fout, meld hem dan bij de auteur.

ExceptionInInitializerError: plugin- of modklasse kan niet worden geïnitialiseerd

Zo ziet de melding eruit:

Exception in thread "ForkJoinPool-3-worker-1" java.lang.ExceptionInInitializerError
Caused by: <Foorttype>: <Melding>

Wat erachter zit: Java initialiseert elke klasse, dus elke bouwsteen van een programma, één keer bij het eerste gebruik. Precies daarbij is een klasse van een plugin of mod gecrasht. Daarna blijft die klasse voor deze serversessie onbruikbaar, daarom volgen vaak meer fouten zoals „NoClassDefFoundError“ met dezelfde klassenaam. De eigenlijke oorzaak en meestal ook de betreffende plugin of mod staat in de „Caused by“-keten eronder. Afhankelijk van waar het gebeurt, valt een functie uit of laadt de plugin of mod helemaal niet.

Zo los je het op:

  1. Lees in de Console of in logs/latest.log de eerste „Caused by“-regel onder de melding.
  2. Achterhaal uit de „at“-regels eronder de plugin of mod, bijvoorbeeld aan de bestandsnaam met .jar.
  3. Update de plugin of mod, of vervang hem door een versie die past bij jouw serverversie en serversoftware.
  4. Start de server opnieuw op. De klasse wordt pas bij de volgende start opnieuw geïnitialiseerd.

Bij versievragen helpt dit: Plugin past niet bij de serverversie.

Interne fout in een plugin, bijvoorbeeld bij het opslaan

Zo ziet de melding eruit:

[MultiWorld] ERROR HAPPEND: <Melding>
Unable to save player profile for <Speler>
<Plugin> v<Versie> generated an exception whilst handling plugin message

Wat erachter zit: Een plugin is bij een eigen taak op een fout gestuit, bijvoorbeeld bij het opslaan, het verwerken van een bericht of bij het opstarten. Pluginberichten zijn datapakketten die bijvoorbeeld een proxy zoals BungeeCord of Velocity met de server uitwisselt. De naam van de plugin staat in de melding tussen vierkante haken of aan het begin van de regel. Afhankelijk van de fout valt alleen die actie uit of schakelt de plugin zichzelf uit. Gaat het om opslaan, pak het dan snel aan, zodat er geen gegevens verloren gaan.

Zo los je het op:

  1. Lees de pluginnaam en de regels direct onder de melding in de Console.
  2. Update de plugin onder Plugins en start opnieuw op.
  3. Blijft de fout, maak dan een back-up, verwijder de plugin als test en controleer of de melding verdwijnt.
  4. Meld de fout bij de pluginauteur met de regels uit de console.

Mislukt het opslaan herhaaldelijk: Plugin kan database of bestanden niet opslaan.

Skript-foutrapport met #!#!: een script wordt niet geladen

Zo ziet de melding eruit:

#!#! Current node: <Line from the .sk file>
#!#! End of Error.

Wat erachter zit: Skript is een plugin waarmee je servenfuncties in eenvoudige tekstbestanden met de extensie .sk schrijft. Als het bij het laden van een script of een addon een ernstige fout constateert, schrijft het een rapport waarvan alle regels met #!#! beginnen. Veelvoorkomende oorzaken: een addon zoals skript-reflect of SkBee past niet bij de geïnstalleerde Skript-versie, of een pluginbestand is vervangen terwijl de server draaide. Dan staat er „zip file closed“ in het rapport. Het betreffende script werkt niet, de server blijft draaien.

Zo los je het op:

  1. Lees in het rapport de regel „Current node“ (die noemt het betreffende .sk-bestand) en de regel „Caused by“.
  2. Controleer op de projectpagina's welke addon-versies bij jouw Skript-versie passen, en breng Skript en addons naar versies die bij elkaar passen.
  3. Vervang pluginbestanden alleen als de server gestopt is en start de server daarna opnieuw op.
  4. Laad het script met /sk reload <bestand> en lees de uitvoer in de Console.

Goed om te weten: De scripts staan onder Bestanden in de map plugins/Skript/scripts/. Maak een back-up van een bestand voordat je het wijzigt.

IndexOutOfBoundsException: „must be less than size“

Zo ziet de melding eruit:

Caused by: java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)

Wat erachter zit: De game, een mod of een plugin heeft een lijstitem opgevraagd dat niet bestaat. „index (1) must be less than size (1)“ betekent: de lijst heeft precies één item met nummer 0, gevraagd werd nummer 1. Een configuratie kan erbij betrokken zijn, maar de melding alleen bewijst dat niet. Staat er „Caused by:“ voor, dan is dit de oorzaak van een fout die hoger is gemeld. Wat uitvalt, laat die bovenste melding zien.

Zo los je het op:

  1. Lees de volledige stacktrace in logs/latest.log, ook de foutmelding erboven.
  2. Zoek de eerste „at“-regel die een extern onderdeel noemt, dus een plugin of mod in plaats van Java of een bibliotheek zoals java.base of com.google.common.
  3. Update dat onderdeel en start opnieuw op.
  4. Alleen als het verband naar een concrete lijst verwijst, bijvoorbeeld menu-items of beloningen, controleer dan de configuratie daarvan op ontbrekende of lege items.

„Asynchronous Save Players“: plugin slaat op vanuit de verkeerde thread

Zo ziet de melding eruit:

Asynchronous Save Players! Blocking thread until it returns
java.lang.IllegalStateException
	at io.papermc.paper.util.MCUtil.ensureMain(MCUtil.java:<Line>)

Wat er achter zit: Een plugin heeft het opslaan van alle spelergegevens gestart vanuit een achtergrond-thread, dus vanuit een parallelle werkstroom naast de hoofd-thread die de wereld berekent. Dat is niet de bedoeling. Paper blokkeert de thread totdat het opslaan klaar is en schrijft deze waarschuwing. Dit is een fout in de plugin die korte haperingen kan veroorzaken. De server draait gewoon door.

Zo los je het op:

  1. Lees de „at“-regels onder de melding. De eerste horen bij Paper en Minecraft (io.papermc, net.minecraft); je zoekt de eerste „at“-regel waarin een plugin wordt genoemd.
  2. Werk deze plugin bij onder Plugins en start opnieuw.
  3. Blijft de waarschuwing komen, meld de fout dan bij de pluginauteur met de volledige melding.

Goed om te weten: Een enkele waarschuwing kun je gerust negeren. Komt hij regelmatig voor en merken spelers haperingen, dan loont het de moeite om te updaten.

„Unhandled exception executing command“: pluginopdracht breekt af

Zo ziet de melding eruit:

org.bukkit.command.CommandException: Unhandled exception executing command '<opdracht>' in plugin <Plugin> v<Versie>
Caused by: <Fouttype>: <Melding>

Wat er achter zit: Een plugin heeft bij het uitvoeren van een van zijn opdrachten een fout gegooid. Opdracht en plugin staan in de melding. Meestal past de plugin niet bij de serverversie of bij een andere plugin waarvan hij afhankelijk is. Wie de opdracht heeft ingevoerd, ziet in de chat meestal alleen een algemene melding over een interne fout. De opdracht is niet uitgevoerd, de server draait gewoon door.

Zo los je het op:

  1. Lees de „Caused by“-regel onder de melding.
  2. Controleer onder Versie je serverversie en werk de plugin onder Plugins bij naar een uitgave daarvoor.
  3. Noemt de foutregel een andere plugin waarvan de plugin afhankelijk is, breng die dan ook naar een passende versie.
  4. Start opnieuw en test de opdracht. Blijft de fout optreden, meld hem dan met deze regel bij de pluginauteur.

Meer over afhankelijkheden: Plugin heeft een andere plugin nodig.

Opdrachtfout met „[ACF]“ in de log

Zo ziet de melding eruit:

[<Plugin>] [ACF] Exception in command: <opdracht>
[<Plugin>] [ACF] java.lang.NoSuchMethodError: <Method>

Wat er achter zit: Veel plugins bouwen hun opdrachten met een kant-en-klare bibliotheek, het Aikar Command Framework (ACF). Breekt een opdracht af met een exception, dan toont ACF de fout inclusief stacktrace, elke regel met de pluginnaam ervoor. De naam in de eerste haakjes is dus de getroffen plugin, niet ACF. Staat er „IncompatibleClassChangeError“ of „NoSuchMethod“ in de uitvoer, dan past de plugin niet bij de serverversie. De opdracht is niet uitgevoerd, de server draait gewoon door.

Zo los je het op:

  1. Lees de pluginnaam in de eerste rechte haakjes en de eerste foutregel met „Exception“ of „Error“.
  2. Werk de plugin onder Plugins bij naar een versie voor jouw serverversie.
  3. Start opnieuw en test de opdracht.
  4. Blijft de fout, meld hem dan bij de pluginauteur met de eerste foutregel.

Goed om te weten: ACF hoef je niet zelf te installeren of bij te werken. Het zit in de betreffende plugin.

GravesX: fout in een achtergrondtaak

Zo ziet de melding eruit:

[GravesX] Async task for GravesX v<Versie> generated an exception
java.lang.NullPointerException: Cannot invoke "<Method>" because "version2" is null

Wat er achter zit: GravesX maakt bij de dood van een speler een graf met zijn spullen aan. De plugin gooit in een achtergrondtaak een NullPointerException, bijvoorbeeld bij het vergelijken van twee versienummers, wanneer een waarde („version2“) ontbreekt. Dit is een fout in de plugin zelf, geen server- of hostingprobleem. De server draait normaal door.

Zo los je het op:

  1. Werk GravesX onder Plugins bij naar de nieuwste versie en start opnieuw.
  2. Controleer in de Console of de melding terugkomt.
  3. Blijft de fout bestaan, meld hem dan bij het GravesX-project met de volledige melding.
  4. Wil je de plugin tot de fix als test uitschakelen, laat dan eerst openstaande graven leegmaken. Zonder de plugin kunnen ze niet op de gebruikelijke manier worden geopend.

FastAsyncWorldEdit: opdracht intern mislukt

Zo ziet de melding eruit:

An unexpected error while handling a FastAsyncWorldEdit command
java.lang.NullPointerException

Wat er achter zit: FastAsyncWorldEdit (FAWE) is een snelle variant van WorldEdit waarmee je grote gebieden in één keer bewerkt. Bij een opdracht is FAWE op een ontbrekende waarde gestuit. De bewerking is niet volledig uitgevoerd, dus de wijziging kan maar gedeeltelijk in de wereld terecht zijn gekomen. De server draait gewoon door.

Zo los je het op:

  1. Controleer in het spel wat de opdracht heeft veranderd. Met //undo maak je indien nodig de laatste stap ongedaan.
  2. Werk FAWE onder Plugins bij naar een uitgave voor jouw serverversie en start opnieuw.
  3. Voer de opdracht opnieuw uit.
  4. Blijft de fout, meld dan de volledige stacktrace met de exacte opdracht bij de FAWE-ontwikkelaars.

Basis voor het ongedaan maken: WorldEdit: bouwen en ongedaan maken.

Goed om te weten: Installeer FAWE niet naast de gewone WorldEdit. Samen werken ze niet goed; gebruik er maar één.

LibreLogin: opdracht intern mislukt

Zo ziet de melding eruit:

[LibreLogin] An unexpected exception occurred while performing command …

Wat er achter zit: LibreLogin is een loginplugin: spelers melden zich aan met een wachtwoord, vaak op servers in offlinemodus. Bij het uitvoeren van een van zijn opdrachten, bijvoorbeeld om in te loggen of te registreren, is de plugin met een onverwachte exception afgebroken. Voor de speler mislukt de opdracht. Gaat het om het inloggen, dan komt hij niet verder totdat de opdracht weer werkt. De server zelf draait gewoon door.

Zo los je het op:

  1. Lees in de Console de exception onder de melding en noteer welke opdracht het was.
  2. Werk LibreLogin onder Plugins bij en start opnieuw.
  3. Test de opdracht opnieuw met een speler.
  4. Blijft de fout, meld dan de exception samen met de opdracht bij de pluginauteur.

Noemt de exception een database: Plugin kan zijn database niet openen.

LibreLogin: netwerkhandler is dubbel geregistreerd

Zo ziet de melding eruit:

java.lang.IllegalArgumentException: Duplicate handler name: pe-decoder-librelogin

Wat erachter zit: Elke spelersverbinding loopt door een keten van verwerkingsstappen, de netwerkpipeline. LibreLogin of de bibliotheek PacketEvents probeert dezelfde stap, een decoder voor binnenkomende data, een tweede keer in te bouwen. Nieuwe verbindingen kunnen dan mislukken. Typische oorzaken zijn twee LibreLogin-bestanden in de pluginmap, niet bij elkaar passende versies van LibreLogin en PacketEvents of het herladen van plugins terwijl de server draait.

Zo los je het op:

  1. Open onder Bestanden de map plugins/ en controleer of LibreLogin er maar één keer in staat. Verwijder oudere kopieën nadat je een back-up hebt gemaakt.
  2. Werk LibreLogin en, indien geïnstalleerd, PacketEvents samen bij.
  3. Stop de server en start hem volledig opnieuw op. Herladen met /reload of een pluginmanager is hier niet genoeg.
  4. Test het joinen met een speler.

Meer over dubbele bestanden: Pluginbestand is beschadigd of dubbel.

LightAntiCheat-Plus: fout in een bewegingscontrole

Zo ziet de melding eruit:

[LightAntiCheat-Plus] Exception in event bus subscription: <Check>
java.lang.UnsupportedOperationException: remove

Wat erachter zit: LightAntiCheat-Plus is een anticheatplugin die onder andere de bewegingen van spelers controleert. Een van de controles probeert een lijst leeg te maken die niet gewijzigd kan worden. Dit is een fout in de plugin. De betreffende controle kan uitvallen of foute resultaten geven, dus cheats missen of eerlijke spelers ten onrechte verdenken. De server blijft draaien.

Zo los je het op:

  1. Werk LightAntiCheat-Plus bij onder Plugins en start opnieuw op.
  2. Blijft de melding komen, schakel dan tot de fix de betreffende controle SpeedD uit in de configuratie van de plugin. Je vindt die onder Bestanden in de map van de plugin onder plugins/. Maak eerst een back-up van het bestand.
  3. Start opnieuw op en controleer in de Console of de melding wegblijft.
  4. Schakel de controle weer in zodra er een gecorrigeerde versie is verschenen.

Goed om te weten: Zolang de melding verschijnt, moet je vermoedens van bewegingscheats met voorzichtigheid behandelen.

MagicSpells meldt een fout bij een spreuk

Zo ziet de melding eruit:

[MagicSpells] AN EXCEPTION HAS OCCURED:
[MagicSpells] This error has been saved in the errors folder.
Error saving spellbook for player '<Player>'

Wat erachter zit: MagicSpells is een plugin voor eigen spreuken. Het meldt een fout bij het uitvoeren of opslaan van spreuken, vaak door een item in de configuratie dat deze versie niet begrijpt. De effecten lopen via de bibliotheek EffectLib; meldingen met „Unexpected EffectLib Error” gaan over deze effecten. Daarnaast slaat MagicSpells een rapport op in de map plugins/MagicSpells/errors. Mislukt het opslaan van het spreukenboek (spellbook), dan wordt de stand van die speler niet opgeslagen.

Zo los je het op:

  1. Open onder Bestanden de map plugins/MagicSpells/errors en het nieuwste rapport. Daarin staan de spreuk en de instelling.
  2. Controleer deze instelling in je spreukbestanden, bijvoorbeeld op typefouten of waarden uit een oudere MagicSpells-versie. Maak eerst een back-up van het bestand.
  3. Houd MagicSpells en EffectLib up-to-date en passend bij de serverversie.
  4. Start opnieuw op en test de spreuk.

SinglePlayerSleep: slapen in een bed werkt niet

Zo ziet de melding eruit:

[SinglePlayerSleep] INTERNAL ERROR: Unable to process PlayerBedEnterEvent

Wat erachter zit: SinglePlayerSleep laat de nacht voorbijgaan als één enkele speler slaapt, in plaats van dat iedereen naar bed moet. Bij het betreden van een bed is de plugin gecrasht. De slaapfunctie kan voor deze poging uitvallen, waardoor de nacht niet wordt overgeslagen. Meestal past de pluginversie niet bij de Minecraft-versie. De server blijft draaien.

Zo los je het op:

  1. Controleer onder Versie welke Minecraft-versie draait.
  2. Werk SinglePlayerSleep onder Plugins bij naar een versie voor deze Minecraft-versie en start opnieuw op.
  3. Test in het spel: ga 's nachts in bed liggen en controleer of de nacht voorbijgaat.
  4. Blijft de fout, meld dan de exception onder de melding bij de pluginauteur.

Meer hierover: Minecraft-gamerules uitgelegd.

Goed om te weten: Nieuwere Minecraft-versies hebben een eigen gamerule voor hoeveel procent van de spelers moet slapen. Die kan de plugin vervangen.

PacketEvents kan zich niet in de verbinding inpluggen

Zo ziet de melding eruit:

PacketEvents failed to add a decoder to the netty pipeline

Wat erachter zit: PacketEvents is een bibliotheek waarmee andere plugins, zoals anticheat- of loginplugins, netwerkpakketten kunnen meelezen. Daarvoor bouwt ze een eigen stap, een decoder, in de netwerkpipeline van elke verbinding. Netty is de netwerkbibliotheek waarmee de server verbindingen afhandelt. Het inbouwen is mislukt: een andere netwerkhandler of een niet-compatibele PacketEvents-versie blokkeert de verwachte volgorde. Plugins die op PacketEvents voortbouwen, werken dan niet goed voor deze verbinding.

Zo los je het op:

  1. Werk PacketEvents, Geyser en Floodgate, evenals login- en anticheatplugins, samen bij naar versies voor jouw serverversie.
  2. Controleer onder Bestanden in de map plugins/ dat er geen bestand dubbel staat.
  3. Stop de server en start hem volledig opnieuw op, zonder herladen terwijl de server draait.
  4. Test het joinen met Java en, als je Geyser gebruikt, ook met Bedrock.

Voor Bedrock-spelers: Bedrock en Geyser: meldingen in het log.

StringIndexOutOfBoundsException: lege of te korte tekstwaarde

Zo ziet de melding eruit:

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

Wat erachter zit: Een plugin of mod wilde een bepaald teken uit een tekst lezen, bijvoorbeeld het eerste teken van een prefix. De tekst is echter korter, bij „length 0” zelfs leeg. Vaak is een verwachte configuratiewaarde leeg, zoals een prefix, een kleuraanduiding of een naam die alleen als '' is ingevuld. De server blijft draaien; de functie die de tekst nodig heeft, valt uit.

Zo los je het op:

  1. Lees in de stacktrace de eerste regel met de naam van een plugin of mod.
  2. Open onder Bestanden de configuratie van deze plugin in de map plugins/<Plugin>/ en zoek naar lege waarden zoals '' of items zonder waarde. Maak eerst een back-up van het bestand.
  3. Vul een geldige waarde in of neem de standaardwaarde over uit de sjabloon van de plugin.
  4. Werk de plugin bij en start opnieuw op.

Meer over foutieve instellingen: Configuratiebestand van een plugin is foutief.

„NoSuchFieldException: childHandler“: netwerkplugin past niet bij de server

Zo ziet de melding eruit:

java.lang.NoSuchFieldException: childHandler

Wat erachter zit: Netty is de netwerkbibliotheek waarmee de server verbindingen accepteert. Sommige plugins grijpen direct in op interne onderdelen ervan om zich in verbindingen te haken. Hier zoekt een netwerkplugin het interne veld „childHandler“, dat in de geïnstalleerde server- of Netty-versie niet beschikbaar is. De plugin is dus gebouwd voor een andere serverbuild. Meestal gaat het om netwerk-, proxy- of protocolplugins; hun functie valt uit.

Zo los je het op:

  1. Lees de stacktrace onder de melding en zoek de eerste netwerk-, proxy- of protocolplugin, bijvoorbeeld ViaVersion, ProtocolLib of Geyser.
  2. Controleer onder Versie welke serverversie er draait. De exacte uitvoering van de serversoftware (build) staat bovendien in de eerste regels van logs/latest.log.
  3. Werk de gevonden plugin bij naar een versie voor deze serverbuild en start opnieuw op.
  4. Is er nog geen passende versie, schakel de plugin dan tijdelijk uit totdat de auteur een update uitbrengt.

Uitgebreid: Plugin past niet bij de serverversie.

Tabsuggesties van een pluginopdracht werken niet

Zo ziet de melding eruit:

Unhandled exception during tab completion for command '<Opdracht>' in plugin <Plugin>

Wat erachter zit: Wanneer je op de Tab-toets drukt, vraagt Minecraft de verantwoordelijke plugin om mogelijke aanvullingen. Daarbij mislukt de suggestiefunctie van de plugin. De server blijft draaien, alleen de suggesties voor de betreffende opdracht ontbreken. Het foutspoor eronder, de zogenaamde stacktrace, toont de betrokken programma-aanroepen.

Zo los je het op:

  1. Lees de volledige melding in de Console of onder Bestanden in logs/latest.log. Noteer de plugin, de opdracht en de eerste concrete foutmelding eronder.
  2. Controleer onder Versie je serverversie en installeer onder Plugins een daarvoor geschikte uitgave van de genoemde plugin.
  3. Start de server volledig opnieuw op en test dezelfde opdracht opnieuw met de Tab-toets.
  4. Blijft de fout bestaan, stuur de pluginauteur dan het volledige foutspoor en beschrijf op welk punt de suggesties uitvallen.

StackOverflowError bij het evalueren van een zoekregel

Zo ziet de melding eruit:

Exception in thread "<Achtergrondtaak>" java.lang.StackOverflowError

Wat erachter zit: Een reguliere expressie is een zoekregel voor tekst, bijvoorbeeld voor opdrachtfilters. Java heeft bij het controleren van deze regel te veel in elkaar geneste aanroepen nodig en vult daarmee de aanroepstack. De genoemde achtergrondtaak wordt beëindigd en het werk ervan blijft onvolledig; de server blijft draaien. StackOverflowError is een andere fout dan een vol Java-geheugen.

Zo los je het op:

  1. Open het volledige foutspoor in de Console of onder Bestanden in logs/latest.log. Zoek aan de hand van de threadnaam en de pluginaanroepen de verantwoordelijke plugin.
  2. Maak een back-up van de instellingen ervan en controleer configureerbare zoek- of opdrachtregels. Vereenvoudig de regel die de fout veroorzaakt, als je die zelf hebt ingesteld.
  3. Werk de plugin onder Plugins bij naar een geschikte uitgave en start de server volledig opnieuw op.
  4. Is de regel vast ingebouwd, meld de auteur dan het volledige foutspoor en de invoer waarbij de fout optreedt.

Paper blokkeert „entity add“ vanuit een achtergrondthread

Zo ziet de melding eruit:

Thread <Thread> failed main thread check: entity add

Wat erachter zit: Paper controleert of wijzigingen aan de spelwereld op de juiste thread worden uitgevoerd. Een thread is een eigen uitvoeringsstroom van het programma. Hier probeert een achtergrondtaak een entiteit aan de wereld toe te voegen en wordt die door de beveiligingscontrole tegengehouden. De betreffende actie mislukt; de server blijft draaien.

Zo los je het op:

  1. Open in de Console of onder Bestanden het volledige foutspoor in logs/latest.log. De ingekorte melding toont vaak alleen serveraanroepen.
  2. Lees verder tot de eerste pluginaanroep en noteer welke actie de fout heeft veroorzaakt.
  3. Installeer onder Plugins een uitgave van deze plugin die bij je serverversie past en start de server volledig opnieuw op.
  4. Blijft de fout optreden, meld die dan bij de pluginauteur met het volledige foutspoor. De pluginaanroep moet naar de juiste thread worden verplaatst.

Goed om te weten: Laat de beveiligingscontrole ingeschakeld. Door die uit te schakelen wordt de foutieve toegang tot de wereld niet verholpen.

Loot-berekening mislukt door ontbrekende verplichte waarden

Zo ziet de melding eruit:

java.lang.IllegalArgumentException: Missing required parameters: [<Parameter>]

Wat erachter zit: Minecraft heeft voor loot en voorwerp-uitvoer gegevens over de betreffende situatie nodig. De aanroepende functie levert hier niet alle verplichte waarden aan. Daarom wordt deze berekening afgebroken. Welke actie is getroffen, zie je aan het volledige foutrapport en aan het tijdstip van de melding.

Zo los je het op:

  1. Open de melding in de Console of onder Bestanden in logs/latest.log, inclusief de daaropvolgende aanroeplijst. Deze lijst heet stacktrace.
  2. Zoek daarin naar de eerste betrokken plugin en noteer welke actie de fout veroorzaakt.
  3. Werk deze plugin bij onder Plugins en controleer onder Versie of je serversoftware daarbij past.
  4. Test dezelfde actie opnieuw. Blijft de fout bestaan, geef dan het volledige rapport door aan het verantwoordelijke project.

Oritech mislukt bij een voorwerpactie op een blok

Zo ziet de melding eruit:

Failed to handle packet <Pakket>, suppressing error
java.util.NoSuchElementException: null
    at <Pakket>.ItemFluidApi.tryFluidBlockItemInteraction(<Bestand>:<Rule>)

Wat hierachter zit: De mod Oritech verwerkt een actie waarbij een voorwerp op een blok wordt gebruikt. De vloeistofverwerking probeert daarbij het eerste item van een lege lijst te lezen. Java meldt hiervoor een NoSuchElementException, oftewel een toegang tot een item dat niet bestaat. De actie wordt afgebroken; de server verwerkt andere taken gewoon verder.

Zo los je het op:

  1. Noteer het gebruikte voorwerp, het blok en het tijdstip. Maak onder Back-ups een back-up voordat je iets wijzigt.
  2. Controleer onder Mods of er een passende Oritech-update is. De Minecraft-versie, de loader en bij een Modpack de bedoelde modversies moeten bij elkaar passen.
  3. Als de fout blijft optreden, vermijd dan eerst de actie die de fout veroorzaakt. Meld de fout bij de maker van Oritech, samen met de volledige foutmelding uit logs/latest.log.

BeautyQuests: Voortgang van quests wordt niet bijgewerkt in het scoreboard

Zo ziet de melding eruit:

[BeautyQuests.ScoreboardManager] Failed to refresh line {quest_advancement} for player <Speler>
java.util.NoSuchElementException: No value present

Wat erachter zit: BeautyQuests vult in het scoreboard een placeholder in voor de voortgang van de quest. Daarbij ontbreekt een getalswaarde die de plugin verwacht. De betreffende regel wordt niet bijgewerkt, de server blijft gewoon draaien.

Zo los je het op:

  1. Controleer in de Console of onder Bestanden in logs/latest.log bij welke quest de melding optreedt. De foutmelding eronder (stacktrace) toont de betrokken plugin-aanroepen.
  2. Maak een back-up van de pluginconfiguratie en werk BeautyQuests onder Plugins bij naar een uitgave die past bij je serverversie. Start de server volledig opnieuw op.
  3. Blijft de fout bestaan, verwijder dan onder Bestanden tijdelijk de weergaveregel met {quest_advancement} uit de BeautyQuests-configuratie.
  4. Meld de volledige, opgeschoonde stacktrace en de betreffende questconfiguratie aan de pluginauteur. Verwijder persoonlijke gegevens voordat je ze deelt.

TAB gebruikt na het herladen een verworpen object

Zo ziet de melding eruit:

[TAB] java.lang.IllegalStateException: This instance got discarded because plugin was reloaded. Obtain a new instance.

Wat erachter zit: TAB heeft bij het herladen interne objecten vervangen. Een andere actie gebruikt nog een oud object dat TAB al heeft verworpen. Hierdoor stopt de registratie van de betreffende placeholder en kunnen delen van de weergave ontbreken. De server blijft draaien.

Zo los je het op:

  1. Start de server volledig opnieuw op en controleer daarna de Console. Bij een volledige herstart worden de betrokken onderdelen samen opnieuw geladen.
  2. Komt de melding terug, maak dan een back-up van de configuratie en werk TAB en de bijbehorende uitbreidingen bij naar bij elkaar passende versies. Op Fabric gebruik je Mods, voor zelf geüploade bestanden Bestanden.
  3. Gebruik voorlopig alleen volledige herstarts. Noteer welke actie de melding opnieuw veroorzaakt.
  4. Geef de TAB-auteur bij aanhoudende fouten de opgeschoonde stacktrace en de geïnstalleerde versies.

Een plugin laat achtergrondtaken doorlopen bij het herladen of stoppen

Zo ziet de melding eruit:

Nag author: '<Auteur>' of '<Plugin>' about the following: This plugin is not properly shutting down its async tasks when it is being shut down.

Wat erachter zit: De genoemde plugin beëindigt zijn asynchrone taken niet netjes. Dat zijn werkzaamheden die naast de hoofdlus van de server draaien. Na een herlaadactie kunnen oude en nieuwe plugintaken met elkaar in conflict komen; bij het normaal stoppen kunnen nog foutmeldingen ontstaan.

Zo los je het op:

  1. Controleer in de Console welke plugin wordt genoemd en of de melding bij het herladen of bij het normaal stoppen verschijnt.
  2. Is de melding na een herlaadactie opgetreden, start de server dan volledig opnieuw op. Gebruik daarna volledige herstarts voor pluginwijzigingen.
  3. Maak een back-up van de pluginconfiguratie en werk de betreffende plugin onder Plugins bij naar een passende versie.
  4. Blijft de melding verschijnen bij normaal stoppen, meld deze dan aan de pluginauteur met de bijbehorende logregels en je serverversie.

Paper blokkeert een POI-toegang vanuit een achtergrondthread

Zo ziet de melding eruit:

[ca.spottedleaf.moonrise.common.util.TickThread] Thread failed main thread check: Accessing poi chunk off-main, context=<Threadcontext>

Wat erachter zit: POI staat voor "Point of Interest" en verwijst naar belangrijke plekken, zoals werkplekken van dorpelingen. Een achtergrondthread probeert hier de bijbehorende gegevens van een wereldsectie te benaderen. Paper staat deze toegang alleen toe in de verantwoordelijke gamethread en breekt de betreffende actie af.

Zo los je het op:

  1. Open in de Console of onder Bestanden in logs/latest.log de volledige stacktrace. Dat zijn de aanroepregels onder de melding; controleer of daarin een plugin wordt genoemd.
  2. Maak onder Back-ups een back-up. Werk Paper onder Versie en betrokken plugins onder Plugins bij naar bij elkaar passende uitgaven.
  3. Start de server volledig opnieuw op en kijk of dezelfde actie de fout opnieuw veroorzaakt.
  4. Blijft de melding zonder pluginverwijzing bestaan, geef Paper dan de opgeschoonde stacktrace, de serverversie en de stappen om de fout te veroorzaken. Wordt er een plugin genoemd, meld de fout dan bij de auteur daarvan.

LuckPerms-spelergegevens zijn bij het joinen nog niet klaar

Zo ziet de melding eruit:

Couldn't place player in world
java.lang.IllegalStateException: Capability has not been initialised

Wat er achter zit: Het joinen mislukt door een rechtencontrole. Het foutspoor loopt via LuckPerms; de spelergebonden gegevensopslag daarvan, de zogeheten capability, is op dat moment nog niet klaar. De betreffende speler wordt daardoor niet succesvol in de wereld geplaatst.

Zo los je het op:

  1. Lees in de Console of in logs/latest.log de LuckPerms-meldingen vóór de fout en noteer de betrokken mods.
  2. Controleer onder Mods of LuckPerms en de opvragende mod passen bij jouw NeoForge- en Minecraft-versie. Gebruik uitgaven die allebei worden ondersteund.
  3. Start de server volledig opnieuw op en test het joinen nogmaals. Blijft de fout bestaan, meld die dan met het volledige foutspoor en de versiegegevens aan de auteurs van de betrokken mods.

Een vloeistofaanvraag vindt de verwachte ketel niet

Zo ziet de melding eruit:

java.lang.IllegalStateException: Unexpected error: no cauldron at location BlockPos{<Position>}

Wat er achter zit: Een vloeistofinterface verwacht op de opgevraagde plek een ketel, maar treft een andere blokstatus aan. In het foutspoor vraagt Jade deze interface aan om vloeistofinformatie uit te lezen. De betreffende aanvraag wordt afgebroken; informatie over dit blok kan daardoor ontbreken.

Zo los je het op:

  1. Lees het volledige foutspoor in logs/latest.log en controleer bij welke blokactie de melding terugkeert.
  2. Maak onder Back-ups een back-up. Stem onder Mods Jade en de betrokken vloeistofmods en de NeoForge-versie af op uitgaven die allemaal worden ondersteund.
  3. Start volledig opnieuw op en herhaal de actie. Blijft de fout bestaan, meld dan de exacte actie en het foutspoor aan de betrokken auteurs.

MoreRelics berekent bij een gevechtsactie een ongeldige getalwaarde

Zo ziet de melding eruit:

Exception caught during firing event: max is NaN

Wat erachter zit: NaN staat voor „Not a Number“, een ongeldige rekenwaarde. MoreRelics geeft deze waarde bij een gevechtsactie door als bovengrens aan een getalcontrole. De controle weigert de waarde en de betreffende gebeurtenisverwerking wordt afgebroken; de server verwerkt daarna gewoon verdere gebeurtenissen.

Zo los je het op:

  1. Lees in de Console of in logs/latest.log het volledige foutspoor en noteer de actie die de fout veroorzaakt.
  2. Maak onder Back-ups een back-up. Controleer onder Mods of er een MoreRelics-versie is die past bij je Modpack en NeoForge.
  3. Start de server volledig opnieuw op en test dezelfde actie. Blijft de fout bestaan, meld deze dan bij de auteur met het foutspoor, je modselectie en de gebruikte voorwerpen of effecten.

Citizens faalt bij het versturen van pakketgegevens door een lege waarde

Zo ziet de melding eruit:

java.lang.NullPointerException
    at Citizens-<Versie>.jar//net.citizensnpcs.PacketEventsHook.<Method>(<Bestand>:<Rule>)

Wat erachter zit: Bij het versturen van pakketgegevens benadert Citizens via zijn PacketEvents-koppeling een ontbrekende waarde. Java noemt deze lege waarde null en stopt met een NullPointerException. De betreffende pakketverwerking mislukt; updates van NPC's, oftewel computergestuurde figuren, kunnen daardoor onvolledig zijn.

Zo los je het op:

  1. Lees het volledige foutspoor in logs/latest.log en noteer bij welke NPC-actie de fout optreedt.
  2. Maak onder Back-ups een back-up van de huidige staat. Controleer onder Plugins welke versies van Citizens, PacketEvents en je serversoftware samen worden ondersteund.
  3. Vervang indien nodig de bestanden onder Bestanden, start de server volledig opnieuw op en test dezelfde actie. Blijft de fout bestaan, meld dan het foutspoor en de versiegegevens bij de auteur.

NovaSync vindt de helper voor besturingssysteemupdates niet

Zo ziet de melding eruit:

[NovaSyncPlugin] [os-updates] helper start failed subcmd=status err=IOException:Cannot run program "sudo": Exec failed, error: 2 (No such file or directory)

Wat erachter zit: NovaSync probeert een extern hulpprogramma voor besturingssysteemupdates te starten. Daarvoor roept de plugin sudo aan, een programma om opdrachten met andere gebruikersrechten uit te voeren. De serveromgeving vindt dit programma niet, waardoor de voorbereiding of de statusopvraging van de updatefunctie mislukt. De gameserver blijft gewoon draaien.

Zo los je het op:

  1. Lees in de Console of onder Bestanden in logs/latest.log de volledige melding en noteer het tijdstip.
  2. Controleer in de handleiding van je geïnstalleerde NovaSync-versie de vereisten voor os-updates en de benodigde helper.
  3. Open een ticket en vermeld het tijdstip van de melding en de pluginversie, om de beschikbaarheid van de helper in je serveromgeving te laten uitzoeken.

Goed om te weten: De melding heeft betrekking op de updatefunctie voor het besturingssysteem van NovaSync, niet op het bijwerken van je Minecraft-plugins.

ProtocolLib kan een foutrapport niet toewijzen

Zo ziet de melding eruit:

[ProtocolLib] Error filtering reports: java.lang.IllegalArgumentException: Cannot find report name for Plugin %s tried to register listener for unknown packet %s

Wat erachter zit: ProtocolLib ondersteunt andere plugins bij het verwerken van netwerkpakketten, de berichten tussen server en spelclient. Hier mislukt bovendien de toewijzing van een diagnoserapport. Het rapport betreft de registratie van een onbekend pakkettype. De server blijft draaien; de betreffende pakketfunctie en de diagnose ervan moeten worden gecontroleerd.

Zo los je het op:

  1. Lees in de Console of in logs/latest.log de regels direct voor en na de melding. Zoek daar naar de betrokken plugin en het pakkettype.
  2. Controleer de ondersteunde serverversies van ProtocolLib en deze plugin. Update beide onder Plugins naar passende uitgaven.
  3. Stop de server voordat je bestanden vervangt en start daarna volledig opnieuw op. Controleer de eerder getroffen functie opnieuw.
  4. Blijft de melding bestaan, geef de plugin-auteur dan het volledige foutblok en de gebruikte versies door.

EliteMobs kan zijn munitiefunctie niet activeren

Zo ziet de melding eruit:

[EliteMobs] Cannot enable native ammunition for <Connection>: java.util.NoSuchElementException: packet_handler

Wat erachter zit: EliteMobs probeert zijn native munitiefunctie voor een verbinding in te stellen. Een handler is een interne verwerkingsstap voor netwerkgegevens. De verwachte stap met de naam packet_handler ontbreekt op de opgevraagde plek. Daardoor wordt deze deelfunctie niet geactiveerd; de server blijft draaien.

Zo los je het op:

  1. Lees in de Console of in logs/latest.log de omliggende meldingen. Let op eerdere fouten bij het opzetten van de verbinding.
  2. Vergelijk de door EliteMobs ondersteunde serverversies met jouw Versie. Controleer ook de door de auteur genoemde afhankelijkheden.
  3. Stop de server en update EliteMobs onder Plugins naar een passende uitgave. Start de server daarna volledig opnieuw op en test de betreffende functie.
  4. Blijft de fout bestaan, meld deze dan bij de EliteMobs-auteur met het volledige foutblok, de serverversie en de pluginlijst. Deze gegevens helpen om de ontbrekende verwerkingsstap te achterhalen.

LuckPerms blokkeert een tegenstrijdig toegestane login

Zo ziet de melding eruit:

[LuckPerms] Player connection was re-allowed for <Player-ID>

Wat erachter zit: Tijdens het joinen hebben plugins tegenstrijdige beslissingen genomen. LuckPerms blokkeert de opnieuw toegestane verbinding om zijn rechtenverwerking te beveiligen. Het betreffende joinen mislukt; de server blijft draaien.

Zo los je het op:

  1. Lees in de Console of in logs/latest.log de meldingen direct voor het mislukte joinen. Zoek naar fouten bij het laden van gegevens en naar meldingen van de login-plugins.
  2. Wordt een database- of laadfout genoemd, los dan eerst die fout op. Controleer daarna welke login-plugin een eerdere weigering weer opheft.
  3. Update de betrokken componenten onder Plugins naar uitgaven die bij elkaar en bij de serverversie passen. Stop de server voor het vervangen en start daarna opnieuw op.
  4. Test het joinen opnieuw. Blijft het conflict bestaan, geef dan de betrokken plugin-auteurs het volledige foutblok en de pluginlijst door.

Goed om te weten: Schakel de aanmeldcontrole niet uit om het conflict te omzeilen.

Apotheosis: een blokactie mislukt door een leeg voorwerp

Zo ziet de melding eruit:

Failed to handle packet <Pakket>, suppressing error
java.lang.IllegalArgumentException: Expected resource to be non-empty: minecraft:air [0]
at <Loader>/dev.shadowsoffire.apotheosis.affix.salvaging.<Aanroep>

Wat erachter zit: Apotheosis bereikt bij een blokactie zijn functie voor het ontmantelen. Daarbij wordt een lege voorwerpstapel doorgegeven aan de overdrachtsinterface van NeoForge; die vereist een bestaand voorwerp. Daarom wordt de interactie afgebroken, terwijl de server blijft draaien. De stacktrace, dus de aanroepketen onder de foutmelding, loopt hier via Apotheosis en NeoForge.

Zo los je het op:

  1. Maak een back-up van de huidige staat onder Back-ups. Noteer welke blokactie de melding veroorzaakt en vermijd die voorlopig.
  2. Open de volledige melding in de Console of via Bestanden in logs/latest.log. Noteer ook de regels vóór de fout.
  3. Controleer onder Mods of Apotheosis en de benodigde mods passen bij je Minecraft- en NeoForge-versie. Gebruik bij een Modpack een bij elkaar passende packversie. Stop de server vóór het vervangen van bestanden en start daarna opnieuw op.
  4. Blijft de melding bestaan, geef dan de volledige foutopsporing, de geïnstalleerde versies en de veroorzakende actie door aan de auteur van de mod.

ProtocolLib: plugin vraagt de UUID van een tijdelijke speler op

Zo ziet de melding eruit:

[<Plugin>] Unhandled exception occurred in onPacketSending(PacketEvent) for <Plugin>
java.lang.UnsupportedOperationException: The method getUniqueId is not supported for temporary players.

Wat erachter zit: ProtocolLib levert tijdens het opbouwen van de verbinding tijdelijke spelerobjecten. De unieke accountidentificatie UUID kan via dit object nog niet worden opgevraagd. Een plugin probeert dit bij het versturen van een pakket toch. De pakket-handler, oftewel de verantwoordelijke verwerkingsfunctie, wordt daardoor afgebroken; de server blijft gewoon draaien.

Zo los je het op:

  1. Lees in de Console welke plugin na „for" wordt genoemd. Bewaar de volledige foutmelding (stacktrace) uit logs/latest.log.
  2. Controleer onder Plugins voor deze plugin en ProtocolLib of de Versie van je server wordt ondersteund. Gebruik uitgaven die bij elkaar passen.
  3. Stop de server voordat je bestanden vervangt. Start hem daarna volledig opnieuw op en test het joinen nog een keer.
  4. Blijft de fout bestaan, meld deze dan bij de auteur van de betreffende plugin met de volledige foutmelding, de geïnstalleerde versies en de actie die de fout veroorzaakt.

Staat jouw melding er niet bij?

Lees de hele melding, ook de regels ervoor. Daar staat vaak wat de plugin net wilde doen. In de stacktrace verraden de bestandsnamen in de „at”-regels, zoals <Plugin>.jar, en de pakketnamen de plugin of mod. Regels met java.base, net.minecraft, org.bukkit of io.papermc horen bij Java en de server. Maak een back-up, werk de veroorzaker bij en start opnieuw op. Kom je er niet uit, open dan een ticket en geef het tijdstip van de melding door.