From 0d02fdb5a4dfa5144184153523488b1e6b6177c1 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 20 Feb 2021 22:01:53 +0800 Subject: [PATCH] Add missing patch to structure data --- .../world/chunk/storage/ChunkLoaderMixin.java | 44 +++---------------- 1 file changed, 5 insertions(+), 39 deletions(-) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/storage/ChunkLoaderMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/storage/ChunkLoaderMixin.java index 5d2da9cc..9d8c5ab6 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/storage/ChunkLoaderMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/world/chunk/storage/ChunkLoaderMixin.java @@ -1,59 +1,25 @@ package io.izzel.arclight.common.mixin.core.world.chunk.storage; import com.google.common.collect.ImmutableList; -import com.mojang.datafixers.DataFixer; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.NBTUtil; import net.minecraft.util.RegistryKey; -import net.minecraft.util.SharedConstants; -import net.minecraft.util.datafix.DefaultTypeReferences; import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraft.world.chunk.storage.ChunkLoader; import net.minecraft.world.gen.feature.structure.LegacyStructureDataUtil; import net.minecraft.world.storage.DimensionSavedDataManager; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; import javax.annotation.Nullable; import java.util.List; -import java.util.function.Supplier; @Mixin(ChunkLoader.class) public abstract class ChunkLoaderMixin { - // @formatter:off - @Shadow public static int getDataVersion(CompoundNBT compound) { return 0; } - @Shadow @Final protected DataFixer dataFixer; - @Shadow @Nullable private LegacyStructureDataUtil field_219167_a; - // @formatter:on - - /** - * @author IzzelAliz - * @reason - */ - @Overwrite - public CompoundNBT func_235968_a_(RegistryKey p_235968_1_, Supplier p_235968_2_, CompoundNBT nbt) { - int i = getDataVersion(nbt); - if (i < 1493) { - nbt = NBTUtil.update(this.dataFixer, DefaultTypeReferences.CHUNK, nbt, i, 1493); - if (nbt.getCompound("Level").getBoolean("hasLegacyStructureData")) { - if (this.field_219167_a == null) { - this.field_219167_a = legacyDataOf(p_235968_1_, p_235968_2_.get()); - } - - nbt = this.field_219167_a.func_212181_a(nbt); - } - } - - nbt = NBTUtil.update(this.dataFixer, DefaultTypeReferences.CHUNK, nbt, Math.max(1493, i)); - if (i < SharedConstants.getVersion().getWorldVersion()) { - nbt.putInt("DataVersion", SharedConstants.getVersion().getWorldVersion()); - } - - return nbt; + @Redirect(method = "func_235968_a_", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/gen/feature/structure/LegacyStructureDataUtil;func_236992_a_(Lnet/minecraft/util/RegistryKey;Lnet/minecraft/world/storage/DimensionSavedDataManager;)Lnet/minecraft/world/gen/feature/structure/LegacyStructureDataUtil;")) + private LegacyStructureDataUtil arclight$legacyData(RegistryKey p_236992_0_, DimensionSavedDataManager p_236992_1_) { + return legacyDataOf(p_236992_0_, p_236992_1_); } /**