Chests++

Chests++

16.6k Downloads

Chest did not delete correctly, keeps throwing exception Player must not be a null.

Theridgeback opened this issue ยท 8 comments

commented

Created a linked chest to move stuff from one location to another, filed it with items
Created a 2nd & 3rd linked chest, again all ok.
broke the first chest,
The chest disappeared, the sign disappeared, but the item that was on the sign has stayed.
Recreated the chest and link.
Emptied the chest, but the item still stays and now appears to be permanent in the game.

Also it keep throwing up an exception.
Not sure if this will help.

Still throws on reboot of server same details

Spigot 1.18.1 Apple Mac. 16G allocated to server.

[08:28:24 WARN]: [ChestsPlusPlus] Task #20 for ChestsPlusPlus v2.5.1-Release generated an exception
java.lang.IllegalArgumentException: player must not be null
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145) ~[guava-31.0.1-jre.jar:?]
at org.bukkit.craftbukkit.v1_18_R1.CraftServer.craftItem(CraftServer.java:1346) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at org.bukkit.Bukkit.craftItem(Bukkit.java:890) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at com.jamesdpeters.minecraft.chests.latest.Crafting.craft(Crafting.java:15) ~[?:?]
at com.jamesdpeters.minecraft.chests.crafting.Crafting.craft(Crafting.java:40) ~[?:?]
at com.jamesdpeters.minecraft.chests.interfaces.VirtualCraftingHolder.craftItem(VirtualCraftingHolder.java:413) ~[?:?]
at com.jamesdpeters.minecraft.chests.interfaces.VirtualCraftingHolder.craftItem(VirtualCraftingHolder.java:263) ~[?:?]
at com.jamesdpeters.minecraft.chests.interfaces.VirtualCraftingHolder$CraftItems.run(VirtualCraftingHolder.java:226) ~[?:?]
at org.bukkit.craftbukkit.v1_18_R1.scheduler.CraftTask.run(CraftTask.java:82) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at org.bukkit.craftbukkit.v1_18_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:415) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1255) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:428) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1206) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1034) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:304) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at java.lang.Thread.run(Thread.java:833) [?:?]

I might try a total reboot and see if its a memory allocation issue.
I have had a quick look at the storage.yml file and cant see anything with the chest data

commented

Hi James.

Latest Beta installed and tested.
Appears to be working correctly.
Had a chest full of iron, logged on and was working correctly.
Disconnected, No exceptions being thrown.
All seems to be working.
Nice work

Mac.

commented

Nice one! Thanks for testing and letting me know! ๐Ÿ‘๐Ÿป

commented

Full reboot of Apple mac,
Still throwing Exceptions one a second.

All plugins removed and restarted.
Still the same.

Everything including setup folder removed, aka fresh install of plugin.
Sucess.
No exception....
Restoring the world and trying the last thing added.
Now the issue might be the auto craft as that was the last thing i added.
Yup deleted the autocraft item and it stopped throwing the exception,
But it left an image of the iron block....

commented

Just an update, deleted the autocraft item in the game and checked the storage.yml file, and it was deleted correctly and shows no entries.
Recreated the autocraft and it throws the exception straight away.
This time with a different nodes must be presented.

here's a list from the storage followed by the exception.
My Minecraft id has been removed, but corresponds with all occurrences within the file.

MyMinecraftid :
  IBM:
    ==: AutoCraftingStorage
    locationInfo:
    - ==: LocationInfo
      Location:
        ==: org.bukkit.Location
        world: TheBoys1.18
        x: -2944.0
        y: 58.0
        z: -2953.0
        pitch: 0.0
        yaw: 0.0
    playerUUID: MyMinecraftid 
    members: null
    isPublic: false
    recipe:
      ==: C++Recipe
      namespace: minecraft
      key: iron_block
    identifier: IBM

Exception this time.
[11:37:13 INFO]: [GriefPrevention] (MyMinecraftname) placed a sign @ TheBoys1.18: x-2944, z-2954;[AutoCraft];[IBM]
[11:37:13 WARN]: [ChestsPlusPlus] Plugin ChestsPlusPlus v2.5.1-Release generated an exception while executing task 987
java.lang.NullPointerException: Nodes must be provided.
at org.yaml.snakeyaml.nodes.NodeTuple.(NodeTuple.java:28) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representMapping(BaseRepresenter.java:164) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.SafeRepresenter$RepresentMap.representData(SafeRepresenter.java:321) ~[snakeyaml-1.30.jar:?]
at org.bukkit.configuration.file.YamlRepresenter$RepresentConfigurationSerializable.representData(YamlRepresenter.java:30) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representData(BaseRepresenter.java:95) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representSequence(BaseRepresenter.java:134) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.SafeRepresenter$RepresentArray.representData(SafeRepresenter.java:219) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representData(BaseRepresenter.java:95) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representMapping(BaseRepresenter.java:157) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.SafeRepresenter$RepresentMap.representData(SafeRepresenter.java:321) ~[snakeyaml-1.30.jar:?]
at org.bukkit.configuration.file.YamlRepresenter$RepresentConfigurationSerializable.representData(YamlRepresenter.java:30) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representData(BaseRepresenter.java:95) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representMapping(BaseRepresenter.java:157) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.SafeRepresenter$RepresentMap.representData(SafeRepresenter.java:321) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representData(BaseRepresenter.java:95) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representMapping(BaseRepresenter.java:157) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.SafeRepresenter$RepresentMap.representData(SafeRepresenter.java:321) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representData(BaseRepresenter.java:95) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representMapping(BaseRepresenter.java:157) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.SafeRepresenter$RepresentMap.representData(SafeRepresenter.java:321) ~[snakeyaml-1.30.jar:?]
at org.bukkit.configuration.file.YamlRepresenter$RepresentConfigurationSerializable.representData(YamlRepresenter.java:30) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.representData(BaseRepresenter.java:95) ~[snakeyaml-1.30.jar:?]
at org.yaml.snakeyaml.representer.BaseRepresenter.represent(BaseRepresenter.java:65) ~[snakeyaml-1.30.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.toNodeTree(YamlConfiguration.java:187) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.YamlConfiguration.saveToString(YamlConfiguration.java:77) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.configuration.file.FileConfiguration.save(FileConfiguration.java:65) ~[spigot-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at com.jamesdpeters.minecraft.chests.serialize.Config.save(Config.java:67) ~[?:?]
at org.bukkit.craftbukkit.v1_18_R1.scheduler.CraftTask.run(CraftTask.java:82) ~[spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at org.bukkit.craftbukkit.v1_18_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [spigot-1.18.1-R0.1-SNAPSHOT.jar:3396-Spigot-f4ff00f-f3828bb]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]

hope these logs can help.

commented

The first error should fixed in the latest beta

commented

Just installed the Beta.
It appears to be working correctly now, no Exceptions,
Also the issue of the phantom remaining block has also disappeared,

commented

Ok, sussed the player must not be null Exception.

I have an iron farm in a permanently loaded chunk this feeds into a Linked chest, this is fine.
I have a second linked chest, in a different permanently loaded chunk.
Under that chest I have a hopper and an auto crafting table making Iron blocks.

This also works and crafts the blocks as and when the iron is deposited when i am online.

However as soon as i log off and the chest loads up with Iron, the crafting throws the exception and doesn't craft,
the Iron just stores in the chest which is fine.

Hope this helps.

commented

@Theridgeback can you try the new beta and see if this solves your problem?

https://github.com/JamesPeters98/ChestsPlusPlus/releases/tag/v2.5.2-Beta-4