UtilitiX

UtilitiX

2M Downloads

Experience Crystal Bug

JenniferFer opened this issue ยท 6 comments

commented

Minecraft version

1.19.2

LibX version

4.2.8

UtilitiX version

0.7.7

Forge version

43.2.6

The latest.log file

https://mclo.gs/H4wSwZn

Issue description

crystal experience is stuck at 0, it doesn't pull more than that every time it ends up stopping and not storing more experience

Steps to reproduce

1 put experiencie crystal
2 not working ;-;

Other information

mod pack atm 8

commented

Oh yay, one of those bugs
I have just retested this after a game restart and cannot get it to "break" again, i guess it's an intermittent bug.

commented

I tried with ATM 8 1.0.15 and wasn't able to reproduce your described problem. I didn't even understand the real problem. You want to pull experience even if it's already on 0 xp? That's impossible. Storing experience was very easy.

commented

i think this user is one i am speaking to in discord now.
there seems to be an issue where the Mob grinding utils absorption hopper does not push the XP to the crystal, either at all, or very rarely, crappy test pic from my test world attached, note the hopper still has fluid xp
2023-04-10_18 55 23
i can ping you in the conversation, or it's in #suggestions in the Allthemods discord

commented

I tried to reproduce it, but still failing to fail. Is there anything I'm doing wrong?

2023-04-10.13-54-48.mp4
commented

I think the problem is Mob Grinding Utils.
I created a patch for them:

diff --git a/MobGrindingUtils/MobGrindingUtils/src/main/java/mob_grinding_utils/tile/TileEntityAbsorptionHopper.java b/MobGrindingUtils/MobGrindingUtils/src/main/java/mob_grinding_utils/tile/TileEntityAbsorptionHopper.java
index a7b2987..6485081 100644
--- a/MobGrindingUtils/MobGrindingUtils/src/main/java/mob_grinding_utils/tile/TileEntityAbsorptionHopper.java
+++ b/MobGrindingUtils/MobGrindingUtils/src/main/java/mob_grinding_utils/tile/TileEntityAbsorptionHopper.java
@@ -249,9 +249,8 @@ public class TileEntityAbsorptionHopper extends TileEntityInventoryHelper implem
 							int tanks = receptacle.getTanks();
 							for (int x = 0; x < tanks; x++) {
 								if (receptacle.getTankCapacity(x) > 0) {
-									FluidStack contents = receptacle.getFluidInTank(x);
 									if (!tile.tank.getFluid().isEmpty()) {
-										if (contents.isEmpty() || contents.getAmount() <= receptacle.getTankCapacity(x) - 100 && contents.containsFluid(new FluidStack(tile.tank.getFluid(), 1))) {
+										if (receptacle.isFluidValid(100, tile.tank.getFluid())) {
 											receptacle.fill(tile.tank.drain(new FluidStack(tile.tank.getFluid(), 100), FluidAction.EXECUTE), FluidAction.EXECUTE);
 											tile.setChanged();
 										}

I didn't test it but I think that this would fix the problem. Or at least something similar. Because they check if exactly their fluid is in the tank, not if the fluid is accepted. Maybe it's intended. I don't have enough time to do a PR now, or create an issue.

commented

I'm closing this since it's not UtilitiX' fault.