Fix missing customDimensions field (#896)
This commit is contained in:
parent
f76be9aab0
commit
333260d50d
|
@ -1,13 +1,23 @@
|
||||||
package io.izzel.arclight.common.mixin.core.world.storage;
|
package io.izzel.arclight.common.mixin.core.world.storage;
|
||||||
|
|
||||||
|
import com.mojang.serialization.DataResult;
|
||||||
|
import com.mojang.serialization.DynamicOps;
|
||||||
import com.mojang.serialization.Lifecycle;
|
import com.mojang.serialization.Lifecycle;
|
||||||
import io.izzel.arclight.common.bridge.core.world.storage.WorldInfoBridge;
|
import io.izzel.arclight.common.bridge.core.world.storage.WorldInfoBridge;
|
||||||
|
import net.minecraft.core.Registry;
|
||||||
|
import net.minecraft.core.RegistryAccess;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket;
|
import net.minecraft.network.protocol.game.ClientboundChangeDifficultyPacket;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.Difficulty;
|
import net.minecraft.world.Difficulty;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.LevelSettings;
|
import net.minecraft.world.level.LevelSettings;
|
||||||
|
import net.minecraft.world.level.dimension.LevelStem;
|
||||||
|
import net.minecraft.world.level.levelgen.WorldDimensions;
|
||||||
|
import net.minecraft.world.level.levelgen.WorldGenSettings;
|
||||||
|
import net.minecraft.world.level.levelgen.WorldOptions;
|
||||||
import net.minecraft.world.level.storage.PrimaryLevelData;
|
import net.minecraft.world.level.storage.PrimaryLevelData;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
@ -18,6 +28,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
@Mixin(PrimaryLevelData.class)
|
@Mixin(PrimaryLevelData.class)
|
||||||
|
@ -33,6 +44,12 @@ public abstract class PrimaryLevelDataMixin implements WorldInfoBridge {
|
||||||
// @formatter:on
|
// @formatter:on
|
||||||
|
|
||||||
public ServerLevel world;
|
public ServerLevel world;
|
||||||
|
public Registry<LevelStem> customDimensions;
|
||||||
|
|
||||||
|
@Redirect(method = "setTagData", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/levelgen/WorldGenSettings;encode(Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/world/level/levelgen/WorldOptions;Lnet/minecraft/core/RegistryAccess;)Lcom/mojang/serialization/DataResult;"))
|
||||||
|
private <T extends Tag> DataResult<T> arclight$customDim(DynamicOps<T> ops, WorldOptions options, RegistryAccess registry) {
|
||||||
|
return WorldGenSettings.encode(ops, options, new WorldDimensions(this.customDimensions != null ? this.customDimensions : registry.registryOrThrow(Registries.LEVEL_STEM)));
|
||||||
|
}
|
||||||
|
|
||||||
@Inject(method = "setThundering", cancellable = true, at = @At("HEAD"))
|
@Inject(method = "setThundering", cancellable = true, at = @At("HEAD"))
|
||||||
private void arclight$thunder(boolean thunderingIn, CallbackInfo ci) {
|
private void arclight$thunder(boolean thunderingIn, CallbackInfo ci) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user