Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ME Level Maintainers do not work #18329

Closed
2 of 3 tasks
norbby42 opened this issue Dec 10, 2024 · 4 comments
Closed
2 of 3 tasks

ME Level Maintainers do not work #18329

norbby42 opened this issue Dec 10, 2024 · 4 comments
Labels
Bug: Minor Status: Triage Issue awaiting triage. Remove once this issue is processed

Comments

@norbby42
Copy link
Contributor

Your GTNH Discord Username

Quackers#6418

Your Pack Version

2.7.0

Your Server

Private Dedicated

Java Version

Java 17

Type of Server

Vanilla Forge

Your Expectation

Level Maintainer would be able to request and maintain an expected amount of Polyaluminium Chloride

The Reality

Placing a drop of Polyaluminium Chloride (from AE2FC) into a Level Maintainer breaks the Level Maintainer (invalid tileentity is removed after world reload) and it fails to craft. This happens whether using a 'ghost' drop from NEI, or an 'actual' drop taken out of the AE2 system.

This is the reported error in the server log after restarting:

[15:30:49] [Server thread/ERROR] [FML]: A TileEntity level_maintainer(com.glodblock.github.common.tile.TileLevelMaintainer) has thrown an exception during loading, its state cannot be restored. Report this to the mod author
java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException
at Launch//appeng.tile.events.AETileEventHandler.readFromNBT(AETileEventHandler.java:54) ~[AETileEventHandler.class:?]
at Launch//appeng.tile.AEBaseTile.func_145839_a(AEBaseTile.java:121) ~[AEBaseTile.class:?]
at Launch//net.minecraft.tileentity.TileEntity.func_145827_c(TileEntity.java:116) [aor.class:?]
at Launch//net.minecraft.world.chunk.storage.AnvilChunkLoader.loadEntities(AnvilChunkLoader.java:496) [aqk.class:?]
at Launch//net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:41) [ChunkIOProvider.class:?]
at Launch//net.minecraftforge.common.chunkio.ChunkIOProvider.callStage2(ChunkIOProvider.java:12) [ChunkIOProvider.class:?]
at Launch//net.minecraftforge.common.util.AsynchronousExecutor.skipQueue(AsynchronousExecutor.java:344) [AsynchronousExecutor.class:?]
at Launch//net.minecraftforge.common.util.AsynchronousExecutor.getSkipQueue(AsynchronousExecutor.java:302) [AsynchronousExecutor.class:?]
at Launch//net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(ChunkIOExecutor.java:12) [ChunkIOExecutor.class:?]
at Launch//net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:126) [ms.class:?]
at Launch//net.minecraft.world.gen.ChunkProviderServer.func_73158_c(ChunkProviderServer.java:101) [ms.class:?]
at Launch//net.minecraft.world.gen.ChunkProviderServer.func_73154_d(ChunkProviderServer.java:199) [ms.class:?]
at Launch//net.minecraft.world.World.func_72964_e(World.java:419) [ahb.class:?]
at Launch//net.minecraft.world.WorldServer.func_147456_g(WorldServer.java:313) [mt.class:?]
at Launch//net.minecraft.world.WorldServer.func_72835_b(WorldServer.java:183) [mt.class:?]
at Launch//net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:625) [MinecraftServer.class:?]
at Launch//net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:334) [lt.class:?]
at Launch//net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547) [MinecraftServer.class:?]
at Launch//net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427) [MinecraftServer.class:?]
at Launch//net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [li.class:?]
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
at Launch//appeng.tile.events.AETileEventHandler.readFromNBT(AETileEventHandler.java:52) ~[AETileEventHandler.class:?]
... 19 more
Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.item.ItemStack.toString()" because "itemStack" is null
at Launch//com.glodblock.github.common.tile.TileLevelMaintainer.readFromNBTEvent(TileLevelMaintainer.java:350) ~[TileLevelMaintainer.class:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[?:?]
at Launch//appeng.tile.events.AETileEventHandler.readFromNBT(AETileEventHandler.java:52) ~[AETileEventHandler.class:?]
... 19 more

Your Proposal

The Polyaluminium Chloride fluid should behave like other fluids in level maintainers and be maintainable.

Final Checklist

  • I have searched this issue tracker and there is nothing similar already. Posting on a closed issue saying the bug still exists will prompt us to investigate and reopen it once we confirm your report.
  • I can reproduce this problem consistently by follow the exact steps I described above, or this does not need reproducing, e.g. recipe loophole.
  • I have asked other people and they confirm they also have this problem by follow the exact steps I described above, or this does not need reproducing, e.g. recipe loophole.
@norbby42 norbby42 added Bug: Minor Status: Triage Issue awaiting triage. Remove once this issue is processed labels Dec 10, 2024
@norbby42
Copy link
Contributor Author

Actually, after doing some more poking around, I'm finding that I cannot setup ANY new level maintaining requests. Every new request I put in a Level Maintainer errors once I confirm it, and on restarting the server they ALL error with the same stacktrace.

@norbby42 norbby42 changed the title Polyaluminium Chloride breaks ME Level Maintainer ME Level Maintainers do not work Dec 10, 2024
@norbby42
Copy link
Contributor Author

norbby42 commented Dec 10, 2024

Made a fairly creative setup to see if I could reproduce this there. I can indeed.

This network has loads of storage (6x 16m disks in the me drive, default settings), a 4096/singularity storage crafting CPU, a controller, infinite energy, and a single processing pattern to smelt Cobblestone into Stone using the furnace on the right (there is an Import Bus under the furnace).

{81FAA38B-CFE3-4A34-8EE2-7F7727BF36F0}

{0FAA2CEB-C325-4CA8-9545-9DFA1443BD11}

{251BAB31-9981-4F3B-9EEB-3B89052C0A9B}

The crafting task can be completed successfully through the normal UI.

However, configuring the ME Level Maintainer to perform the craft results in an error:

{3461791D-0F75-43FB-AB24-124B48EA6024}

This error state persists even if the network contains the desired amount of the designated item (I moved the request to a different slot to make sure there wasn't any caching happening in the UI):

{F8EC5E4A-0EA9-4FCA-A804-9C36F0552B2F}

{6973CD8E-ADB6-4D00-A82E-BB1021441AB3}

And after restarting the world, the ME Level Maintainer lost all its TileEntity data (as shown by its orientation having gotten messed up):

{FAB66394-4EFD-4199-B6DB-28D64A90DF07}

It also generated the exact same stacktrace as posted above.

@norbby42
Copy link
Contributor Author

Did some more digging and apparently there was something wrong with my ae2fc jar. I downloaded the release version from the GTNH AE2FC github page, replaced it on both client and server and now it's behaving as expected.

Closing ticket, not an issue.

@dankeder
Copy link
Contributor

FWIW I upgraded to AE2FC 1.4.0-gtnh yesterday and the issue is still there. Old jobs are working (they are green), but any new ones I create are in "errored" state. It happens with both "fluid drops" and "items", it doesn't matter if I drag them from inventory or NEI/JEI/whatever.

However, I think I found a weird workaround: If I drag the item (or a drop of fluid) from inventory over two slots of the maintainer the slot will be configured correctly. By dragging the item I mean:

  1. Pick item from inventory
  2. Move cursor over a maintainer slot
  3. Press LMB while hovering over the slot
  4. Move the cursor to the next slot
  5. Release the LMB
  6. Configure the first slot as usual (set number of items + batch size, click the green button on the right)
  7. Clear the second slot (it contains the same item as the first one, no need to keep it configured)

It's crazy, but it worked in my case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug: Minor Status: Triage Issue awaiting triage. Remove once this issue is processed
Projects
None yet
Development

No branches or pull requests

2 participants