BloodMagic
BloodMagic copied to clipboard
TileSpectral
Issue Description:
Note: If this bug occurs in a modpack, please report this to the modpack author. Otherwise, delete this line and add your description here. If this is a feature request, this template does not apply to you. Just delete everything.
What happens: An error in the TileSpectral block prohibits sending and rendering the chunk where it is to the client
What you expected to happen:
Steps to reproduce:
-
It happens occasionally, as I own a server and several players reported this error to me, I bring it here. Not even WorldEdit can replace the block. however, this block appears in places where players had not yet started playing blood magic
-
This server is running Arclight version arclight-1.20.1-1.0.4-fd335c1 (MC: 1.20.1) (Implementing API version 1.20.1-R0.1-SNAPSHOT) ...
Affected Versions (Do not use "latest"):
- BloodMagic: 1.20.1-3.3.2-44
- Minecraft: 1.20.1
- Forge: 47.0.20
Sorry about my English. Is there any way to remove this block through the mod? or get his coordinates
I got a command from ATM's redit to remove the blocks, from the sigil of suppression /fill ~-10 ~-10 ~-10 ~25 ~14 ~25 minecraft:air replace bloodmagic:spectral apparently happens when there are more than 1000 blocks
We are having similar issue with this block on our server. It corrupted earlier and was restricting players from logging on. Please could this be fixed? Also that block has missing texture fyi.



Running into the same problem. Anyone have any solutions?
I'm also experiencing this issue while using 1.20.1-3.3.3.45 in ATM9 (also Forge 47.2.20). I've been successful in using Reaviik's command to remove some of the offending blocks from around the server, but the warnings have completely eclipsed my console and the corrupted areas are causing players to fail to render nearby chunks or be disconnected outright.
I'm unable to upload a patch file. But for those who know how to make a build and apply a git patch.
It's not a good way to resolve it. But it does the trick on my server .. Not sure if it is breaking any logic. Only required on the server.
diff --git a/src/main/java/wayoftime/bloodmagic/common/tile/TileSpectral.java b/src/main/java/wayoftime/bloodmagic/common/tile/TileSpectral.java
index e78e24861..1579f5767 100644
--- a/src/main/java/wayoftime/bloodmagic/common/tile/TileSpectral.java
+++ b/src/main/java/wayoftime/bloodmagic/common/tile/TileSpectral.java
@@ -6,6 +6,7 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.NbtUtils;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
+import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.LiquidBlock;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
@@ -55,7 +56,12 @@ public class TileSpectral extends TileBase
public void revertToFluid()
{
- level.setBlock(worldPosition, storedBlock, 3);
+ if (storedBlock != null) {
+ level.setBlock(worldPosition, storedBlock, 3);
+ } else {
+ com.mojang.logging.LogUtils.getLogger().error("Removing spectral with air at {}", worldPosition.toString());
+ level.setBlock(worldPosition, Blocks.AIR.defaultBlockState(), 20);
+ }
// BlockState fluidState = Block.getStateById(meta);
}
@@ -67,19 +73,24 @@ public class TileSpectral extends TileBase
public void setContainedBlockInfo(BlockState state)
{
storedBlock = state;
-
}
@Override
public void deserialize(CompoundTag tag)
{
- storedBlock = NbtUtils.readBlockState(this.level.holderLookup(Registries.BLOCK), tag.getCompound("BlockState"));
+ try {
+ storedBlock = NbtUtils.readBlockState(this.level.holderLookup(Registries.BLOCK), tag.getCompound("BlockState"));
+ } catch (Exception ignored) {
+ }
}
@Override
public CompoundTag serialize(CompoundTag tag)
{
- tag.put("BlockState", NbtUtils.writeBlockState(storedBlock));
+ try {
+ tag.put("BlockState", NbtUtils.writeBlockState(storedBlock));
+ } catch (Exception ignored) {
+ }
return tag;
}
}