diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/ChunkMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/ChunkMixin.java index 7b825759..ac394632 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/ChunkMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/ChunkMixin.java @@ -4,7 +4,9 @@ import io.izzel.arclight.common.bridge.world.WorldBridge; import io.izzel.arclight.common.bridge.world.chunk.ChunkBridge; import net.minecraft.block.Block; import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; import net.minecraft.fluid.Fluid; +import net.minecraft.util.ClassInheritanceMultiMap; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.palette.UpgradeData; @@ -30,6 +32,8 @@ import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import javax.annotation.Nullable; +import java.util.Arrays; +import java.util.List; import java.util.function.Consumer; @Mixin(Chunk.class) @@ -42,6 +46,7 @@ public abstract class ChunkMixin implements ChunkBridge { @Shadow private volatile boolean dirty; @Shadow private boolean hasEntities; @Shadow private long lastSaveTime; + @Shadow @Final public ClassInheritanceMultiMap[] entityLists; // @formatter:on public org.bukkit.Chunk bukkitChunk; @@ -59,6 +64,11 @@ public abstract class ChunkMixin implements ChunkBridge { bridge$setBukkitChunk(new CraftChunk((Chunk) (Object) this)); } + @SuppressWarnings("unchecked") + public List[] getEntitySlices() { + return Arrays.stream(this.entityLists).map(ClassInheritanceMultiMap::func_241289_a_).toArray(List[]::new); + } + public org.bukkit.Chunk getBukkitChunk() { return bukkitChunk; }