[Bug] Spamming of error in console
Recently the console is being constantly spammed by this error;
Energetic Storage has been working fine for months on the server and just recently started throwing errors.
There should not be constant errors in console
The only plugins that have been updated have been Slimefun. Universes is the multiworld handler and I never had a problem until recently.
Console errors;
[00:00:57] [Craft Scheduler Thread - 26 - EnergeticStorage/WARN]: [EnergeticStorage] Plugin EnergeticStorage v0.7.3-SNAPSHOT generated an exception while executing task 13
java.lang.NullPointerException: Cannot invoke "org.bukkit.World.getBlockAt(org.bukkit.Location)" because the return value of "org.bukkit.Location.getWorld()" is null
at org.bukkit.Location.getBlock(Location.java:133) ~[patched_1.16.5.jar:git-Purpur-1171]
at net.seanomik.energeticstorage.tasks.HopperTask.run(HopperTask.java:94) ~[?:?]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:100) ~[patched_1.16.5.jar:git-Purpur-1171]
at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:58) ~[patched_1.16.5.jar:git-Purpur-1171]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[patched_1.16.5.jar:git-Purpur-1171]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]
Versions

Plugins;

That's a weird error. I'll take a look at it soon.
This just came to mind, I tried placing a hopper on the storage unit and it wouldn't place. I placed one to the side of the storage unit then broke it. There were no errors until the server restarted. Something didn't register the hopper breaking maybe and it's still looking for it? Would you like the player file?
Looks like you accidentally closed the issue, I'll reopen it.
A world download and player file might help, but at least the player file.
Thank-you, don't know how I closed it but there was a hiccup when I posted players.zip The overworld file is almost 18GB, I can make a torrent if you really need it.
@GitNuck I think I know what it's being caused by. It might be due to trying to get a block inside of an unloaded chunk. Could you try the plugin inside of this zip file and see if the issue is fixed?
Also I think you clicked "Close with comment" instead of just "Comment". I've done the same thing lol
Excellent! I'll load up the file and report back. *Tried it and immediately the console was flooded with the same errors.
@GitNuck Even though the errors are shown in the console, does everything work fine?
Yes it does, but the lag created by the console getting spammed 3x a second is real.
Try this one first. If that doesn't work try this one.
I'm giving two jars because I have two different ideas, but that second one is a slightly less favorable fix haha.
Thanks for your patience btw!
Thank you so much for writing the plugin and maintaining it! I'll remote in to the server and try the jars and report back.
The first jar doesn't spam the console until you access a storage unit then you get this error; [Server thread/ERROR]: Could not pass event InventoryCloseEvent to EnergeticStorage v0.7.4-SNAPSHOT java.lang.NullPointerException: Cannot invoke "org.bukkit.World.getName()" because the return value of "org.bukkit.Location.getWorld()" is null at net.seanomik.energeticstorage.utils.Utils.convertLocationToString(Utils.java:25) ~[?:?] at net.seanomik.energeticstorage.files.PlayersFile.savePlayerSystem(PlayersFile.java:178) ~[?:?] at net.seanomik.energeticstorage.gui.ESTerminalGUI.onInventoryClose(ESTerminalGUI.java:287) ~[?:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor54.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Purpur-1171] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.handleInventoryCloseEvent(CraftEventFactory.java:1485) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.handleContainerClose(PlayerConnection.java:2616) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2609) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:20) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:7) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1469) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1142) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171] at java.lang.Thread.run(Thread.java:831) [?:?]
The second jar file is quiet again until the storage is accessed the it generates this error; [17:39:01 ERROR]: Could not pass event InventoryCloseEvent to EnergeticStorage v0.7.4-SNAPSHOT java.lang.NullPointerException: Cannot invoke "org.bukkit.World.getName()" because the return value of "org.bukkit.Location.getWorld()" is null at net.seanomik.energeticstorage.utils.Utils.convertLocationToString(Utils.java:25) ~[?:?] at net.seanomik.energeticstorage.files.PlayersFile.savePlayerSystem(PlayersFile.java:178) ~[?:?] at net.seanomik.energeticstorage.gui.ESTerminalGUI.onInventoryClose(ESTerminalGUI.java:287) ~[?:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor54.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Purpur-1171] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.handleInventoryCloseEvent(CraftEventFactory.java:1485) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.handleContainerClose(PlayerConnection.java:2616) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2609) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:20) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:7) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.sleepForTick(MinecraftServer.java:1308) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1152) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171] at java.lang.Thread.run(Thread.java:831) [?:?] There was a bit of TPS drop with the first plugin when accessing a storage unit and it threw more errors, the second one seemed to run a bit better and generated only one error message when a storage unit was accessed. * After leaving the server console was spammed a few minutes later with 7 errors a second, so the second jar is a bit scary after players leave.
I reverted back to the first jar link and it too spams the console as well when players leave but not as crazy as the second one. Using the plugin ConsoleSpamFix I added these two phrases to be suppressed;
- Could not pass event InventoryCloseEvent to EnergeticStorage v0.7.4-SNAPSHOT
- Could not pass event WorldSaveEvent to EnergeticStorage v0.7.4-SNAPSHOT
The plugin works well otherwise. No TPS drops, no lag even when using it near an XP grinder and farm, and no other errors thrown.
I rejoined the server added some items and all of a sudden any storage unit with a single item shows no item is available.
Anything with multiple items is fine. Attached is the console error when I opened the three single use storage units, bone, arrow, and skull heads have disappeared, the inventory count is there but it cannot be accessed. Could not pass event InventoryClickEvent to EnergeticStorage v0.7.4-SNAPSHOT java.lang.NullPointerException: Cannot invoke "org.bukkit.World.getName()" because the return value of "org.bukkit.Location.getWorld()" is null at net.seanomik.energeticstorage.utils.Utils.convertLocationToString(Utils.java:25) ~[?:?] at net.seanomik.energeticstorage.files.PlayersFile.savePlayerSystem(PlayersFile.java:178) ~[?:?] at net.seanomik.energeticstorage.gui.ESSystemSecurityGUI.lambda$onInventoryClick$1(ESSystemSecurityGUI.java:302) ~[?:?] at net.wesjd.anvilgui.AnvilGUI$ListenUp.onInventoryClick(AnvilGUI.java:250) ~[?:?] at com.destroystokyo.paper.event.executor.MethodHandleEventExecutor.execute(MethodHandleEventExecutor.java:40) ~[patched_1.16.5.jar:git-Purpur-1171] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2848) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:32) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1469) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1142) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171] at java.lang.Thread.run(Thread.java:831) [?:?]

Are you using some type of world-related plugin? It seems like the world the System is getting when it gets its location is null (nothing/not set). It might be caused by it being inside of a custom world.
I am using Universes; https://www.spigotmc.org/resources/universes.68067/?cf_chl_jschl_tk=pmd_DpBnfaifMNIrsX9EYSiH4TURqi4iJqSNWrDkdfqSjX8-1632857186-0-gqNtZGzNAfujcnBszQi9 There is nothing custom about the world it was generated by Vanilla Minecraft in single player then loaded onto the server. This way if I have to restore a corrupt chunk I have a virgin non corrupt backup World to copy the files from. It also has per World inventory, perhaps that is throwing things for a loop too.
OK I cobbled together a temporary fix, I noticed in plugin.yml you had a softdepend for [Multiverse Core], I edited in [Universes 4.2.2] as the softdepend. It loaded without errors and my inventory came back and the only spam is when you close the storage unit, still an error on inventory close there. I just added to ConsoleSpamFix;
- Could not pass event InventoryCloseEvent to EnergeticStorage v0.7.4-SNAPSHOT
- Could not pass event WorldSaveEvent to EnergeticStorage v0.7.4-SNAPSHOT
- Could not pass event InventoryClickEvent to EnergeticStorage v0.7.4-SNAPSHOT
The plugin seems to be functioning very well otherwise. I'll play around with it more and see if I can make it throw an error but Universes was loading after your plugin so I think it couldn't register the Worlds properly. I also read an article where single player Worlds loaded onto multiplayer servers can throw this error too, but that was a Bukkit error from their forums in 2014 EnergeticStorage-v0.7.4-SNAPSHOT.jar.zip
After using this version of the plugin I have to say it's faster and more responsive than the other versions, everything is still there even after warping to other Worlds with separate inventory rules. I'll just need some players from the player group try this version. Busy with work recently. I tried adding load: POSTWORLD it loaded with no errors but then the console started spamming errors as soon as I used a storage unit. I think all we need is a command or two to peel the World and Inventory data from Universes.
I saw this in a forum, perhaps it helps;
An important thing to remember is that only one world gets automatically loaded by the server at startup: the "level" specified in your server.properties file. The server will also load its various dimensions (i.e. the nether & end) if those are enabled. Every other world must be loaded by a plugin, so people typically install something like Multiverse to accommodate their world needs.
In order to load other worlds yourself, however, you must "create" them (which will, according to the JavaDocs, actually just load the worlds if their folders already exist).
See: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Bukkit.html#createWorld-org.bukkit.WorldCreator- https://hub.spigotmc.org/javadocs/spigot/org/bukkit/WorldCreator.html Code (Java):
Bukkit.createWorld(new WorldCreator("ExistingWorldNameHere"));
That's the simplest way to get a world loaded, but you can specify quite a few options like the world's seed and generator via the WorldCreator instance's methods as well. #8Rezz, Feb 16, 2020
Sorry, been pretty busy with school. Could you send me the logs from the InventoryCloseEvent, WorldSaveEvent, and InventoryClickEvent after you made that temporary fix?
I don't think this plugin needs to load a world. Just check if the world is not null and loaded where ever the world of the system is accessed.
No worries school first! I too got really busy with work, (pesky work always ruining things!). After I finish the wiring map I am working on I'll disable the ConsoleSpamFix and generate a fresh new batch of errors for you :) Thank you very much for your help!
OK got home and removed the ConsoleSpamFix plugin. Only one error is generated now and only one instance when the storage unit is closed. The other lines were needed before I changed the file so this simplifies things a bit, (hopefully).
Fresh off the hot console is the only error when you exit the inventory gui.
[18:18:53 ERROR]: Could not pass event InventoryCloseEvent to EnergeticStorage v0.7.4-SNAPSHOT java.lang.NullPointerException: Cannot invoke "org.bukkit.World.getName()" because the return value of "org.bukkit.Location.getWorld()" is null at net.seanomik.energeticstorage.utils.Utils.convertLocationToString(Utils.java:25) ~[?:?] at net.seanomik.energeticstorage.files.PlayersFile.savePlayerSystem(PlayersFile.java:178) ~[?:?] at net.seanomik.energeticstorage.gui.ESTerminalGUI.onInventoryClose(ESTerminalGUI.java:287) ~[?:?] at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor54.execute(Unknown Source) ~[?:?] at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.16.5.jar:git-Purpur-1171] at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:624) ~[patched_1.16.5.jar:git-Purpur-1171] at org.bukkit.craftbukkit.v1_16_R3.event.CraftEventFactory.handleInventoryCloseEvent(CraftEventFactory.java:1485) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.handleContainerClose(PlayerConnection.java:2616) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:2609) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:20) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PacketPlayInCloseWindow.a(PacketPlayInCloseWindow.java:7) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.PlayerConnectionUtils.lambda$ensureMainThread$1(PlayerConnectionUtils.java:55) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.TickTask.run(SourceFile:18) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.bb(MinecraftServer.java:1339) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.executeNext(MinecraftServer.java:1332) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.IAsyncTaskHandler.executeAll(IAsyncTaskHandler.java:95) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.a(MinecraftServer.java:1469) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.w(MinecraftServer.java:1142) ~[patched_1.16.5.jar:git-Purpur-1171] at net.minecraft.server.v1_16_R3.MinecraftServer.lambda$a$0(MinecraftServer.java:293) ~[patched_1.16.5.jar:git-Purpur-1171] at java.lang.Thread.run(Thread.java:831) [?:?]
On a lark could you try and include pitch and yaw in the convertLocationToString and convertStringToLocation? Sort of like what is being discussed here; https://www.spigotmc.org/threads/get-locations-pitch-and-yaw.528194/ Maybe its some weird interaction with the World Handler plugin and the EssentialsX teleport listener? I don't know I'm just being like Stabby,(Roberto) the Robot from Futurama right now, and randomly poking around.
Well after working flawlessly except for the one error, I used the sort alphabetical and search functions in the GUI and I lost access to the inventory again.
Edit* Not sure if this is related but Slimefun did another auto update when this happened. I rebooted the Server and got everything back before the update, but everything I had put into storage with the new update before the reboot was lost.
On a lark could you try and include pitch and yaw in the convertLocationToString and convertStringToLocation? Sort of like what is being discussed here; https://www.spigotmc.org/threads/get-locations-pitch-and-yaw.528194/ Maybe its some weird interaction with the World Handler plugin and the EssentialsX teleport listener? I don't know I'm just being like Stabby,(Roberto) the Robot from Futurama right now, and randomly poking around.
I don't think including pitch and yaw would change anything. The issue is during serialization. During serialization, it has to save the position of the system and in the position, it saves the coords (xyz) and the world name (in the rare occurrence that there might be two systems at the exact same coords but in two different worlds).
Well after working flawlessly except for the one error, I used the sort alphabetical and search functions in the GUI and I lost access to the inventory again.
Edit* Not sure if this is related but Slimefun did another auto-update when this happened. I rebooted the Server and got everything back before the update, but everything I had put into storage with the new update before the reboot was lost.
Did you get an error when the sort makes items disappear? So you restarted the server and all the items showed up fine?
I get an error on close, nothing seemed to be thrown on the sort. Everything that I placed before the Slimefun update came back. I lost three other storage units worth of items on the restart. Losing items must be related to Slimefun updating somehow this is twice now this has happened.
That is super weird. I feel like Slimefun shouldn't be messing with that.
I'm gonna try to store all items in NBT instead of storing them in a file. I'll send you a .jar and ask you to try it out when I get it done. This should fix the issues you're having since I won't have to store the location of systems anymore.
I appreciate the help and time thank-you. Yes this is a super weird error but no word of a lie everything seems fine until the main Slimefun plugin updates. I turned off auto-update for Slimefun for now and I'll test that .jar no problem.