EnergeticStorage icon indicating copy to clipboard operation
EnergeticStorage copied to clipboard

[Bug] Spamming of error in console

Open GitNuck opened this issue 4 years ago • 28 comments

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 2021-09-19_12 47 38

GitNuck avatar Sep 19 '21 18:09 GitNuck

Plugins; 2021-09-19_13 12 57

GitNuck avatar Sep 19 '21 19:09 GitNuck

That's a weird error. I'll take a look at it soon.

SeanOMik avatar Sep 20 '21 03:09 SeanOMik

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?

GitNuck avatar Sep 20 '21 20:09 GitNuck

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.

SeanOMik avatar Sep 20 '21 20:09 SeanOMik

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 avatar Sep 20 '21 22:09 GitNuck

@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

SeanOMik avatar Sep 21 '21 02:09 SeanOMik

Excellent! I'll load up the file and report back. *Tried it and immediately the console was flooded with the same errors.

GitNuck avatar Sep 21 '21 04:09 GitNuck

@GitNuck Even though the errors are shown in the console, does everything work fine?

SeanOMik avatar Sep 26 '21 15:09 SeanOMik

Yes it does, but the lag created by the console getting spammed 3x a second is real.

GitNuck avatar Sep 26 '21 20:09 GitNuck

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!

SeanOMik avatar Sep 27 '21 17:09 SeanOMik

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.

GitNuck avatar Sep 27 '21 23:09 GitNuck

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.

GitNuck avatar Sep 27 '21 23:09 GitNuck

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.

GitNuck avatar Sep 28 '21 01:09 GitNuck

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) [?:?]

2021-09-27_23 24 09 2021-09-27_23 27 42 2021-09-27_23 27 49 2021-09-27_23 27 57 2021-09-27_23 28 02

GitNuck avatar Sep 28 '21 05:09 GitNuck

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.

SeanOMik avatar Sep 28 '21 14:09 SeanOMik

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.

GitNuck avatar Sep 28 '21 19:09 GitNuck

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

GitNuck avatar Sep 29 '21 04:09 GitNuck

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.

GitNuck avatar Sep 29 '21 06:09 GitNuck

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

GitNuck avatar Sep 29 '21 06:09 GitNuck

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.

SeanOMik avatar Sep 30 '21 19:09 SeanOMik

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!

GitNuck avatar Sep 30 '21 20:09 GitNuck

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) [?:?]

GitNuck avatar Oct 02 '21 00:10 GitNuck

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.

GitNuck avatar Oct 09 '21 08:10 GitNuck

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. 2021-10-09_11 44 58 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.

GitNuck avatar Oct 09 '21 17:10 GitNuck

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. 2021-10-09_11 44 58 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?

SeanOMik avatar Oct 11 '21 03:10 SeanOMik

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.

GitNuck avatar Oct 11 '21 05:10 GitNuck

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.

SeanOMik avatar Oct 11 '21 21:10 SeanOMik

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.

GitNuck avatar Oct 12 '21 03:10 GitNuck