diff --git a/build.gradle b/build.gradle index 06bc913..47994f2 100644 --- a/build.gradle +++ b/build.gradle @@ -66,7 +66,7 @@ sourcesJar { spotless { java { removeUnusedImports() - palantirJavaFormat('2.47.0').style("GOOGLE") + palantirJavaFormat('2.91.0').style("GOOGLE") trimTrailingWhitespace() formatAnnotations() } diff --git a/gradle.properties b/gradle.properties index 386b1a9..fa4c5a0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.21.10 +minecraft_version=1.21.11 # Mod Properties mod_version=0.2.2 maven_group=dev.zenfyr diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6c0c1e2..9181a0d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [libraries] fabric-loader = { group = "net.fabricmc", name = "fabric-loader", version = "0.19.2" } -fabric-api = { group = "net.fabricmc.fabric-api", name = "fabric-api", version = "0.138.4+1.21.10" } +fabric-api = { group = "net.fabricmc.fabric-api", name = "fabric-api", version = "0.141.4+1.21.11" } [plugins] fabric-loom = { id = "fabric-loom", version = "1.16.1" } diff --git a/src/main/java/dev/zenfyr/pulsar/client/PulsarClient.java b/src/main/java/dev/zenfyr/pulsar/client/PulsarClient.java index c5b49aa..7ce8df8 100644 --- a/src/main/java/dev/zenfyr/pulsar/client/PulsarClient.java +++ b/src/main/java/dev/zenfyr/pulsar/client/PulsarClient.java @@ -1,5 +1,7 @@ package dev.zenfyr.pulsar.client; +import dev.zenfyr.pulsar.client.events.AfterFirstReload; +import dev.zenfyr.pulsar.client.fakelevel.BrightLightTexture; import dev.zenfyr.pulsar.client.fakelevel.FakeLevel; import net.fabricmc.api.ClientModInitializer; @@ -8,5 +10,6 @@ public class PulsarClient implements ClientModInitializer { @Override public void onInitializeClient() { FakeLevel.init(); + AfterFirstReload.EVENT.register(BrightLightTexture::init); } } diff --git a/src/main/java/dev/zenfyr/pulsar/client/fakelevel/BrightLightTexture.java b/src/main/java/dev/zenfyr/pulsar/client/fakelevel/BrightLightTexture.java index 278a7b7..4492a08 100644 --- a/src/main/java/dev/zenfyr/pulsar/client/fakelevel/BrightLightTexture.java +++ b/src/main/java/dev/zenfyr/pulsar/client/fakelevel/BrightLightTexture.java @@ -18,4 +18,8 @@ public final class BrightLightTexture extends LightTexture { public void updateLightTexture(float delta) { // no updates for you } + + public static void init() { + // NOOP + } } diff --git a/src/main/java/dev/zenfyr/pulsar/client/fakelevel/FakeLevel.java b/src/main/java/dev/zenfyr/pulsar/client/fakelevel/FakeLevel.java index 66405f4..b51a100 100644 --- a/src/main/java/dev/zenfyr/pulsar/client/fakelevel/FakeLevel.java +++ b/src/main/java/dev/zenfyr/pulsar/client/fakelevel/FakeLevel.java @@ -125,9 +125,12 @@ public class FakeLevel { MappedRegistry registry = new MappedRegistry<>(Utilities.cast(key), Lifecycle.stable()); - pain.lookup(key).ifPresent(impl -> impl.listElements() - .forEach(ref -> registry.register( - ref.key(), ref.value(), new RegistrationInfo(Optional.empty(), Lifecycle.stable())))); + pain.lookup(key) + .ifPresent(impl -> impl.listElements() + .forEach(ref -> registry.register( + ref.key(), + ref.value(), + new RegistrationInfo(Optional.empty(), Lifecycle.stable())))); registry.freeze(); regs.add(registry); diff --git a/src/main/java/dev/zenfyr/pulsar/client/particles/impl/GuiParticleRenderer.java b/src/main/java/dev/zenfyr/pulsar/client/particles/impl/GuiParticleRenderer.java index 95d2dc8..ebcc5eb 100644 --- a/src/main/java/dev/zenfyr/pulsar/client/particles/impl/GuiParticleRenderer.java +++ b/src/main/java/dev/zenfyr/pulsar/client/particles/impl/GuiParticleRenderer.java @@ -2,7 +2,6 @@ package dev.zenfyr.pulsar.client.particles.impl; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; -import dev.zenfyr.pulsar.client.fakelevel.BrightLightTexture; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.render.pip.PictureInPictureRenderer; import net.minecraft.client.gui.render.state.GuiRenderState; @@ -29,8 +28,6 @@ public class GuiParticleRenderer extends PictureInPictureRenderer extends SimpleJsonResourceReloadLis @Contract("_, _, _ -> new") public static @NotNull JsonCodecDataLoader simple( - ResourceLocation identifier, Codec codec, BiConsumer consumer) { + Identifier identifier, Codec codec, BiConsumer consumer) { return new JsonCodecDataLoader(identifier, codec) { @Override - protected void apply(Map parsed, ResourceManager manager) { + protected void apply(Map parsed, ResourceManager manager) { parsed.forEach(consumer); } }; } - public JsonCodecDataLoader(ResourceLocation location, Codec codec) { - super(codec, FileToIdConverter.json(location.toString().replace(':', '/'))); + public JsonCodecDataLoader(Identifier identifier, Codec codec) { + super(codec, FileToIdConverter.json(identifier.toString().replace(':', '/'))); } @Override protected void apply( - Map object, - ResourceManager resourceManager, - ProfilerFiller profilerFiller) { + Map object, ResourceManager resourceManager, ProfilerFiller profilerFiller) { this.apply(object, resourceManager); } - protected abstract void apply(Map parsed, ResourceManager manager); + protected abstract void apply(Map parsed, ResourceManager manager); } diff --git a/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilder.java b/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilder.java index 1fef46a..cad06af 100644 --- a/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilder.java +++ b/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilder.java @@ -4,7 +4,7 @@ import java.util.Optional; import java.util.function.Supplier; import lombok.NonNull; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ItemLike; @@ -15,7 +15,7 @@ import org.jetbrains.annotations.Nullable; */ public interface CreativeModeTabBuilder { - static CreativeModeTabBuilder create(@NonNull ResourceLocation identifier) { + static CreativeModeTabBuilder create(@NonNull Identifier identifier) { return new CreativeModeTabBuilderImpl(identifier); } @@ -38,7 +38,7 @@ public interface CreativeModeTabBuilder { CreativeModeTabBuilder displayName(Component displayName); - ResourceLocation location(); + Identifier identifier(); @Nullable CreativeModeTab build(); diff --git a/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilderImpl.java b/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilderImpl.java index d6ae51f..0d0c748 100644 --- a/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilderImpl.java +++ b/src/main/java/dev/zenfyr/pulsar/creativetab/CreativeModeTabBuilderImpl.java @@ -6,7 +6,7 @@ import lombok.NonNull; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.ApiStatus; @@ -14,14 +14,14 @@ import org.jetbrains.annotations.ApiStatus; @ApiStatus.Internal class CreativeModeTabBuilderImpl implements CreativeModeTabBuilder { - private final ResourceLocation location; + private final Identifier identifier; private Supplier icon = () -> ItemStack.EMPTY; private String texture; private PulsarEntries.Collector entries; private Component displayName; - public CreativeModeTabBuilderImpl(ResourceLocation location) { - this.location = location; + public CreativeModeTabBuilderImpl(Identifier identifier) { + this.identifier = identifier; } @Override @@ -49,8 +49,8 @@ class CreativeModeTabBuilderImpl implements CreativeModeTabBuilder { } @Override - public ResourceLocation location() { - return this.location; + public Identifier identifier() { + return this.identifier; } @Override @@ -61,13 +61,13 @@ class CreativeModeTabBuilderImpl implements CreativeModeTabBuilder { builder.title(Objects.requireNonNullElseGet( this.displayName, - () -> Component.translatable("itemGroup." + this.location.toString().replace(':', '.')))); - if (this.texture != null) builder.backgroundTexture(ResourceLocation.parse(this.texture)); + () -> Component.translatable("itemGroup." + this.identifier.toString().replace(':', '.')))); + if (this.texture != null) builder.backgroundTexture(Identifier.parse(this.texture)); builder.displayItems( (displayContext, entries1) -> this.entries.collect(new PulsarEntriesImpl(entries1))); CreativeModeTab group = builder.build(); - Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, this.location, group); + Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, this.identifier, group); return group; } } diff --git a/src/main/java/dev/zenfyr/pulsar/creativetab/PulsarEntriesImpl.java b/src/main/java/dev/zenfyr/pulsar/creativetab/PulsarEntriesImpl.java index 68fbb7e..26430d0 100644 --- a/src/main/java/dev/zenfyr/pulsar/creativetab/PulsarEntriesImpl.java +++ b/src/main/java/dev/zenfyr/pulsar/creativetab/PulsarEntriesImpl.java @@ -34,8 +34,8 @@ class PulsarEntriesImpl implements PulsarEntries { } // Let's hope that whatever this is doesn't have dumb restrictions. switch (visibility) { - case TAB_AND_SEARCH -> this.entries.accept( - stack, CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + case TAB_AND_SEARCH -> + this.entries.accept(stack, CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); case TAB -> this.entries.accept(stack, CreativeModeTab.TabVisibility.PARENT_TAB_ONLY); case SEARCH -> this.entries.accept(stack, CreativeModeTab.TabVisibility.SEARCH_TAB_ONLY); } diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/events/MinecraftMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/events/MinecraftMixin.java index be2703b..4b281c4 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/events/MinecraftMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/events/MinecraftMixin.java @@ -12,7 +12,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public class MinecraftMixin { @Inject(method = "method_29338", at = @At("TAIL"), require = 0) private void pulsar$init(CallbackInfo ci) { - Minecraft.getInstance().doRunTask(() -> { + Minecraft.getInstance().execute(() -> { try { AfterFirstReload.EVENT.invoker().afterFirstReload(); } catch (Throwable t) { diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/fakeworld/EnvironmentAttributeSystemMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/fakeworld/EnvironmentAttributeSystemMixin.java new file mode 100644 index 0000000..7bd9742 --- /dev/null +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/fakeworld/EnvironmentAttributeSystemMixin.java @@ -0,0 +1,27 @@ +package dev.zenfyr.pulsar.impl.mixin.client.fakeworld; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import dev.zenfyr.pulsar.client.fakelevel.FakeLevel; +import java.util.function.Consumer; +import net.minecraft.core.HolderSet; +import net.minecraft.world.attribute.EnvironmentAttributeSystem; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(EnvironmentAttributeSystem.class) +public class EnvironmentAttributeSystemMixin { + @WrapOperation( + method = "addDefaultLayers", + at = + @At( + value = "INVOKE", + target = "Lnet/minecraft/core/HolderSet;forEach(Ljava/util/function/Consumer;)V")) + private static void pulsar$skipEnvLayersForFakeLevel( + HolderSet instance, Consumer consumer, Operation original) { + if (FakeLevel.isLoading()) { + return; + } + original.call(instance, consumer); + } +} diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/itemgroup/CreativeModeInventoryScreenMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/itemgroup/CreativeModeInventoryScreenMixin.java index 1ff5f44..959a69d 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/itemgroup/CreativeModeInventoryScreenMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/itemgroup/CreativeModeInventoryScreenMixin.java @@ -35,12 +35,14 @@ public abstract class CreativeModeInventoryScreenMixin cancellable = true) private void pulsar$drawGroupIcon( GuiGraphics context, + int i, + int j, CreativeModeTab group, CallbackInfo ci, - @Local(index = 3) boolean bl, - @Local(index = 4) boolean bl2, - @Local(index = 9) int l, - @Local(index = 10) int m) { + @Local(index = 5) boolean bl, + @Local(index = 6) boolean bl2, + @Local(index = 11) int l, + @Local(index = 12) int m) { if (((CreativeModeTabExtensions) group).pulsar$getIconAnimation() != null) { ((CreativeModeTabExtensions) group) .pulsar$getIconAnimation() diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GameRendererMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GameRendererMixin.java index f81a7e3..d00870e 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GameRendererMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GameRendererMixin.java @@ -1,6 +1,7 @@ package dev.zenfyr.pulsar.impl.mixin.client.particles; import com.llamalad7.mixinextras.sugar.Local; +import dev.zenfyr.pulsar.client.fakelevel.BrightLightTexture; import dev.zenfyr.pulsar.client.particles.ScreenParticleHelper; import dev.zenfyr.pulsar.client.particles.impl.GuiParticleRenderer; import dev.zenfyr.pulsar.client.particles.impl.VanillaParticleManager; @@ -39,4 +40,9 @@ public class GameRendererMixin { graphics.nextStratum(); ScreenParticleHelper.renderParticles(this.minecraft, graphics); } + + @Inject(at = @At("TAIL"), method = "close") + private void pulsar$closeBrightLightmap(CallbackInfo ci) { + BrightLightTexture.INSTANCE.close(); + } } diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GuiRendererMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GuiRendererMixin.java index 6c645a4..bda8c7a 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GuiRendererMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/GuiRendererMixin.java @@ -2,7 +2,6 @@ package dev.zenfyr.pulsar.impl.mixin.client.particles; import com.mojang.blaze3d.buffers.GpuBufferSlice; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.*; import dev.zenfyr.pulsar.client.particles.ScreenParticleHelper; import dev.zenfyr.pulsar.client.particles.impl.VanillaParticleManager; import net.minecraft.client.Minecraft; @@ -30,7 +29,7 @@ public abstract class GuiRendererMixin { target = "Lnet/minecraft/client/gui/render/GuiRenderer;draw(Lcom/mojang/blaze3d/buffers/GpuBufferSlice;)V", shift = At.Shift.AFTER)) - private void pulsar$blitFallback(GpuBufferSlice fogUniforms, CallbackInfo ci) { + private void pulsar$blitFallback(GpuBufferSlice fogBuffer, CallbackInfo ci) { var minecraft = Minecraft.getInstance(); var state = ScreenParticleHelper.extractState(minecraft); diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/ParticleFeatureRendererMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/ParticleFeatureRendererMixin.java index b8fc5dd..fd5a3dd 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/ParticleFeatureRendererMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/client/particles/ParticleFeatureRendererMixin.java @@ -2,9 +2,9 @@ package dev.zenfyr.pulsar.impl.mixin.client.particles; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.mojang.blaze3d.pipeline.RenderTarget; +import com.mojang.blaze3d.textures.GpuTextureView; import dev.zenfyr.pulsar.client.fakelevel.BrightLightTexture; import dev.zenfyr.pulsar.client.particles.impl.GuiParticleRenderer; -import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.feature.ParticleFeatureRenderer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -28,9 +28,11 @@ public class ParticleFeatureRendererMixin { @At( value = "INVOKE", target = - "Lnet/minecraft/client/renderer/GameRenderer;lightTexture()Lnet/minecraft/client/renderer/LightTexture;"), + "Lnet/minecraft/client/renderer/LightTexture;getTextureView()Lcom/mojang/blaze3d/textures/GpuTextureView;"), method = "prepareRenderPass") - private LightTexture pulsar$setLightTextureForParticles(LightTexture original) { - return GuiParticleRenderer.RENDERING.get() ? BrightLightTexture.INSTANCE : original; + private GpuTextureView pulsar$setLightTextureForParticles(GpuTextureView original) { + return GuiParticleRenderer.RENDERING.get() + ? BrightLightTexture.INSTANCE.getTextureView() + : original; } } diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ReloadableServerResourcesMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ReloadableServerResourcesMixin.java index 1d8f4b2..e676559 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ReloadableServerResourcesMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ReloadableServerResourcesMixin.java @@ -3,7 +3,7 @@ package dev.zenfyr.pulsar.impl.mixin.resources; import dev.zenfyr.pulsar.resources.ReloaderType; import dev.zenfyr.pulsar.resources.impl.InternalContentsAccessor; import java.util.*; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.ReloadableServerResources; import net.minecraft.server.packs.resources.PreparableReloadListener; import org.spongepowered.asm.mixin.Mixin; @@ -12,8 +12,7 @@ import org.spongepowered.asm.mixin.Unique; @Mixin(value = ReloadableServerResources.class, priority = 1100) abstract class ReloadableServerResourcesMixin implements InternalContentsAccessor { - @Unique private final Map reloadersByIdentifier = - new HashMap<>(); + @Unique private final Map reloadersByIdentifier = new HashMap<>(); @Unique private final IdentityHashMap, PreparableReloadListener> reloadersByType = new IdentityHashMap<>(); @@ -23,9 +22,9 @@ abstract class ReloadableServerResourcesMixin implements InternalContentsAccesso var reloader = this.reloadersByType.get(type); if (reloader == null) { synchronized (this.reloadersByIdentifier) { - reloader = this.reloadersByIdentifier.get(type.location()); + reloader = this.reloadersByIdentifier.get(type.identifier()); if (reloader == null) - throw new NoSuchElementException("Missing reloader %s".formatted(type.location())); + throw new NoSuchElementException("Missing reloader %s".formatted(type.identifier())); this.reloadersByType.put(type, reloader); } } @@ -33,7 +32,7 @@ abstract class ReloadableServerResourcesMixin implements InternalContentsAccesso } @Override - public void pulsar$setReloaders(Map reloaders) { + public void pulsar$setReloaders(Map reloaders) { this.reloadersByIdentifier.clear(); this.reloadersByType.clear(); diff --git a/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ResourceManagerHelperImplMixin.java b/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ResourceManagerHelperImplMixin.java index 29a38eb..da3f107 100644 --- a/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ResourceManagerHelperImplMixin.java +++ b/src/main/java/dev/zenfyr/pulsar/impl/mixin/resources/ResourceManagerHelperImplMixin.java @@ -7,9 +7,9 @@ import dev.zenfyr.pulsar.resources.impl.InternalContentsAccessor; import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import net.fabricmc.fabric.impl.resource.v1.DataResourceLoaderImpl; -import net.fabricmc.fabric.impl.resource.v1.SetupMarkerResourceReloader; -import net.minecraft.resources.ResourceLocation; +import net.fabricmc.fabric.impl.resource.DataResourceLoaderImpl; +import net.fabricmc.fabric.impl.resource.SetupMarkerResourceReloader; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.PreparableReloadListener; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; @@ -25,19 +25,19 @@ public class ResourceManagerHelperImplMixin { @At( value = "INVOKE", target = - "Lnet/fabricmc/fabric/impl/resource/v1/ResourceLoaderImpl;collectReloadersToAdd(Lnet/fabricmc/fabric/impl/resource/v1/SetupMarkerResourceReloader;)Ljava/util/Set;", + "Lnet/fabricmc/fabric/impl/resource/ResourceLoaderImpl;collectReloadersToAdd(Lnet/fabricmc/fabric/impl/resource/SetupMarkerResourceReloader;)Ljava/util/Set;", shift = At.Shift.BY, by = 2), method = "collectReloadersToAdd", remap = false) private void injectReloaders( - @Nullable SetupMarkerResourceReloader marker, - CallbackInfoReturnable>> cir, - @Local Set> reloadersToAdd) { + @org.jspecify.annotations.Nullable SetupMarkerResourceReloader marker, + CallbackInfoReturnable>> cir, + @Local Set> reloadersToAdd) { ContextImpl context = new ContextImpl( marker.registries(), marker.featureSet(), - (location, listener) -> reloadersToAdd.add(Map.entry(location, listener)), + (identifier, listener) -> reloadersToAdd.add(Map.entry(identifier, listener)), type -> ((InternalContentsAccessor) marker.dataPackContents()).pulsar$getReloader(type)); ServerReloadersEvent.EVENT.invoker().onServerReloaders(context); } @@ -45,8 +45,8 @@ public class ResourceManagerHelperImplMixin { @Inject(at = @At("TAIL"), method = "collectReloadersToAdd", remap = false) private void setEventResults( @Nullable SetupMarkerResourceReloader setupMarker, - CallbackInfoReturnable>> cir, - @Local Set> reloadersToAdd) { + CallbackInfoReturnable>> cir, + @Local Set> reloadersToAdd) { ((InternalContentsAccessor) setupMarker.dataPackContents()) .pulsar$setReloaders(reloadersToAdd.stream() .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))); diff --git a/src/main/java/dev/zenfyr/pulsar/nbt/NbtUtil.java b/src/main/java/dev/zenfyr/pulsar/nbt/NbtUtil.java index 2ff0284..054b31d 100644 --- a/src/main/java/dev/zenfyr/pulsar/nbt/NbtUtil.java +++ b/src/main/java/dev/zenfyr/pulsar/nbt/NbtUtil.java @@ -26,8 +26,10 @@ public class NbtUtil { public DataResult encode(Slotted input, DynamicOps ops, T prefix) { return ItemStack.OPTIONAL_CODEC.encodeStart(ops, input.stack()).flatMap(itemData -> { RecordBuilder builder = ops.mapBuilder(); - ops.getMap(itemData).result().ifPresent(map -> map.entries() - .forEach(e -> builder.add(e.getFirst(), e.getSecond()))); + ops.getMap(itemData) + .result() + .ifPresent( + map -> map.entries().forEach(e -> builder.add(e.getFirst(), e.getSecond()))); builder.add("Slot", ops.createByte((byte) input.slot())); return builder.build(prefix); }); diff --git a/src/main/java/dev/zenfyr/pulsar/resources/ReloaderType.java b/src/main/java/dev/zenfyr/pulsar/resources/ReloaderType.java index 5530a19..f9f5562 100644 --- a/src/main/java/dev/zenfyr/pulsar/resources/ReloaderType.java +++ b/src/main/java/dev/zenfyr/pulsar/resources/ReloaderType.java @@ -4,8 +4,8 @@ import lombok.AccessLevel; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.experimental.Accessors; -import net.fabricmc.fabric.api.resource.ResourceReloadListenerKeys; -import net.minecraft.resources.ResourceLocation; +import net.fabricmc.fabric.api.resource.v1.reloader.ResourceReloaderKeys; +import net.minecraft.resources.Identifier; import net.minecraft.server.ServerAdvancementManager; import net.minecraft.server.ServerFunctionLibrary; import net.minecraft.server.packs.resources.PreparableReloadListener; @@ -19,17 +19,17 @@ import org.jetbrains.annotations.NotNull; public final class ReloaderType { public static final ReloaderType RECIPES = - create(ResourceReloadListenerKeys.RECIPES); + create(ResourceReloaderKeys.Server.RECIPES); public static final ReloaderType ADVANCEMENTS = - create(ResourceReloadListenerKeys.ADVANCEMENTS); + create(ResourceReloaderKeys.Server.ADVANCEMENTS); public static final ReloaderType FUNCTIONS = - create(ResourceReloadListenerKeys.FUNCTIONS); + create(ResourceReloaderKeys.Server.FUNCTIONS); - private final ResourceLocation location; + private final Identifier identifier; @Contract("_ -> new") public static @NotNull ReloaderType create( - ResourceLocation identifier) { + Identifier identifier) { return new ReloaderType<>(identifier); } } diff --git a/src/main/java/dev/zenfyr/pulsar/resources/ServerReloadersEvent.java b/src/main/java/dev/zenfyr/pulsar/resources/ServerReloadersEvent.java index d3d91c4..0a7cb20 100644 --- a/src/main/java/dev/zenfyr/pulsar/resources/ServerReloadersEvent.java +++ b/src/main/java/dev/zenfyr/pulsar/resources/ServerReloadersEvent.java @@ -5,7 +5,7 @@ import net.fabricmc.fabric.api.event.EventFactory; import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.PreparableReloadListener; import net.minecraft.world.flag.FeatureFlagSet; @@ -34,7 +34,7 @@ public interface ServerReloadersEvent { @Deprecated void register(IdentifiableResourceReloadListener reloadListener); - void register(ResourceLocation location, PreparableReloadListener reloadListener); + void register(Identifier identifier, PreparableReloadListener reloadListener); /** * Returns a reloader by type.
diff --git a/src/main/java/dev/zenfyr/pulsar/resources/impl/ContextImpl.java b/src/main/java/dev/zenfyr/pulsar/resources/impl/ContextImpl.java index a482464..087f21f 100644 --- a/src/main/java/dev/zenfyr/pulsar/resources/impl/ContextImpl.java +++ b/src/main/java/dev/zenfyr/pulsar/resources/impl/ContextImpl.java @@ -6,14 +6,14 @@ import java.util.function.BiConsumer; import java.util.function.Function; import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; import net.minecraft.core.HolderLookup; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.PreparableReloadListener; import net.minecraft.world.flag.FeatureFlagSet; public record ContextImpl( HolderLookup.Provider registryAccess, FeatureFlagSet featureFlags, - BiConsumer registrar, + BiConsumer registrar, Function, PreparableReloadListener> provider) implements ServerReloadersEvent.Context { @@ -23,8 +23,8 @@ public record ContextImpl( } @Override - public void register(ResourceLocation location, PreparableReloadListener reloadListener) { - registrar().accept(location, reloadListener); + public void register(Identifier identifier, PreparableReloadListener reloadListener) { + registrar().accept(identifier, reloadListener); } @Override diff --git a/src/main/java/dev/zenfyr/pulsar/resources/impl/InternalContentsAccessor.java b/src/main/java/dev/zenfyr/pulsar/resources/impl/InternalContentsAccessor.java index 01a9f63..def7a4f 100644 --- a/src/main/java/dev/zenfyr/pulsar/resources/impl/InternalContentsAccessor.java +++ b/src/main/java/dev/zenfyr/pulsar/resources/impl/InternalContentsAccessor.java @@ -2,9 +2,9 @@ package dev.zenfyr.pulsar.resources.impl; import dev.zenfyr.pulsar.resources.DataPackContentsAccessor; import java.util.Map; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.PreparableReloadListener; public interface InternalContentsAccessor extends DataPackContentsAccessor { - void pulsar$setReloaders(Map reloaders); + void pulsar$setReloaders(Map reloaders); } diff --git a/src/main/resources/pulsar.mixins.json b/src/main/resources/pulsar.mixins.json index 4efea11..a1c1513 100644 --- a/src/main/resources/pulsar.mixins.json +++ b/src/main/resources/pulsar.mixins.json @@ -10,6 +10,7 @@ ], "client": [ "client.events.MinecraftMixin", + "client.fakeworld.EnvironmentAttributeSystemMixin", "client.fakeworld.LevelMixin", "client.fakeworld.RegistrySetBuilderMixin", "client.itemgroup.CreativeModeInventoryScreenMixin",