From 00a1fba694cbedcbd49adff5c221eed1ca62d8a2 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 3 Feb 2026 16:33:42 +0000 Subject: [PATCH] 26.1-snapshot-6 --- .../gametest/threading/MinecraftMixin.java | 7 +- .../world/CreateWorldScreenMixin.java | 2 +- .../impl/attachment/AttachmentSavedData.java | 3 +- .../DimensionStorageFileFixMixin.java | 47 +++++++++++++ .../fabric-data-attachment-api-v1.mixins.json | 1 + .../dimension_type/void_type.json | 3 +- .../MinecraftGameRuleServiceImplTest.java | 2 +- .../StructureTemplateManagerMixin.java | 68 +++++++++---------- .../fabric-gametest-api-v1.classtweaker | 4 +- ...SimpleJsonResourceReloadListenerMixin.java | 2 +- ...eMixin.java => SavedDataStorageMixin.java} | 6 +- .../fabric-object-builder-v1.mixins.json | 2 +- .../builder/DimensionDataStorageTest.java | 2 +- ...SimpleJsonResourceReloadListenerMixin.java | 2 +- .../mixin/resource/MinecraftServerMixin.java | 4 +- gradle.properties | 2 +- 16 files changed, 106 insertions(+), 51 deletions(-) create mode 100644 fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/DimensionStorageFileFixMixin.java rename fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/{DimensionDataStorageMixin.java => SavedDataStorageMixin.java} (92%) diff --git a/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/threading/MinecraftMixin.java b/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/threading/MinecraftMixin.java index 3a293fcb16..f8f0508d88 100644 --- a/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/threading/MinecraftMixin.java +++ b/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/threading/MinecraftMixin.java @@ -16,6 +16,8 @@ package net.fabricmc.fabric.mixin.client.gametest.threading; +import java.util.Optional; + import com.google.common.base.Preconditions; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod; @@ -34,6 +36,7 @@ import net.minecraft.client.gui.screens.Screen; import net.minecraft.server.WorldStem; import net.minecraft.server.packs.repository.PackRepository; import net.minecraft.util.thread.BlockableEventLoop; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.storage.LevelStorageSource; import net.fabricmc.fabric.impl.client.gametest.TestSystemProperties; @@ -108,10 +111,10 @@ public class MinecraftMixin { } @Inject(method = "doWorldLoad", at = @At("HEAD"), cancellable = true) - private void deferStartIntegratedServer(LevelStorageSource.LevelStorageAccess storageAccess, PackRepository dataPackManager, WorldStem worldStem, boolean newWorld, CallbackInfo ci) { + private void deferStartIntegratedServer(LevelStorageSource.LevelStorageAccess storageAccess, PackRepository dataPackManager, WorldStem worldStem, Optional gameRules, boolean newWorld, CallbackInfo ci) { if (ThreadingImpl.taskToRun != null) { // don't start the integrated server (which busywaits) inside a task - deferredTask = () -> Minecraft.getInstance().doWorldLoad(storageAccess, dataPackManager, worldStem, newWorld); + deferredTask = () -> Minecraft.getInstance().doWorldLoad(storageAccess, dataPackManager, worldStem, gameRules, newWorld); ci.cancel(); } } diff --git a/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/world/CreateWorldScreenMixin.java b/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/world/CreateWorldScreenMixin.java index 89e2bf819b..409d130005 100644 --- a/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/world/CreateWorldScreenMixin.java +++ b/fabric-client-gametest-api-v1/src/client/java/net/fabricmc/fabric/mixin/client/gametest/world/CreateWorldScreenMixin.java @@ -40,7 +40,7 @@ public class CreateWorldScreenMixin { @Inject(method = "onCreate", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screens/worldselection/WorldOpenFlows;confirmWorldCreation(Lnet/minecraft/client/Minecraft;Lnet/minecraft/client/gui/screens/worldselection/CreateWorldScreen;Lcom/mojang/serialization/Lifecycle;Ljava/lang/Runnable;Z)V"), cancellable = true) private void createLevelDataForServers(CallbackInfo ci, @Local(name = "finalLayers") LayeredRegistryAccess finalLayers, @Local(name = "worldData") PrimaryLevelData worldData) { if (DedicatedServerImplUtil.saveLevelDataTo != null) { - CompoundTag levelDatInner = worldData.createTag(finalLayers.compositeAccess(), null); + CompoundTag levelDatInner = worldData.createTag(null); CompoundTag levelDat = new CompoundTag(); levelDat.put("Data", levelDatInner); diff --git a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/impl/attachment/AttachmentSavedData.java b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/impl/attachment/AttachmentSavedData.java index 5c3dd09f45..18200ee32c 100644 --- a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/impl/attachment/AttachmentSavedData.java +++ b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/impl/attachment/AttachmentSavedData.java @@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; +import net.minecraft.resources.Identifier; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.ProblemReporter; import net.minecraft.world.level.saveddata.SavedData; @@ -40,7 +41,7 @@ import net.minecraft.world.level.storage.ValueInput; */ public class AttachmentSavedData extends SavedData { private static final Logger LOGGER = LoggerFactory.getLogger(AttachmentSavedData.class); - public static final String ID = "fabric_attachments"; + public static final Identifier ID = Identifier.fromNamespaceAndPath("fabric", "attachments"); private final AttachmentTargetImpl levelTarget; private final boolean wasSerialized; diff --git a/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/DimensionStorageFileFixMixin.java b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/DimensionStorageFileFixMixin.java new file mode 100644 index 0000000000..ecb50c1439 --- /dev/null +++ b/fabric-data-attachment-api-v1/src/main/java/net/fabricmc/fabric/mixin/attachment/DimensionStorageFileFixMixin.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2016, 2017, 2018, 2019 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.fabricmc.fabric.mixin.attachment; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +import net.minecraft.util.filefix.fixes.DimensionStorageFileFix; +import net.minecraft.util.filefix.operations.FileFixOperation; +import net.minecraft.util.filefix.operations.FileFixOperations; + +@Mixin(DimensionStorageFileFix.class) +abstract class DimensionStorageFileFixMixin { + @ModifyArg( + method = "makeFixer", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/util/filefix/operations/FileFixOperations;applyInFolders(Lnet/minecraft/util/filefix/access/FileRelation;Ljava/util/List;)Lnet/minecraft/util/filefix/operations/ApplyInFolders;", + ordinal = 1 + ), + index = 1 + ) + private List addFabricAttachmentsMigration(List original) { + List operations = new ArrayList<>(original); + operations.add(FileFixOperations.move("fabric_attachments.dat", "fabric/attachments.dat")); + return Collections.unmodifiableList(operations); + } +} diff --git a/fabric-data-attachment-api-v1/src/main/resources/fabric-data-attachment-api-v1.mixins.json b/fabric-data-attachment-api-v1/src/main/resources/fabric-data-attachment-api-v1.mixins.json index 4cb049dea8..674bd0c47e 100644 --- a/fabric-data-attachment-api-v1/src/main/resources/fabric-data-attachment-api-v1.mixins.json +++ b/fabric-data-attachment-api-v1/src/main/resources/fabric-data-attachment-api-v1.mixins.json @@ -10,6 +10,7 @@ "ClientboundCustomPayloadPacketAccessor", "ChunkHolderMixin", "ConnectionMixin", + "DimensionStorageFileFixMixin", "EntityMixin", "ImposterProtoChunkMixin", "LevelChunkMixin", diff --git a/fabric-dimensions-v1/src/testmod/resources/data/fabric_dimension/dimension_type/void_type.json b/fabric-dimensions-v1/src/testmod/resources/data/fabric_dimension/dimension_type/void_type.json index 153f947ece..54274b0953 100644 --- a/fabric-dimensions-v1/src/testmod/resources/data/fabric_dimension/dimension_type/void_type.json +++ b/fabric-dimensions-v1/src/testmod/resources/data/fabric_dimension/dimension_type/void_type.json @@ -15,5 +15,6 @@ "min_y": 0, "effects": "fabric_dimension:void", "monster_spawn_block_light_limit": 15, - "monster_spawn_light_level": 15 + "monster_spawn_light_level": 15, + "has_ender_dragon_fight": false } diff --git a/fabric-game-rule-api-v1/src/test/java/net/fabricmc/fabric/test/gamerule/MinecraftGameRuleServiceImplTest.java b/fabric-game-rule-api-v1/src/test/java/net/fabricmc/fabric/test/gamerule/MinecraftGameRuleServiceImplTest.java index 16d37028b0..b95133d50a 100644 --- a/fabric-game-rule-api-v1/src/test/java/net/fabricmc/fabric/test/gamerule/MinecraftGameRuleServiceImplTest.java +++ b/fabric-game-rule-api-v1/src/test/java/net/fabricmc/fabric/test/gamerule/MinecraftGameRuleServiceImplTest.java @@ -139,7 +139,7 @@ public class MinecraftGameRuleServiceImplTest { DedicatedServer server = mock(DedicatedServer.class); WorldData worldData = mock(WorldData.class); when(server.getWorldData()).thenReturn(worldData); - when(worldData.getGameRules()).thenReturn(this.gameRules); + when(server.getGameRules()).thenReturn(this.gameRules); return server; } diff --git a/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTemplateManagerMixin.java b/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTemplateManagerMixin.java index ba7b95a445..dc1727abdd 100644 --- a/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTemplateManagerMixin.java +++ b/fabric-gametest-api-v1/src/main/java/net/fabricmc/fabric/mixin/gametest/StructureTemplateManagerMixin.java @@ -26,8 +26,6 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.datafixers.DataFixer; import org.apache.commons.io.IOUtils; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -39,47 +37,49 @@ import net.minecraft.resources.FileToIdConverter; import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.util.datafix.DataFixTypes; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager; +import net.minecraft.world.level.levelgen.structure.templatesystem.loader.TemplateSource; import net.minecraft.world.level.storage.LevelStorageSource; import net.fabricmc.fabric.impl.gametest.FabricGameTestRunner; @Mixin(StructureTemplateManager.class) public abstract class StructureTemplateManagerMixin { - @Shadow - private ResourceManager resourceManager; - - @Shadow - public abstract StructureTemplate readStructure(CompoundTag compoundTag); - - @Unique - private Optional fabric_loadSnbtFromResource(Identifier id) { - Identifier path = FabricGameTestRunner.GAMETEST_STRUCTURE_FINDER.idToFile(id); - Optional resource = this.resourceManager.getResource(path); - - if (resource.isPresent()) { - try { - String snbt = IOUtils.toString(resource.get().openAsReader()); - CompoundTag tag = NbtUtils.snbtToStructure(snbt); - return Optional.of(this.readStructure(tag)); - } catch (IOException | CommandSyntaxException e) { - throw new RuntimeException("Failed to load GameTest structure " + id, e); - } - } - - return Optional.empty(); - } - - @Unique - private Stream streamTemplatesFromResource() { - FileToIdConverter finder = FabricGameTestRunner.GAMETEST_STRUCTURE_FINDER; - return finder.listMatchingResources(this.resourceManager).keySet().stream().map(finder::fileToId); - } - @Inject(method = "", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList$Builder;add(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;", ordinal = 2, shift = At.Shift.AFTER)) - private void addFabricTemplateProvider(ResourceManager resourceManager, LevelStorageSource.LevelStorageAccess storageAccess, DataFixer dataFixer, HolderGetter blockLookup, CallbackInfo ci, @Local(name = "builder") ImmutableList.Builder builder) { - builder.add(new StructureTemplateManager.Source(this::fabric_loadSnbtFromResource, this::streamTemplatesFromResource)); + private void addFabricTemplateProvider(ResourceManager resourceManager, LevelStorageSource.LevelStorageAccess storageAccess, DataFixer dataFixer, HolderGetter blockLookup, CallbackInfo ci, @Local(name = "sources") ImmutableList.Builder builder) { + builder.add(new TemplateSource(dataFixer, blockLookup) { + @Override + public Optional load(Identifier id) { + Identifier path = FabricGameTestRunner.GAMETEST_STRUCTURE_FINDER.idToFile(id); + Optional resource = resourceManager.getResource(path); + + if (resource.isPresent()) { + try { + String snbt = IOUtils.toString(resource.get().openAsReader()); + CompoundTag tag = NbtUtils.snbtToStructure(snbt); + + // Replicate readStructure logic from TemplateSource + StructureTemplate structureTemplate = new StructureTemplate(); + int version = NbtUtils.getDataVersion(tag, 500); + structureTemplate.load(blockLookup, DataFixTypes.STRUCTURE.updateToCurrentVersion(dataFixer, tag, version)); + + return Optional.of(structureTemplate); + } catch (IOException | CommandSyntaxException e) { + throw new RuntimeException("Failed to load GameTest structure " + id, e); + } + } + + return Optional.empty(); + } + + @Override + public Stream list() { + FileToIdConverter finder = FabricGameTestRunner.GAMETEST_STRUCTURE_FINDER; + return finder.listMatchingResources(resourceManager).keySet().stream().map(finder::fileToId); + } + }); } } diff --git a/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.classtweaker b/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.classtweaker index 8401989944..2dd2388050 100644 --- a/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.classtweaker +++ b/fabric-gametest-api-v1/src/main/resources/fabric-gametest-api-v1.classtweaker @@ -1,6 +1,6 @@ classTweaker v1 official -accessible class net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager$Source -accessible method net/minecraft/world/level/levelgen/structure/templatesystem/StructureTemplateManager$Source (Ljava/util/function/Function;Ljava/util/function/Supplier;)V +accessible class net/minecraft/world/level/levelgen/structure/templatesystem/loader/TemplateSource +accessible method net/minecraft/world/level/levelgen/structure/templatesystem/loader/TemplateSource (Lcom/mojang/datafixers/DataFixer;Lnet/minecraft/core/HolderGetter;)V accessible field net/minecraft/resources/RegistryLoadTask registry Lnet/minecraft/core/WritableRegistry; diff --git a/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java b/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java index 660dad8c2e..8626803a5f 100644 --- a/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java +++ b/fabric-loot-api-v3/src/main/java/net/fabricmc/fabric/mixin/loot/SimpleJsonResourceReloadListenerMixin.java @@ -40,7 +40,7 @@ import net.fabricmc.fabric.impl.loot.LootUtil; public class SimpleJsonResourceReloadListenerMixin { @Inject(method = "scanDirectory(Lnet/minecraft/server/packs/resources/ResourceManager;Lnet/minecraft/resources/FileToIdConverter;Lcom/mojang/serialization/DynamicOps;Lcom/mojang/serialization/Codec;Ljava/util/Map;)V", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/resources/FileToIdConverter;fileToId(Lnet/minecraft/resources/Identifier;)Lnet/minecraft/resources/Identifier;")) private static void fillSourceMap(ResourceManager manager, FileToIdConverter fileToIdConverter, DynamicOps ops, Codec codec, Map result, CallbackInfo ci, @Local(name = "entry") Map.Entry entry, @Local(name = "id") Identifier id) { - final String dirName = ((FileToIdConverterAccessor) fileToIdConverter).getPrefix(); + final String dirName = fileToIdConverter.prefix(); if (!LootDataType.TABLE.registryKey().identifier().getPath().equals(dirName)) return; LootUtil.SOURCES.get().put(id, LootUtil.determineSource(entry.getValue())); diff --git a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/DimensionDataStorageMixin.java b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/SavedDataStorageMixin.java similarity index 92% rename from fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/DimensionDataStorageMixin.java rename to fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/SavedDataStorageMixin.java index 6f8676efb5..29867bbb54 100644 --- a/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/DimensionDataStorageMixin.java +++ b/fabric-object-builder-api-v1/src/main/java/net/fabricmc/fabric/mixin/object/builder/SavedDataStorageMixin.java @@ -24,10 +24,10 @@ import org.spongepowered.asm.mixin.injection.At; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.datafix.DataFixTypes; -import net.minecraft.world.level.storage.DimensionDataStorage; +import net.minecraft.world.level.storage.SavedDataStorage; -@Mixin(DimensionDataStorage.class) -class DimensionDataStorageMixin { +@Mixin(SavedDataStorage.class) +class SavedDataStorageMixin { /** * Handle mods passing a null DataFixTypes to a PersistentState.Type. */ diff --git a/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json b/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json index 3870227d2f..8723299443 100644 --- a/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json +++ b/fabric-object-builder-api-v1/src/main/resources/fabric-object-builder-v1.mixins.json @@ -9,7 +9,7 @@ "DetectorRailBlockMixin", "EntityTypeBuilderMixin", "EntityTypeMixin", - "DimensionDataStorageMixin", + "SavedDataStorageMixin", "EntityDataSerializersAccessor", "EntityDataSerializersMixin" ], diff --git a/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/DimensionDataStorageTest.java b/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/DimensionDataStorageTest.java index 85b76371e1..feefcef7f6 100644 --- a/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/DimensionDataStorageTest.java +++ b/fabric-object-builder-api-v1/src/testmod/java/net/fabricmc/fabric/test/object/builder/DimensionDataStorageTest.java @@ -52,7 +52,7 @@ public class DimensionDataStorageTest implements ModInitializer { private static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.STRING.fieldOf("value").forGetter(TestState::getValue) ).apply(instance, TestState::new)); - private static final SavedDataType TYPE = new SavedDataType<>(ObjectBuilderTestConstants.id("test_state").toString().replace(":", "_"), TestState::new, CODEC, null); + private static final SavedDataType TYPE = new SavedDataType<>(ObjectBuilderTestConstants.id("test_state"), TestState::new, CODEC, null); public static TestState getOrCreate(ServerLevel level) { return level.getDataStorage().computeIfAbsent(TestState.TYPE); diff --git a/fabric-resource-conditions-api-v1/src/main/java/net/fabricmc/fabric/mixin/resource/conditions/SimpleJsonResourceReloadListenerMixin.java b/fabric-resource-conditions-api-v1/src/main/java/net/fabricmc/fabric/mixin/resource/conditions/SimpleJsonResourceReloadListenerMixin.java index e2a7a8c201..ae93b4d39f 100644 --- a/fabric-resource-conditions-api-v1/src/main/java/net/fabricmc/fabric/mixin/resource/conditions/SimpleJsonResourceReloadListenerMixin.java +++ b/fabric-resource-conditions-api-v1/src/main/java/net/fabricmc/fabric/mixin/resource/conditions/SimpleJsonResourceReloadListenerMixin.java @@ -60,7 +60,7 @@ public class SimpleJsonResourceReloadListenerMixin { if (resourceData.isJsonObject()) { JsonObject obj = resourceData.getAsJsonObject(); - final String dataType = ((FileToIdConverterAccessor) resourceFinder).getDirectoryName(); + final String dataType = resourceFinder.prefix(); if (!ResourceConditionsImpl.applyResourceConditions(obj, dataType, entry.getKey(), registryInfo)) { return DataResult.success(SKIP_DATA_MARKER); diff --git a/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/MinecraftServerMixin.java b/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/MinecraftServerMixin.java index 03eeda4287..101d47a10c 100644 --- a/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/MinecraftServerMixin.java +++ b/fabric-resource-loader-v1/src/main/java/net/fabricmc/fabric/mixin/resource/MinecraftServerMixin.java @@ -18,6 +18,7 @@ package net.fabricmc.fabric.mixin.resource; import java.net.Proxy; import java.util.List; +import java.util.Optional; import com.mojang.datafixers.DataFixer; import org.spongepowered.asm.mixin.Mixin; @@ -36,6 +37,7 @@ import net.minecraft.server.packs.PackResources; import net.minecraft.server.packs.repository.KnownPack; import net.minecraft.server.packs.repository.Pack; import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.world.level.gamerules.GameRules; import net.minecraft.world.level.storage.LevelStorageSource; import net.fabricmc.fabric.api.resource.v1.DataResourceStore; @@ -61,7 +63,7 @@ public class MinecraftServerMixin implements DataResourceStore, FabricOriginalKn } @Inject(method = "", at = @At("TAIL")) - private void init(Thread serverThread, LevelStorageSource.LevelStorageAccess storageAccess, PackRepository dataPackManager, WorldStem worldStem, Proxy proxy, DataFixer dataFixer, Services apiServices, LevelLoadListener chunkLoadProgress, CallbackInfo ci) { + private void init(Thread serverThread, LevelStorageSource.LevelStorageAccess storageAccess, PackRepository dataPackManager, WorldStem worldStem, Optional gameRules, Proxy proxy, DataFixer dataFixer, Services apiServices, LevelLoadListener chunkLoadProgress, CallbackInfo ci) { this.originalKnownPacks = worldStem.resourceManager().listPacks().flatMap(pack -> pack.location().knownPackInfo().stream()).toList(); } diff --git a/gradle.properties b/gradle.properties index 5b5c83719a..a5bffd8b04 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.parallel=true org.gradle.configuration-cache=false version=0.143.1 -minecraft_version=26.1-snapshot-5 +minecraft_version=26.1-snapshot-6 loader_version=0.18.4 installer_version=1.0.1