From 0601dd05e2ac7be57fdf3b5850efd7e9cc42dbe2 Mon Sep 17 00:00:00 2001 From: Kogepan229 Date: Mon, 19 May 2025 00:39:31 +0900 Subject: [PATCH] Prevent Waila from overwriting tileentity --- .../LevelMaintainerWailaDataProvider.java | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvider.java b/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvider.java index 8b81a9bd..d8926423 100644 --- a/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvider.java +++ b/src/main/java/com/glodblock/github/crossmod/waila/tile/LevelMaintainerWailaDataProvider.java @@ -5,8 +5,10 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; +import net.minecraftforge.common.util.Constants; import com.glodblock.github.common.tile.TileLevelMaintainer; import com.glodblock.github.crossmod.waila.Tooltip; @@ -22,17 +24,24 @@ public class LevelMaintainerWailaDataProvider extends BaseWailaDataProvider { final IWailaDataAccessor accessor, final IWailaConfigHandler config) { final TileEntity te = accessor.getTileEntity(); if (te instanceof TileLevelMaintainer tileLevelMaintainer) { - te.readFromNBT(accessor.getNBTData()); - for (int i = 0; i < TileLevelMaintainer.REQ_COUNT; i++) { - TileLevelMaintainer.RequestInfo request = tileLevelMaintainer.requests[i]; - if (request == null) continue; - currentToolTip.add( - Tooltip.tileLevelMaintainerFormat( - request.getAEItemStack().getItemStack().getDisplayName(), - request.getQuantity(), - request.getBatchSize(), - request.isEnable())); + NBTTagCompound data = accessor.getNBTData(); + if (data.hasKey("Requests")) { + NBTTagList tagList = data.getTagList("Requests", Constants.NBT.TAG_COMPOUND); + for (int i = 0; i < tagList.tagCount(); i++) { + NBTTagCompound tag = tagList.getCompoundTagAt(i); + if (tag == null || !tag.hasKey("stack")) continue; + TileLevelMaintainer.RequestInfo request = new TileLevelMaintainer.RequestInfo( + tag, + tileLevelMaintainer); + currentToolTip.add( + Tooltip.tileLevelMaintainerFormat( + request.getAEItemStack().getItemStack().getDisplayName(), + request.getQuantity(), + request.getBatchSize(), + request.isEnable())); + + } } } return currentToolTip;