From 5126865ae49cce8603caf2a834524d641806118c Mon Sep 17 00:00:00 2001 From: ArikSquad <75741608+ArikSquad@users.noreply.github.com> Date: Fri, 24 Apr 2026 21:18:54 +0300 Subject: [PATCH 1/4] feat: 26.1.2 --- build.gradle | 18 ++--- gradle.properties | 15 ++--- gradle/wrapper/gradle-wrapper.properties | 5 +- .../entropy/client/ClientEventHandler.java | 4 +- .../client/ConstantColorDustParticle.java | 4 +- .../entropy/client/EntropyClient.java | 8 +-- .../entropy/client/EntropyClientUtils.java | 4 +- .../Screens/EntropyConfigurationScreen.java | 10 +-- .../client/Screens/EntropyCreditsScreen.java | 6 +- .../client/Screens/EntropyErrorScreen.java | 8 +-- .../EntropyEventConfigurationScreen.java | 10 +-- .../Screens/EntropyIntegrationsScreen.java | 2 +- .../Widgets/EntropyEventListWidget.java | 8 +-- .../client/UIStyles/GTAVUIRenderer.java | 4 +- .../client/UIStyles/MinecraftUIRenderer.java | 7 +- .../entropy/client/UIStyles/UIRenderer.java | 4 +- .../entropy/client/VotingClient.java | 12 ++-- .../datagen/EntropyBlockTagProvider.java | 10 +-- .../EntropyEnchantmentTagProvider.java | 4 +- .../datagen/EntropyEntityTypeTagProvider.java | 8 +-- .../datagen/EntropyItemTagProvider.java | 8 +-- .../juancarloscp52/entropy/events/Event.java | 8 +-- .../entropy/events/db/ArmorTrimEvent.java | 2 +- .../events/db/CinematicScreenEvent.java | 4 +- .../entropy/events/db/DVDEvent.java | 6 +- .../entropy/events/db/DeathSightEvent.java | 2 +- .../events/db/ExplodeNearbyEntitiesEvent.java | 2 +- .../entropy/events/db/FlingEntitiesEvent.java | 2 +- .../entropy/events/db/ForcefieldEvent.java | 2 +- .../entropy/events/db/HerobrineEvent.java | 4 +- .../events/db/HighlightAllMobsEvent.java | 2 +- .../events/db/IgniteNearbyEntitiesEvent.java | 2 +- .../events/db/IntenseThunderStormEvent.java | 7 +- .../events/db/InvisibleEveryoneEvent.java | 2 +- .../entropy/events/db/LevitationEvent.java | 4 +- .../entropy/events/db/MidasTouchEvent.java | 2 +- .../entropy/events/db/NoAttackingEvent.java | 2 +- .../entropy/events/db/NoUseKeyEvent.java | 2 +- .../entropy/events/db/PumpkinViewEvent.java | 4 +- .../entropy/events/db/RainbowTrailsEvent.java | 2 +- .../entropy/events/db/RollingCameraEvent.java | 4 +- .../entropy/events/db/SkyBlockEvent.java | 5 +- .../entropy/events/db/TimelapseEvent.java | 4 +- .../events/db/VerticalScreenEvent.java | 4 +- .../entropy/mixin/BlockMixin.java | 8 +-- .../entropy/mixin/BlockStateBaseMixin.java | 2 +- .../entropy/mixin/BossHealthOverlayMixin.java | 4 +- .../entropy/mixin/CameraMixin.java | 23 ++++++- .../entropy/mixin/ClientLevelMixin.java | 3 +- .../entropy/mixin/FogRendererAccessor.java | 6 +- .../entropy/mixin/GameRendererMixin.java | 65 ++++--------------- .../mixin/ScreenEffectRendererMixin.java | 5 +- .../networking/NetworkingConstants.java | 6 +- src/main/resources/fabric.mod.json | 2 +- 54 files changed, 174 insertions(+), 187 deletions(-) diff --git a/build.gradle b/build.gradle index ad0db403..e25e8212 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'net.fabricmc.fabric-loom-remap' version '1.14-SNAPSHOT' + id "net.fabricmc.fabric-loom" version "1.16-SNAPSHOT" id 'java-library' id 'maven-publish' } @@ -33,15 +33,11 @@ repositories { } dependencies { minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings loom.layered() { - officialMojangMappings() - parchment("org.parchmentmc.data:parchment-${project.parchment_minecraft_version}:${project.parchment_mappings_version}@zip") - } - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + implementation "net.fabricmc:fabric-loader:${project.loader_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation "com.terraformersmc:modmenu:${project.modmenu_version}" + implementation "com.terraformersmc:modmenu:${project.modmenu_version}" // modImplementation "io.github.ladysnake:satin:${satin_version}" // include "io.github.ladysnake:satin:${satin_version}" @@ -107,7 +103,7 @@ processResources { // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" - it.options.release = 21 + it.options.release = 25 } java { @@ -116,8 +112,8 @@ java { // If you remove this line, sources will not be generated. withSourcesJar() - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = JavaVersion.VERSION_25 + targetCompatibility = JavaVersion.VERSION_25 } jar { diff --git a/gradle.properties b/gradle.properties index 37d3de8d..433639a0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,18 +2,17 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop/ -minecraft_version=1.21.11 -parchment_minecraft_version=1.21.11 -parchment_mappings_version=2025.12.20 -loader_version=0.18.4 +minecraft_version=26.1.2 +loader_version=0.19.2 +fabric_version=0.146.1+26.1.2 + # Mod Properties -mod_version=1.15+mc1.21.11 +mod_version=1.15+mc26.1.2 maven_group=me.juancarloscp52 archives_base_name=Entropy -# Dependencies -fabric_version=0.141.1+1.21.11 -modmenu_version=17.0.0-beta.1 +# Dependencies +modmenu_version=18.0.0-alpha.8 pircbotx_version=2.3.1 slf4j_version=1.7.36 jda_version=5.6.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2b..34a5657a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,6 @@ +#Fri Apr 24 20:12:10 EEST 2026 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip -networkTimeout=10000 -validateDistributionUrl=true +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java b/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java index 7cc4f9b2..9907dd75 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java +++ b/src/main/java/me/juancarloscp52/entropy/client/ClientEventHandler.java @@ -28,7 +28,7 @@ import me.juancarloscp52.entropy.events.Event; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import java.util.ArrayList; import java.util.Arrays; @@ -91,7 +91,7 @@ public void tick(short eventCountDown) { } } - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { // Render active event effects currentEvents.forEach(event -> { if (!event.hasEnded() && !client.player.isSpectator()) diff --git a/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java b/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java index 33ad81b4..5af14a6c 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java +++ b/src/main/java/me/juancarloscp52/entropy/client/ConstantColorDustParticle.java @@ -1,7 +1,7 @@ package me.juancarloscp52.entropy.client; import me.juancarloscp52.entropy.server.ConstantColorDustParticleOptions; -import net.fabricmc.fabric.api.client.particle.v1.FabricSpriteProvider; +import net.fabricmc.fabric.api.client.particle.v1.FabricSpriteSet; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.DustParticleBase; import net.minecraft.client.particle.Particle; @@ -25,7 +25,7 @@ protected float randomizeColor(float colorComponent, float multiplier) { public static class Factory implements ParticleProvider { private final SpriteSet spriteProvider; - public Factory(FabricSpriteProvider spriteProvider) { + public Factory(FabricSpriteSet spriteProvider) { this.spriteProvider = spriteProvider; } diff --git a/src/main/java/me/juancarloscp52/entropy/client/EntropyClient.java b/src/main/java/me/juancarloscp52/entropy/client/EntropyClient.java index 3cbc12f1..3e4cfc54 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/EntropyClient.java +++ b/src/main/java/me/juancarloscp52/entropy/client/EntropyClient.java @@ -26,7 +26,6 @@ import me.juancarloscp52.entropy.events.Event; import me.juancarloscp52.entropy.events.EventType; import me.juancarloscp52.entropy.mixin.FogRendererAccessor; -import me.juancarloscp52.entropy.mixin.GameRendererAccessor; import me.juancarloscp52.entropy.networking.ClientboundJoinSync; import me.juancarloscp52.entropy.networking.NetworkingConstants; import me.juancarloscp52.entropy.networking.ServerboundJoinHandshake; @@ -36,7 +35,7 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.fabricmc.fabric.api.client.particle.v1.ParticleFactoryRegistry; +import net.fabricmc.fabric.api.client.particle.v1.ParticleProviderRegistry; import net.fabricmc.fabric.api.client.rendering.v1.hud.HudElementRegistry; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; @@ -170,15 +169,14 @@ public void onInitializeClient() { }); ClientLifecycleEvents.CLIENT_STARTED.register(client -> { - GameRendererAccessor gameRenderer = (GameRendererAccessor) client.gameRenderer; - List fogEnvironments = ((FogRendererAccessor) gameRenderer.getFogRenderer()).getFogEnvironments(); + List fogEnvironments = FogRendererAccessor.getFogEnvironments(); fogEnvironments.addFirst(new HerobrineFogEnvironment()); fogEnvironments.add(1, new RainbowFogEnvironment()); }); //Registry.registerReference() Registry.register(BuiltInRegistries.SOUND_EVENT, herobrineAmbienceID, herobrineAmbience); - ParticleFactoryRegistry.getInstance().register(Entropy.CONSTANT_COLOR_DUST, ConstantColorDustParticle.Factory::new); + ParticleProviderRegistry.getInstance().register(Entropy.CONSTANT_COLOR_DUST, ConstantColorDustParticle.Factory::new); } public void loadSettings() { diff --git a/src/main/java/me/juancarloscp52/entropy/client/EntropyClientUtils.java b/src/main/java/me/juancarloscp52/entropy/client/EntropyClientUtils.java index 81ef3bf4..f89e7bf1 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/EntropyClientUtils.java +++ b/src/main/java/me/juancarloscp52/entropy/client/EntropyClientUtils.java @@ -1,11 +1,11 @@ package me.juancarloscp52.entropy.client; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.resources.Identifier; public class EntropyClientUtils { - public static void renderOverlay(GuiGraphics guiGraphics, Identifier texture, int color) { + public static void renderOverlay(GuiGraphicsExtractor guiGraphics, Identifier texture, int color) { guiGraphics.blit( RenderPipelines.GUI_TEXTURED, texture, diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyConfigurationScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyConfigurationScreen.java index 3a2288bf..eb446bd5 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyConfigurationScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyConfigurationScreen.java @@ -23,7 +23,7 @@ import me.juancarloscp52.entropy.EntropySettings.VotingMode; import me.juancarloscp52.entropy.client.EntropyClient; import me.juancarloscp52.entropy.client.Screens.Widgets.EntropySliderWidget; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.AbstractSliderButton; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.CycleButton; @@ -93,15 +93,15 @@ protected void init() { this.addRenderableWidget(done); } - public void render(GuiGraphics drawContext, int mouseX, int mouseY, float delta) { - super.render(drawContext, mouseX, mouseY, delta); + public void extractRenderState(GuiGraphicsExtractor drawContext, int mouseX, int mouseY, float delta) { + super.extractRenderState(drawContext, mouseX, mouseY, delta); drawLogo(drawContext); Component title = Component.translatable("entropy.options.title"); - drawContext.drawString(this.font, title, this.width / 2 - font.width(title)/2, 10, CommonColors.WHITE); + drawContext.text(this.font, title, this.width / 2 - font.width(title)/2, 10, CommonColors.WHITE); } - public static void drawLogo(final GuiGraphics drawContext) { + public static void drawLogo(final GuiGraphicsExtractor drawContext) { Matrix3x2fStack matrices = drawContext.pose(); matrices.pushMatrix(); matrices.scale(0.2f, 0.2f); diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyCreditsScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyCreditsScreen.java index c3acf972..fda34671 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyCreditsScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyCreditsScreen.java @@ -19,7 +19,7 @@ import me.juancarloscp52.entropy.client.EntropyClient; import me.juancarloscp52.entropy.events.Event; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.screens.WinScreen; public class EntropyCreditsScreen extends WinScreen { @@ -36,8 +36,8 @@ public boolean shouldCloseOnEsc() { } @Override - public void render(GuiGraphics drawContext, int mouseX, int mouseY, float delta) { - super.render(drawContext, mouseX, mouseY, delta); + public void extractRenderState(GuiGraphicsExtractor drawContext, int mouseX, int mouseY, float delta) { + super.extractRenderState(drawContext, mouseX, mouseY, delta); EntropyClient.getInstance().clientEventHandler.render(drawContext, minecraft.getDeltaTracker()); } diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyErrorScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyErrorScreen.java index 23ef9aeb..32341fbe 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyErrorScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyErrorScreen.java @@ -17,7 +17,7 @@ package me.juancarloscp52.entropy.client.Screens; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.CommonComponents; @@ -46,12 +46,12 @@ protected void init() { } @Override - public void render(GuiGraphics drawContext, int mouseX, int mouseY, float delta) { - super.render(drawContext, mouseX, mouseY, delta); + public void extractRenderState(GuiGraphicsExtractor drawContext, int mouseX, int mouseY, float delta) { + super.extractRenderState(drawContext, mouseX, mouseY, delta); List lines = font.split(message, this.width / 2); for (int i = 0; i < lines.size(); i++) { FormattedCharSequence line = lines.get(i); - drawContext.drawString(font, line, this.width / 4, this.height / 2 - (lines.size() * 9 / 2) + i * 9, CommonColors.WHITE); + drawContext.text(font, line, this.width / 4, this.height / 2 - (lines.size() * 9 / 2) + i * 9, CommonColors.WHITE); } } diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java index 238cb00a..40148939 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyEventConfigurationScreen.java @@ -22,7 +22,7 @@ import me.juancarloscp52.entropy.client.Screens.Widgets.EntropyEventListWidget; import me.juancarloscp52.entropy.client.Screens.Widgets.EntropyEventListWidget.FilterMode; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.CycleButton; import net.minecraft.client.gui.components.EditBox; @@ -80,9 +80,9 @@ protected void init() { } @Override - public void render(GuiGraphics drawContext, int mouseX, int mouseY, float delta) { - super.render(drawContext, mouseX, mouseY, delta); - drawContext.drawString(font, this.title, this.width / 2 - font.width(this.title) / 2, 12, 0xFFE0E0E0); + public void extractRenderState(GuiGraphicsExtractor drawContext, int mouseX, int mouseY, float delta) { + super.extractRenderState(drawContext, mouseX, mouseY, delta); + drawContext.text(font, this.title, this.width / 2 - font.width(this.title) / 2, 12, 0xFFE0E0E0); EntropyConfigurationScreen.drawLogo(drawContext); } @@ -125,4 +125,4 @@ private void onUncheckAll() { public void onClose() { this.minecraft.setScreen(this.parent); } -} \ No newline at end of file +} diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java index cc0fdd07..e14262f2 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/EntropyIntegrationsScreen.java @@ -93,7 +93,7 @@ protected void init() { public void repositionElements() { if (tabNavigationBar != null) { - tabNavigationBar.setWidth(width); + tabNavigationBar.updateWidth(width); tabNavigationBar.arrangeElements(); final int bottom = tabNavigationBar.getRectangle().bottom(); ScreenRectangle screenRectangle = new ScreenRectangle(0, bottom, width, height - layout.getFooterHeight() - bottom); diff --git a/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java b/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java index 2f7e9def..8797f927 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java +++ b/src/main/java/me/juancarloscp52/entropy/client/Screens/Widgets/EntropyEventListWidget.java @@ -25,7 +25,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.Checkbox; import net.minecraft.client.gui.components.ContainerObjectSelectionList; import net.minecraft.client.gui.components.Tooltip; @@ -124,9 +124,9 @@ private static boolean isEventDisabledInSettings(Holder.Reference> } @Override - public void renderContent(GuiGraphics drawContext, int mouseX, int mouseY, boolean isHovering, float tickDelta) { + public void extractContent(GuiGraphicsExtractor drawContext, int mouseX, int mouseY, boolean isHovering, float tickDelta) { checkbox.setPosition(getX() + 32, getY()); - checkbox.render(drawContext, mouseX, mouseY, tickDelta); + checkbox.extractContents(drawContext, mouseX, mouseY, tickDelta); if(!eventInfo.typeReference.value().isEnabled()) { drawContext.blitSprite(RenderPipelines.GUI_TEXTURED, ICON_OVERLAY_LOCATION, getX(), getY() - 6, 32, 32); @@ -175,4 +175,4 @@ public boolean allowsVisibility(ButtonEntry buttonEntry) { } public record EventInfo(String name, Holder.Reference> typeReference) {} -} \ No newline at end of file +} diff --git a/src/main/java/me/juancarloscp52/entropy/client/UIStyles/GTAVUIRenderer.java b/src/main/java/me/juancarloscp52/entropy/client/UIStyles/GTAVUIRenderer.java index b59762c1..e6c8fd7d 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/UIStyles/GTAVUIRenderer.java +++ b/src/main/java/me/juancarloscp52/entropy/client/UIStyles/GTAVUIRenderer.java @@ -1,7 +1,7 @@ package me.juancarloscp52.entropy.client.UIStyles; import me.juancarloscp52.entropy.client.VotingClient; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.util.ARGB; import net.minecraft.util.Mth; @@ -13,7 +13,7 @@ public GTAVUIRenderer(VotingClient votingClient) { } @Override - public void renderTimer(GuiGraphics drawContext, int width, double time, double timerDuration) { + public void renderTimer(GuiGraphicsExtractor drawContext, int width, double time, double timerDuration) { drawContext.fill(0, 0, width, 10, 150 << 24); drawContext.fill(0, 0, Mth.floor(width * (time / timerDuration)), 10, (this.votingClient != null ? votingClient.getColor(255) : ARGB.color(255,70,150,70))); } diff --git a/src/main/java/me/juancarloscp52/entropy/client/UIStyles/MinecraftUIRenderer.java b/src/main/java/me/juancarloscp52/entropy/client/UIStyles/MinecraftUIRenderer.java index 383f156e..4e4c7fcf 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/UIStyles/MinecraftUIRenderer.java +++ b/src/main/java/me/juancarloscp52/entropy/client/UIStyles/MinecraftUIRenderer.java @@ -2,10 +2,11 @@ import me.juancarloscp52.entropy.mixin.BossHealthOverlayAccessor; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.client.gui.components.LerpingBossEvent; import net.minecraft.network.chat.Component; import net.minecraft.util.Mth; +import net.minecraft.util.RandomSource; import net.minecraft.world.BossEvent; import java.util.UUID; @@ -13,13 +14,13 @@ public class MinecraftUIRenderer implements UIRenderer { private final LerpingBossEvent bar; public MinecraftUIRenderer() { - UUID uuid = Mth.createInsecureUUID(); + UUID uuid = Mth.createInsecureUUID(RandomSource.create()); this.bar=new LerpingBossEvent(uuid,Component.translatable("entropy.title"), 0, BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.NOTCHED_20,false,false, false); ((BossHealthOverlayAccessor) Minecraft.getInstance().gui.getBossOverlay()).getEvents().put(uuid,bar); } @Override - public void renderTimer(GuiGraphics drawContext, int width, double time, double timerDuration) { + public void renderTimer(GuiGraphicsExtractor drawContext, int width, double time, double timerDuration) { this.bar.setProgress((float)(time / timerDuration)); diff --git a/src/main/java/me/juancarloscp52/entropy/client/UIStyles/UIRenderer.java b/src/main/java/me/juancarloscp52/entropy/client/UIStyles/UIRenderer.java index f9701230..d7401252 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/UIStyles/UIRenderer.java +++ b/src/main/java/me/juancarloscp52/entropy/client/UIStyles/UIRenderer.java @@ -1,9 +1,9 @@ package me.juancarloscp52.entropy.client.UIStyles; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; public interface UIRenderer { - public void renderTimer(GuiGraphics drawContext, int width, double time, double timerDuration); + void renderTimer(GuiGraphicsExtractor drawContext, int width, double time, double timerDuration); // TODO renderPoll and renderEventQueue } diff --git a/src/main/java/me/juancarloscp52/entropy/client/VotingClient.java b/src/main/java/me/juancarloscp52/entropy/client/VotingClient.java index a8bec558..f947d7c1 100644 --- a/src/main/java/me/juancarloscp52/entropy/client/VotingClient.java +++ b/src/main/java/me/juancarloscp52/entropy/client/VotingClient.java @@ -22,7 +22,7 @@ import me.juancarloscp52.entropy.networking.ServerboundVotes; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.network.chat.Component; import net.minecraft.util.ARGB; import net.minecraft.util.Mth; @@ -133,9 +133,9 @@ public void setIntegrations(List integrations) { this.integrations = integrations; } - public void render(GuiGraphics drawContext) { + public void render(GuiGraphicsExtractor drawContext) { if(EntropyClient.getInstance().integrationsSettings.showUpcomingEvents) { - drawContext.drawString(client.font, Component.translatable("entropy.voting.total", this.totalVotesCount), 10, 20, ARGB.color(255,255, 255, 255)); + drawContext.text(client.font, Component.translatable("entropy.voting.total", this.totalVotesCount), 10, 20, ARGB.color(255,255, 255, 255)); for (int i = 0; i < 4; i++) { renderPollElement(drawContext, i); @@ -143,7 +143,7 @@ public void render(GuiGraphics drawContext) { } } - public void renderPollElement(GuiGraphics drawContext, int i) { + public void renderPollElement(GuiGraphicsExtractor drawContext, int i) { if (this.events == null) return; @@ -154,11 +154,11 @@ public void renderPollElement(GuiGraphics drawContext, int i) { drawContext.fill(10, 31 + (i * 18), pollWidth+45+ 10 , 35 + (i * 18) + 10, ARGB.color(150,0, 0, 0)); if(settings.showCurrentPercentage) drawContext.fill(10, 31 + (i * 18), 10 + Mth.floor((pollWidth+45) * ratio), (35 + (i * 18) + 10), this.getColor(150)); - drawContext.drawString(client.font, Component.translatableEscape("entropy.votes.display",1 + i + altOffset, events.get(i)), 15, 34 + (i * 18), ARGB.color(255,255, 255, 255)); + drawContext.text(client.font, Component.translatableEscape("entropy.votes.display",1 + i + altOffset, events.get(i)), 15, 34 + (i * 18), ARGB.color(255,255, 255, 255)); if(settings.showCurrentPercentage){ Component percentage = Component.translatableEscape("entropy.votes.percentage", Mth.floor(ratio * 100)); - drawContext.drawString(client.font, percentage, pollWidth + 10 + 42 - client.font.width(percentage), 34 + (i * 18), ARGB.color(255,255, 255, 255)); + drawContext.text(client.font, percentage, pollWidth + 10 + 42 - client.font.width(percentage), 34 + (i * 18), ARGB.color(255,255, 255, 255)); } } diff --git a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyBlockTagProvider.java b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyBlockTagProvider.java index 6c9cabd0..95eec89f 100644 --- a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyBlockTagProvider.java +++ b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyBlockTagProvider.java @@ -1,16 +1,16 @@ package me.juancarloscp52.entropy.datagen; import me.juancarloscp52.entropy.EntropyTags.BlockTags; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider.BlockTagProvider; -import net.fabricmc.fabric.api.tag.convention.v1.ConventionalBlockTags; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagsProvider.BlockTagsProvider; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalBlockTags; import net.minecraft.core.HolderLookup.Provider; import net.minecraft.world.level.block.Blocks; import java.util.concurrent.CompletableFuture; -public class EntropyBlockTagProvider extends BlockTagProvider { - public EntropyBlockTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { +public class EntropyBlockTagProvider extends BlockTagsProvider { + public EntropyBlockTagProvider(FabricPackOutput output, CompletableFuture completableFuture) { super(output, completableFuture); } diff --git a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEnchantmentTagProvider.java b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEnchantmentTagProvider.java index 92c3eeee..ad601edb 100644 --- a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEnchantmentTagProvider.java +++ b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEnchantmentTagProvider.java @@ -1,7 +1,7 @@ package me.juancarloscp52.entropy.datagen; import me.juancarloscp52.entropy.EntropyTags.EnchantmentTags; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; import net.minecraft.core.HolderLookup.Provider; import net.minecraft.data.tags.EnchantmentTagsProvider; import net.minecraft.world.item.enchantment.Enchantments; @@ -9,7 +9,7 @@ import java.util.concurrent.CompletableFuture; public class EntropyEnchantmentTagProvider extends EnchantmentTagsProvider { - public EntropyEnchantmentTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { + public EntropyEnchantmentTagProvider(FabricPackOutput output, CompletableFuture completableFuture) { super(output, completableFuture); } diff --git a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEntityTypeTagProvider.java b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEntityTypeTagProvider.java index d8ab577d..cf7e0569 100644 --- a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEntityTypeTagProvider.java +++ b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyEntityTypeTagProvider.java @@ -1,15 +1,15 @@ package me.juancarloscp52.entropy.datagen; import me.juancarloscp52.entropy.EntropyTags.EntityTypeTags; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider.EntityTypeTagProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagsProvider.EntityTypeTagsProvider; import net.minecraft.core.HolderLookup.Provider; import net.minecraft.world.entity.EntityType; import java.util.concurrent.CompletableFuture; -public class EntropyEntityTypeTagProvider extends EntityTypeTagProvider { - public EntropyEntityTypeTagProvider(FabricDataOutput output, CompletableFuture completableFuture) { +public class EntropyEntityTypeTagProvider extends EntityTypeTagsProvider { + public EntropyEntityTypeTagProvider(FabricPackOutput output, CompletableFuture completableFuture) { super(output, completableFuture); } diff --git a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyItemTagProvider.java b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyItemTagProvider.java index a0d38da1..0d027dcc 100644 --- a/src/main/java/me/juancarloscp52/entropy/datagen/EntropyItemTagProvider.java +++ b/src/main/java/me/juancarloscp52/entropy/datagen/EntropyItemTagProvider.java @@ -1,8 +1,8 @@ package me.juancarloscp52.entropy.datagen; import me.juancarloscp52.entropy.EntropyTags.ItemTags; -import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider.ItemTagProvider; +import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagsProvider.ItemTagsProvider; import net.minecraft.core.HolderLookup.Provider; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; @@ -12,8 +12,8 @@ import java.util.concurrent.CompletableFuture; -public class EntropyItemTagProvider extends ItemTagProvider{ - public EntropyItemTagProvider(FabricDataOutput output, CompletableFuture completableFuture, BlockTagProvider blockTagProvider) { +public class EntropyItemTagProvider extends ItemTagsProvider { + public EntropyItemTagProvider(FabricPackOutput output, CompletableFuture completableFuture, BlockTagsProvider blockTagProvider) { super(output, completableFuture, blockTagProvider); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/Event.java b/src/main/java/me/juancarloscp52/entropy/events/Event.java index 76b47674..acd98461 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/Event.java +++ b/src/main/java/me/juancarloscp52/entropy/events/Event.java @@ -22,7 +22,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; @@ -62,16 +62,16 @@ default void endPlayer(ServerPlayer player) { } @Environment(EnvType.CLIENT) - default void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + default void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { } @Environment(EnvType.CLIENT) - default void renderQueueItem(GuiGraphics drawContext, int y) { + default void renderQueueItem(GuiGraphicsExtractor drawContext, int y) { Minecraft client = Minecraft.getInstance(); Component eventName = getDescription(); int size = client.font.width(eventName); - drawContext.drawString(client.font, eventName, client.getWindow().getGuiScaledWidth() - size - 40, y, CommonColors.WHITE); + drawContext.text(client.font, eventName, client.getWindow().getGuiScaledWidth() - size - 40, y, CommonColors.WHITE); if (!this.hasEnded() && getDuration() > 0) { drawContext.fill(client.getWindow().getGuiScaledWidth() - 35, y + 1, client.getWindow().getGuiScaledWidth() - 5, y + 8, ARGB.color(150,70, 70, 70)); drawContext.fill(client.getWindow().getGuiScaledWidth() - 35, y + 1, client.getWindow().getGuiScaledWidth() - 35 + Mth.floor(30 * (getTickCount() / (double) getDuration())), y + 8, ARGB.color(200,255, 255, 255)); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/ArmorTrimEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/ArmorTrimEvent.java index 63129c95..6ab0a5bd 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/ArmorTrimEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/ArmorTrimEvent.java @@ -21,7 +21,7 @@ public class ArmorTrimEvent extends AbstractInstantEvent { public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(player -> { Level world = player.level(); - RandomSource random = world.random; + RandomSource random = world.getRandom(); RegistryAccess registryManager = player.level().registryAccess(); Registry trimMaterials = registryManager.lookupOrThrow(Registries.TRIM_MATERIAL); Registry trimPatterns = registryManager.lookupOrThrow(Registries.TRIM_PATTERN); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/CinematicScreenEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/CinematicScreenEvent.java index 438107e0..e0bfddaf 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/CinematicScreenEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/CinematicScreenEvent.java @@ -23,7 +23,7 @@ import me.juancarloscp52.entropy.events.EventType; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.util.CommonColors; import net.minecraft.util.Mth; @@ -56,7 +56,7 @@ public void endClient() { } @Override - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { client = Minecraft.getInstance(); int borderHeight = Mth.floor(client.getWindow().getGuiScaledHeight() * 0.12f); drawContext.fill(0, 0, client.getWindow().getGuiScaledWidth(), borderHeight, CommonColors.BLACK); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/DVDEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/DVDEvent.java index 19981e8e..2fe8648b 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/DVDEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/DVDEvent.java @@ -22,7 +22,7 @@ import me.juancarloscp52.entropy.events.EventType; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.util.CommonColors; import net.minecraft.util.Mth; @@ -52,7 +52,7 @@ public void initClient() { } @Override - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { renderDVDOverlay(drawContext, tickCounter); } @@ -79,7 +79,7 @@ public short getDuration() { return (short) (super.getDuration() * 0.75d); } - private void renderDVDOverlay(GuiGraphics drawContext, DeltaTracker tickCounter) { + private void renderDVDOverlay(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { if (client == null) return; int height = client.getWindow().getGuiScaledHeight(); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java index a86e24b3..4831b756 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java @@ -30,7 +30,7 @@ public void tick() { var difficulty = serverPlayerEntity.level().getDifficulty(); var dmg = difficulty == Difficulty.HARD ? 3 : difficulty == Difficulty.NORMAL ? 5 : 7; var entity = hitRes.getEntity(); - if (entity instanceof LivingEntity && !entity.getType().is(EntityTypeTags.DO_NOT_DAMAGE)) + if (entity instanceof LivingEntity && !entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_DAMAGE)) entity.hurt(entity.damageSources().playerAttack(serverPlayerEntity), dmg); } } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java index e6fb7330..af2c6a92 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java @@ -31,7 +31,7 @@ public class ExplodeNearbyEntitiesEvent extends AbstractInstantEvent { public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> serverPlayerEntity.level().getEntities(serverPlayerEntity, new AABB(serverPlayerEntity.position().add(70, 70, 70), serverPlayerEntity.position().add(-70, -70, -70))).forEach(entity -> { entity.level().explode(entity, entity.getX(), entity.getY() + 1f, entity.getZ(), 2.1f, Level.ExplosionInteraction.MOB); - if(!entity.getType().is(EntityTypeTags.DO_NOT_EXPLODE)) + if(!entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_EXPLODE)) entity.kill(serverPlayerEntity.level()); })); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java index d412836b..ae6d8dd2 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java @@ -39,7 +39,7 @@ public void init() { }); worlds.forEach(world -> { world.getAllEntities().forEach(entity -> { - if(entity instanceof LivingEntity livingEntity && !livingEntity.getType().is(EntityTypeTags.DO_NOT_FLING)) { + if(entity instanceof LivingEntity livingEntity && !livingEntity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_FLING)) { fling(livingEntity); livingEntity.addEffect(new MobEffectInstance(MobEffects.SLOW_FALLING, 140)); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java index c7d95e52..3f59dbc3 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java @@ -14,7 +14,7 @@ public class ForcefieldEvent extends AbstractTimedEvent { public static final EventType TYPE = EventType.builder(ForcefieldEvent::new).build(); - private static final Predicate ALLOWED_ENTITY = EntitySelector.ENTITY_STILL_ALIVE.and(entity -> !entity.getType().is(EntityTypeTags.IGNORED_BY_FORCEFIELD_AND_ENTITY_MAGNET)); + private static final Predicate ALLOWED_ENTITY = EntitySelector.ENTITY_STILL_ALIVE.and(entity -> !entity.getType().builtInRegistryHolder().is(EntityTypeTags.IGNORED_BY_FORCEFIELD_AND_ENTITY_MAGNET)); @Override public void tick() { diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/HerobrineEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/HerobrineEvent.java index d1598298..3412792a 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/HerobrineEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/HerobrineEvent.java @@ -28,7 +28,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.core.BlockPos; import net.minecraft.resources.Identifier; import net.minecraft.sounds.SoundSource; @@ -77,7 +77,7 @@ public void endClient() { @Override @Environment(EnvType.CLIENT) - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { float sin = 0.75f + Mth.abs(0.25f * Mth.sin(getTickCount() * 0.0625f)); EntropyClientUtils.renderOverlay(drawContext, VIGNETTE_TEXTURE, ARGB.colorFromFloat(1.0F, sin, sin, sin)); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java index 1c419f66..bc8518a6 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java @@ -27,7 +27,7 @@ public void tick() { } for(var world : worlds) for(var entity : world.getAllEntities()) - if(entity instanceof Mob && !entity.getType().is(EntityTypeTags.DO_NOT_HIGHLIGHT)) + if(entity instanceof Mob && !entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_HIGHLIGHT)) ((Mob)entity).addEffect(new MobEffectInstance(MobEffects.GLOWING, 2)); super.tick(); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java index 57f27c9d..3f27b85e 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java @@ -29,7 +29,7 @@ public class IgniteNearbyEntitiesEvent extends AbstractInstantEvent { @Override public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> serverPlayerEntity.level().getEntities(serverPlayerEntity, new AABB(serverPlayerEntity.position().add(50, 50, 50), serverPlayerEntity.position().add(-50, -50, -50))).forEach(entity -> { - if(!entity.getType().is(EntityTypeTags.DO_NOT_IGNITE)) + if(!entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_IGNITE)) entity.igniteForSeconds(30); })); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java index 061744f8..4cff245f 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java @@ -38,7 +38,12 @@ public class IntenseThunderStormEvent extends AbstractTimedEvent { @Override public void init() { random = new Random(); - Entropy.getInstance().eventHandler.server.overworld().setWeatherParameters(0, this.getDuration(), true, true); + var weatherData = Entropy.getInstance().eventHandler.server.overworld().getWeatherData(); + weatherData.setClearWeatherTime(0); + weatherData.setRainTime(this.getDuration()); + weatherData.setThunderTime(this.getDuration()); + weatherData.setRaining(true); + weatherData.setThundering(true); } @Override diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java index 3e0fe3ea..a404208c 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java @@ -39,7 +39,7 @@ public void tick() { } public boolean shouldBeInvisible(Entity entity) { - return entity instanceof LivingEntity && !entity.getType().is(EntityTypeTags.NOT_INVISIBLE); + return entity instanceof LivingEntity && !entity.getType().builtInRegistryHolder().is(EntityTypeTags.NOT_INVISIBLE); } @Override diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java index c2ced6ec..33991b8f 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java @@ -35,12 +35,12 @@ public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> { serverPlayerEntity.level().getEntities(serverPlayerEntity, new AABB(serverPlayerEntity.position().add(50, 50, 50), serverPlayerEntity.position().add(-50, -50, -50))).forEach( entity -> { - if(!(entity instanceof Player) && entity instanceof LivingEntity livingEntity && !livingEntity.getType().is(EntityTypeTags.DO_NOT_LEVITATE)){ + if(!(entity instanceof Player) && entity instanceof LivingEntity livingEntity && !livingEntity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_LEVITATE)){ livingEntity.addEffect(new MobEffectInstance(MobEffects.LEVITATION,(int) (Entropy.getInstance().settings.baseEventDuration*0.5),4, true, false)); } } ); - if(!serverPlayerEntity.getType().is(EntityTypeTags.DO_NOT_LEVITATE)) + if(!serverPlayerEntity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_LEVITATE)) serverPlayerEntity.addEffect(new MobEffectInstance(MobEffects.LEVITATION,(int) (Entropy.getInstance().settings.baseEventDuration*0.5),4, true, false)); }); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java index 0b359cf0..152731ea 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java @@ -71,7 +71,7 @@ else if (odds < 98) // Kill mobs around and spawn golden items var box = new AABB(minX, minY, minZ, maxX, maxY, maxZ); - var mobs = world.getEntities(player, box, x -> x instanceof LivingEntity && x.isAlive() && !x.getType().is(EntropyTags.EntityTypeTags.IGNORED_BY_MIDAS_TOUCH)); + var mobs = world.getEntities(player, box, x -> x instanceof LivingEntity && x.isAlive() && !x.getType().builtInRegistryHolder().is(EntropyTags.EntityTypeTags.IGNORED_BY_MIDAS_TOUCH)); for (var mob : mobs) { ItemStack itemStack; diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/NoAttackingEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/NoAttackingEvent.java index 10325872..c6260ac3 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/NoAttackingEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/NoAttackingEvent.java @@ -5,7 +5,7 @@ import me.juancarloscp52.entropy.events.AbstractTimedEvent; import me.juancarloscp52.entropy.events.EventCategory; import me.juancarloscp52.entropy.events.EventType; -import net.fabricmc.fabric.mixin.client.keybinding.KeyMappingAccessor; +import net.fabricmc.fabric.mixin.client.keymapping.KeyMappingAccessor; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; import net.minecraft.client.Options; diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/NoUseKeyEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/NoUseKeyEvent.java index 48a0c17f..cd715c42 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/NoUseKeyEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/NoUseKeyEvent.java @@ -5,7 +5,7 @@ import me.juancarloscp52.entropy.events.AbstractTimedEvent; import me.juancarloscp52.entropy.events.EventCategory; import me.juancarloscp52.entropy.events.EventType; -import net.fabricmc.fabric.mixin.client.keybinding.KeyMappingAccessor; +import net.fabricmc.fabric.mixin.client.keymapping.KeyMappingAccessor; import net.minecraft.client.KeyMapping; import net.minecraft.client.Minecraft; import net.minecraft.client.Options; diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/PumpkinViewEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/PumpkinViewEvent.java index 7e989724..a8ef5b77 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/PumpkinViewEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/PumpkinViewEvent.java @@ -24,7 +24,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.resources.Identifier; import net.minecraft.util.CommonColors; @@ -42,7 +42,7 @@ public void initClient() { @Override @Environment(EnvType.CLIENT) - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { EntropyClientUtils.renderOverlay(drawContext, PUMPKIN_TEXTURE, CommonColors.WHITE); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java index 2987f401..e69b94cf 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java @@ -20,7 +20,7 @@ public void tickClient() { Vector3f color = HSBtoRGB(((tickCount * 5) % 360) / 360.0F, 1.0F, 1.0F); Minecraft.getInstance().level.entitiesForRendering().forEach(entity -> { - if(entity.getType().is(EntityTypeTags.NO_RAINBOW_TRAIL)) + if(entity.getType().builtInRegistryHolder().is(EntityTypeTags.NO_RAINBOW_TRAIL)) return; Quaterniond relativePosition = new Quaterniond(-0.5D + xOffset, 0.0D, -0.5D, 0.0D); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/RollingCameraEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/RollingCameraEvent.java index 2577dcc4..f40504f0 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/RollingCameraEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/RollingCameraEvent.java @@ -7,7 +7,7 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.DeltaTracker; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import java.util.Random; @@ -28,7 +28,7 @@ public void endClient() { @Override @Environment(EnvType.CLIENT) - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { Variables.cameraRoll = (Variables.cameraRoll + (sign * 1.25f * tickCounter.getGameTimeDeltaTicks())) % 360; } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java index 271c4514..d2f74377 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java @@ -125,12 +125,13 @@ public void init() { var sandPos = startPos.offset(-ix, iy, iz); // Prevent sand from falling - world.getBlockTicks().removeContainer(new ChunkPos(sandPos)); + ChunkPos sandChunk = new ChunkPos(sandPos.getX() >> 4, sandPos.getZ() >> 4); + world.getBlockTicks().removeContainer(sandChunk); world.setBlockAndUpdate(sandPos, Blocks.SAND.defaultBlockState()); // Restore tick scheduler - world.getBlockTicks().addContainer(new ChunkPos(sandPos), new LevelChunkTicks()); + world.getBlockTicks().addContainer(sandChunk, new LevelChunkTicks()); } // Cactus diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java index c1b84c23..a5d0f921 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java @@ -21,6 +21,7 @@ import me.juancarloscp52.entropy.events.AbstractTimedEvent; import me.juancarloscp52.entropy.events.EventType; import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.storage.ServerLevelData; public class TimelapseEvent extends AbstractTimedEvent { public static final EventType TYPE = EventType.builder(TimelapseEvent::new).build(); @@ -28,7 +29,8 @@ public class TimelapseEvent extends AbstractTimedEvent { @Override public void tick() { for (ServerLevel serverWorld : Entropy.getInstance().eventHandler.server.getAllLevels()) { - serverWorld.setDayTime(serverWorld.getDayTime() + (long) 125); + ServerLevelData levelData = (ServerLevelData) serverWorld.getLevelData(); + levelData.setGameTime(levelData.getGameTime() + 125L); } super.tick(); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/VerticalScreenEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/VerticalScreenEvent.java index 0fb5de71..0d4028de 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/VerticalScreenEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/VerticalScreenEvent.java @@ -22,7 +22,7 @@ import me.juancarloscp52.entropy.events.EventType; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.GuiGraphicsExtractor; import net.minecraft.util.CommonColors; import net.minecraft.util.Mth; @@ -32,7 +32,7 @@ public class VerticalScreenEvent extends AbstractTimedEvent { Minecraft client; @Override - public void render(GuiGraphics drawContext, DeltaTracker tickCounter) { + public void render(GuiGraphicsExtractor drawContext, DeltaTracker tickCounter) { client = Minecraft.getInstance(); int borderWidth = Mth.floor(client.getWindow().getGuiScaledWidth() * 0.341f); drawContext.fill(0, 0, borderWidth, client.getWindow().getGuiScaledHeight(), CommonColors.BLACK); diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/BlockMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/BlockMixin.java index 05222319..c896360a 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/BlockMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/BlockMixin.java @@ -69,9 +69,9 @@ private static void randomDrops(Level world, BlockPos pos, ItemStack stack, Call if (Variables.randomDrops || Variables.luckyDrops) { if (world instanceof ServerLevel serverLevel && !stack.isEmpty() && serverLevel.getGameRules().get(GameRules.BLOCK_DROPS)) { float radius = 0.5F; - double xOffset = (double) (world.random.nextFloat() * radius) + 0.25D; - double yOffset = (double) (world.random.nextFloat() * radius) + 0.25D; - double zOffset = (double) (world.random.nextFloat() * radius) + 0.25D; + double xOffset = (double) (world.getRandom().nextFloat() * radius) + 0.25D; + double yOffset = (double) (world.getRandom().nextFloat() * radius) + 0.25D; + double zOffset = (double) (world.getRandom().nextFloat() * radius) + 0.25D; ItemEntity itemEntity = new ItemEntity(serverLevel, (double) pos.getX() + xOffset, (double) pos.getY() + yOffset, (double) pos.getZ() + zOffset, computeItemStack(stack, serverLevel)); itemEntity.setDefaultPickUpDelay(); serverLevel.addFreshEntity(itemEntity); @@ -119,4 +119,4 @@ private static void shouldDrawSide(BlockState state, BlockState neighbor, Direct } } -} \ No newline at end of file +} diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/BlockStateBaseMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/BlockStateBaseMixin.java index b11bed7d..a7be4114 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/BlockStateBaseMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/BlockStateBaseMixin.java @@ -50,7 +50,7 @@ public void getLuminance(CallbackInfoReturnable ci) { // getFaceOcclusionShape needs to be modified in order to work with Sodium. Without it if block is next to the stone then only face next to the air is rendered. @Inject(at = @At("HEAD"), method = "getFaceOcclusionShape", cancellable = true) - public void getCullingFace(CallbackInfoReturnable ci) { + public void getCullingFace(Direction direction, CallbackInfoReturnable ci) { if (Variables.xrayActive) { if (((BlockStateBase) (Object) this).is(BlockTags.SHOWN_DURING_XRAY)) ci.setReturnValue(Shapes.block()); diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/BossHealthOverlayMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/BossHealthOverlayMixin.java index 8725f16e..9db73557 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/BossHealthOverlayMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/BossHealthOverlayMixin.java @@ -14,12 +14,12 @@ */ public abstract class BossHealthOverlayMixin { - @ModifyArg(method = "render", at = @At(value = "INVOKE",target = "Lnet/minecraft/client/gui/components/BossHealthOverlay;drawBar(Lnet/minecraft/client/gui/GuiGraphics;IILnet/minecraft/world/BossEvent;)V"),index = 2) + @ModifyArg(method = "extractRenderState", at = @At(value = "INVOKE",target = "Lnet/minecraft/client/gui/components/BossHealthOverlay;extractBar(Lnet/minecraft/client/gui/GuiGraphicsExtractor;IILnet/minecraft/world/BossEvent;)V"),index = 2) public int applyScreenBorderToBossBar(int y){ return y + (Entropy.getInstance().settings.UIstyle == EntropySettings.UIStyle.GTAV ? 10:0); } - @ModifyArg(method = "render", at = @At(value = "INVOKE",target = "Lnet/minecraft/client/gui/GuiGraphics;drawString(Lnet/minecraft/client/gui/Font;Lnet/minecraft/network/chat/Component;III)V"),index = 3) + @ModifyArg(method = "extractRenderState", at = @At(value = "INVOKE",target = "Lnet/minecraft/client/gui/GuiGraphicsExtractor;text(Lnet/minecraft/client/gui/Font;Lnet/minecraft/network/chat/Component;III)V"),index = 3) public int applyScreenBorderToBossName(int y){ return y + (Entropy.getInstance().settings.UIstyle == EntropySettings.UIStyle.GTAV ? 10:0); } diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/CameraMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/CameraMixin.java index 72097e33..03544545 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/CameraMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/CameraMixin.java @@ -19,21 +19,27 @@ import me.juancarloscp52.entropy.Variables; import net.minecraft.client.Camera; +import net.minecraft.client.DeltaTracker; +import net.minecraft.client.Minecraft; import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; 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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Camera.class) public abstract class CameraMixin { @Unique final int cameraYDistance = 8; + @Shadow private Entity entity; + + @Shadow private Minecraft minecraft; + @Shadow protected abstract void setRotation(float yaw, float pitch); @Shadow protected abstract void setPosition(double x, double y, double z); @@ -42,13 +48,24 @@ public abstract class CameraMixin { @Shadow private float eyeHeight; - @Inject(method = "setup",at=@At("TAIL")) - private void update(Level area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickDelta, CallbackInfo ci){ + @Inject(method = "update",at=@At("TAIL")) + private void update(DeltaTracker deltaTracker, CallbackInfo ci){ if(!Variables.topView) return; + Entity focusedEntity = this.entity; + if (focusedEntity == null) { + return; + } + float tickDelta = deltaTracker.getGameTimeDeltaPartialTick(true); this.setRotation(0, +90); this.setPosition(Mth.lerp(tickDelta, focusedEntity.xo, focusedEntity.getX()), Mth.lerp(tickDelta, focusedEntity.yo+cameraYDistance, focusedEntity.getY()+cameraYDistance) + (double)Mth.lerp(tickDelta, this.eyeHeightOld+cameraYDistance, this.eyeHeight+cameraYDistance), Mth.lerp(tickDelta, focusedEntity.zo, focusedEntity.getZ())); } + @Inject(method = "getFov", at = @At("RETURN"), cancellable = true) + private void changeFov(CallbackInfoReturnable cir) { + if (Variables.forcedFov) { + cir.setReturnValue((float) Variables.fov); + } + } } diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/ClientLevelMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/ClientLevelMixin.java index 9ec02990..9ae39007 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/ClientLevelMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/ClientLevelMixin.java @@ -19,6 +19,7 @@ import me.juancarloscp52.entropy.client.EntropyClient; import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.network.chat.Component; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -28,7 +29,7 @@ public class ClientLevelMixin { @Inject(method = "disconnect", at = @At("HEAD")) - private void onDisconnect(CallbackInfo ci) { + private void onDisconnect(Component quitMessage, CallbackInfo ci) { if (EntropyClient.getInstance().clientEventHandler == null) return; EntropyClient.getInstance().clientEventHandler.endChaos(); diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/FogRendererAccessor.java b/src/main/java/me/juancarloscp52/entropy/mixin/FogRendererAccessor.java index 8b1e251f..5a8d3b1f 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/FogRendererAccessor.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/FogRendererAccessor.java @@ -27,5 +27,7 @@ @Mixin(FogRenderer.class) public interface FogRendererAccessor { @Accessor("FOG_ENVIRONMENTS") - List getFogEnvironments(); -} \ No newline at end of file + static List getFogEnvironments() { + throw new AssertionError(); + } +} diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java index 9e387da6..d6c9f543 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java @@ -18,25 +18,20 @@ package me.juancarloscp52.entropy.mixin; import com.mojang.blaze3d.resource.CrossFrameResourcePool; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Axis; +import org.joml.Matrix4f; +import org.joml.Matrix4fc; import me.juancarloscp52.entropy.Variables; import me.juancarloscp52.entropy.client.ShaderManager; -import net.minecraft.client.Camera; import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.util.Mth; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.level.material.FogType; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(GameRenderer.class) public class GameRendererMixin { @@ -45,49 +40,10 @@ public class GameRendererMixin { @Final private Minecraft minecraft; - @Shadow private float oldFovModifier; - - @Shadow private float fovModifier; - @Shadow @Final private CrossFrameResourcePool resourcePool; - @Inject(method = "getFov", at = @At("RETURN"), cancellable = true) - public void changeFov(Camera camera, float tickDelta, boolean changingFov, CallbackInfoReturnable cir) { - if (Variables.forcedFov) { - if (Variables.ignoreVariableFov) { - cir.setReturnValue(Variables.fov * Mth.lerp(minecraft.options.fovEffectScale().get().floatValue(), Variables.fov, 1.0f)); - } else { - cir.setReturnValue(updateFov(camera, tickDelta, changingFov, Variables.fov)); - } - } - } - private float updateFov(Camera camera, float tickDelta, boolean changingFov, float fovValue) { - { - float fov = 70.0f; - if (changingFov) { - fov = fovValue; - fov *= Mth.lerp(tickDelta, this.oldFovModifier, this.fovModifier); - } - - if (camera.entity() instanceof LivingEntity && ((LivingEntity) camera.entity()).isDeadOrDying()) { - float f = Math.min((float) ((LivingEntity) camera.entity()).deathTime + tickDelta, 20.0F); - fov /= ((1.0F - 500.0F / (f + 500.0F)) * 2.0F + 1.0F); - } - FogType cameraSubmersionType = camera.getFluidInCamera(); - if (cameraSubmersionType == FogType.LAVA || cameraSubmersionType == FogType.WATER) { - fov *= Mth.lerp(this.minecraft.options.fovEffectScale().get().floatValue(), 1.0F, 0.85714287F); - } -// FluidState fluidState = camera.getSubmergedFluidState(); -// if (!fluidState.isEmpty()) { -// fov = fov * 60.0D / 70.0D; -// } - - return fov; - } - } - @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;doEntityOutline()V", shift = At.Shift.AFTER)) public void renderShaders(DeltaTracker tickCounter, boolean tick, CallbackInfo ci){ if (Variables.blur) { @@ -108,11 +64,18 @@ public void renderBlackWhiteShader(DeltaTracker tickCounter, boolean tick, Callb } } - @ModifyVariable(method = "renderLevel", at = @At("STORE"), ordinal = 0) - private PoseStack matrixStack(PoseStack matrixStack) { + @ModifyArg( + method = "renderLevel", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/renderer/LevelRenderer;renderLevel(Lcom/mojang/blaze3d/resource/GraphicsResourceAllocator;Lnet/minecraft/client/DeltaTracker;ZLnet/minecraft/client/renderer/state/level/CameraRenderState;Lorg/joml/Matrix4fc;Lcom/mojang/blaze3d/buffers/GpuBufferSlice;Lorg/joml/Vector4f;ZLnet/minecraft/client/renderer/chunk/ChunkSectionsToRender;)V" + ), + index = 4 + ) + private Matrix4fc rotateLevelMatrix(Matrix4fc matrix) { if (Variables.cameraRoll != 0f) { - matrixStack.mulPose(Axis.ZP.rotationDegrees(Variables.cameraRoll)); + return new Matrix4f(matrix).rotateZ((float) Math.toRadians(Variables.cameraRoll)); } - return matrixStack; + return matrix; } } diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/ScreenEffectRendererMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/ScreenEffectRendererMixin.java index ddc06609..7a69ebed 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/ScreenEffectRendererMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/ScreenEffectRendererMixin.java @@ -1,8 +1,11 @@ package me.juancarloscp52.entropy.mixin; +import com.mojang.blaze3d.vertex.PoseStack; import me.juancarloscp52.entropy.Entropy; import me.juancarloscp52.entropy.Variables; +import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.ScreenEffectRenderer; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -11,7 +14,7 @@ @Mixin(ScreenEffectRenderer.class) public class ScreenEffectRendererMixin { @Inject(method = "renderFire", at = @At("HEAD"), cancellable = true) - private static void preventRenderingFireOverlay(CallbackInfo ci) { + private static void preventRenderingFireOverlay(PoseStack poseStack, MultiBufferSource bufferSource, TextureAtlasSprite sprite, CallbackInfo ci) { if(Variables.fireEvent && Entropy.getInstance().settings.accessibilityMode) ci.cancel(); } diff --git a/src/main/java/me/juancarloscp52/entropy/networking/NetworkingConstants.java b/src/main/java/me/juancarloscp52/entropy/networking/NetworkingConstants.java index b149fa61..50ce25d2 100644 --- a/src/main/java/me/juancarloscp52/entropy/networking/NetworkingConstants.java +++ b/src/main/java/me/juancarloscp52/entropy/networking/NetworkingConstants.java @@ -38,17 +38,17 @@ public class NetworkingConstants { private static CustomPacketPayload.Type registerC2S(String name, StreamCodec codec) { final CustomPacketPayload.Type type = register(name); - PayloadTypeRegistry.playC2S().register(type, codec); + PayloadTypeRegistry.serverboundPlay().register(type, codec); return type; } private static CustomPacketPayload.Type registerS2C(String name, StreamCodec codec) { final CustomPacketPayload.Type type = register(name); - PayloadTypeRegistry.playS2C().register(type, codec); + PayloadTypeRegistry.clientboundPlay().register(type, codec); return type; } private static CustomPacketPayload.Type register(final String name) { return new CustomPacketPayload.Type<>(Identifier.fromNamespaceAndPath("entropy", name)); } -} \ No newline at end of file +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 64225f2e..631e85a2 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -39,7 +39,7 @@ ], "depends": { "fabricloader": ">=0.16.0", - "fabric": "*", + "fabric-api": "*", "minecraft": ">=1.21.11" }, "suggests": { From 3379a27e9f94f8c368afce6562dbc9571e290688 Mon Sep 17 00:00:00 2001 From: ArikSquad <75741608+ArikSquad@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:26:30 +0300 Subject: [PATCH 2/4] refactor: correctness Co-authored-by: bl4ckscor3 --- .../juancarloscp52/entropy/events/db/DeathSightEvent.java | 2 +- .../entropy/events/db/ExplodeNearbyEntitiesEvent.java | 2 +- .../entropy/events/db/FlingEntitiesEvent.java | 2 +- .../juancarloscp52/entropy/events/db/ForcefieldEvent.java | 2 +- .../entropy/events/db/HighlightAllMobsEvent.java | 2 +- .../entropy/events/db/IgniteNearbyEntitiesEvent.java | 2 +- .../entropy/events/db/IntenseThunderStormEvent.java | 2 +- .../entropy/events/db/InvisibleEveryoneEvent.java | 2 +- .../juancarloscp52/entropy/events/db/LevitationEvent.java | 7 +++---- .../juancarloscp52/entropy/events/db/MidasTouchEvent.java | 2 +- .../entropy/events/db/RainbowTrailsEvent.java | 2 +- .../me/juancarloscp52/entropy/events/db/SkyBlockEvent.java | 2 +- .../me/juancarloscp52/entropy/mixin/GameRendererMixin.java | 4 ++-- 13 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java index 4831b756..918a5c7e 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/DeathSightEvent.java @@ -30,7 +30,7 @@ public void tick() { var difficulty = serverPlayerEntity.level().getDifficulty(); var dmg = difficulty == Difficulty.HARD ? 3 : difficulty == Difficulty.NORMAL ? 5 : 7; var entity = hitRes.getEntity(); - if (entity instanceof LivingEntity && !entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_DAMAGE)) + if (entity instanceof LivingEntity && !entity.is(EntityTypeTags.DO_NOT_DAMAGE)) entity.hurt(entity.damageSources().playerAttack(serverPlayerEntity), dmg); } } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java index af2c6a92..01994399 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/ExplodeNearbyEntitiesEvent.java @@ -31,7 +31,7 @@ public class ExplodeNearbyEntitiesEvent extends AbstractInstantEvent { public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> serverPlayerEntity.level().getEntities(serverPlayerEntity, new AABB(serverPlayerEntity.position().add(70, 70, 70), serverPlayerEntity.position().add(-70, -70, -70))).forEach(entity -> { entity.level().explode(entity, entity.getX(), entity.getY() + 1f, entity.getZ(), 2.1f, Level.ExplosionInteraction.MOB); - if(!entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_EXPLODE)) + if(!entity.is(EntityTypeTags.DO_NOT_EXPLODE)) entity.kill(serverPlayerEntity.level()); })); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java index ae6d8dd2..876d2de3 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/FlingEntitiesEvent.java @@ -39,7 +39,7 @@ public void init() { }); worlds.forEach(world -> { world.getAllEntities().forEach(entity -> { - if(entity instanceof LivingEntity livingEntity && !livingEntity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_FLING)) { + if(entity instanceof LivingEntity livingEntity && !livingEntity.is(EntityTypeTags.DO_NOT_FLING)) { fling(livingEntity); livingEntity.addEffect(new MobEffectInstance(MobEffects.SLOW_FALLING, 140)); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java index 3f59dbc3..c3a49337 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/ForcefieldEvent.java @@ -14,7 +14,7 @@ public class ForcefieldEvent extends AbstractTimedEvent { public static final EventType TYPE = EventType.builder(ForcefieldEvent::new).build(); - private static final Predicate ALLOWED_ENTITY = EntitySelector.ENTITY_STILL_ALIVE.and(entity -> !entity.getType().builtInRegistryHolder().is(EntityTypeTags.IGNORED_BY_FORCEFIELD_AND_ENTITY_MAGNET)); + private static final Predicate ALLOWED_ENTITY = EntitySelector.ENTITY_STILL_ALIVE.and(entity -> !entity.is(EntityTypeTags.IGNORED_BY_FORCEFIELD_AND_ENTITY_MAGNET)); @Override public void tick() { diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java index bc8518a6..862dc813 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/HighlightAllMobsEvent.java @@ -27,7 +27,7 @@ public void tick() { } for(var world : worlds) for(var entity : world.getAllEntities()) - if(entity instanceof Mob && !entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_HIGHLIGHT)) + if(entity instanceof Mob && !entity.is(EntityTypeTags.DO_NOT_HIGHLIGHT)) ((Mob)entity).addEffect(new MobEffectInstance(MobEffects.GLOWING, 2)); super.tick(); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java index 3f27b85e..d7b0e123 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/IgniteNearbyEntitiesEvent.java @@ -29,7 +29,7 @@ public class IgniteNearbyEntitiesEvent extends AbstractInstantEvent { @Override public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> serverPlayerEntity.level().getEntities(serverPlayerEntity, new AABB(serverPlayerEntity.position().add(50, 50, 50), serverPlayerEntity.position().add(-50, -50, -50))).forEach(entity -> { - if(!entity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_IGNITE)) + if(!entity.is(EntityTypeTags.DO_NOT_IGNITE)) entity.igniteForSeconds(30); })); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java index 4cff245f..bdfdc2b3 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/IntenseThunderStormEvent.java @@ -38,7 +38,7 @@ public class IntenseThunderStormEvent extends AbstractTimedEvent { @Override public void init() { random = new Random(); - var weatherData = Entropy.getInstance().eventHandler.server.overworld().getWeatherData(); + var weatherData = Entropy.getInstance().eventHandler.server.getWeatherData(); weatherData.setClearWeatherTime(0); weatherData.setRainTime(this.getDuration()); weatherData.setThunderTime(this.getDuration()); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java index a404208c..793bd5b9 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/InvisibleEveryoneEvent.java @@ -39,7 +39,7 @@ public void tick() { } public boolean shouldBeInvisible(Entity entity) { - return entity instanceof LivingEntity && !entity.getType().builtInRegistryHolder().is(EntityTypeTags.NOT_INVISIBLE); + return entity instanceof LivingEntity && !entity.is(EntityTypeTags.NOT_INVISIBLE); } @Override diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java index 33991b8f..3bb34bbb 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/LevitationEvent.java @@ -35,12 +35,11 @@ public void init() { Entropy.getInstance().eventHandler.getActivePlayers().forEach(serverPlayerEntity -> { serverPlayerEntity.level().getEntities(serverPlayerEntity, new AABB(serverPlayerEntity.position().add(50, 50, 50), serverPlayerEntity.position().add(-50, -50, -50))).forEach( entity -> { - if(!(entity instanceof Player) && entity instanceof LivingEntity livingEntity && !livingEntity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_LEVITATE)){ + if(!(entity instanceof Player) && entity instanceof LivingEntity livingEntity && !livingEntity.is(EntityTypeTags.DO_NOT_LEVITATE)){ livingEntity.addEffect(new MobEffectInstance(MobEffects.LEVITATION,(int) (Entropy.getInstance().settings.baseEventDuration*0.5),4, true, false)); } - } - ); - if(!serverPlayerEntity.getType().builtInRegistryHolder().is(EntityTypeTags.DO_NOT_LEVITATE)) + }); + if(!serverPlayerEntity.is(EntityTypeTags.DO_NOT_LEVITATE)) serverPlayerEntity.addEffect(new MobEffectInstance(MobEffects.LEVITATION,(int) (Entropy.getInstance().settings.baseEventDuration*0.5),4, true, false)); }); } diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java index 152731ea..21415059 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/MidasTouchEvent.java @@ -71,7 +71,7 @@ else if (odds < 98) // Kill mobs around and spawn golden items var box = new AABB(minX, minY, minZ, maxX, maxY, maxZ); - var mobs = world.getEntities(player, box, x -> x instanceof LivingEntity && x.isAlive() && !x.getType().builtInRegistryHolder().is(EntropyTags.EntityTypeTags.IGNORED_BY_MIDAS_TOUCH)); + var mobs = world.getEntities(player, box, x -> x instanceof LivingEntity && x.isAlive() && !x.is(EntropyTags.EntityTypeTags.IGNORED_BY_MIDAS_TOUCH)); for (var mob : mobs) { ItemStack itemStack; diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java index e69b94cf..cae232e4 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/RainbowTrailsEvent.java @@ -20,7 +20,7 @@ public void tickClient() { Vector3f color = HSBtoRGB(((tickCount * 5) % 360) / 360.0F, 1.0F, 1.0F); Minecraft.getInstance().level.entitiesForRendering().forEach(entity -> { - if(entity.getType().builtInRegistryHolder().is(EntityTypeTags.NO_RAINBOW_TRAIL)) + if(entity.is(EntityTypeTags.NO_RAINBOW_TRAIL)) return; Quaterniond relativePosition = new Quaterniond(-0.5D + xOffset, 0.0D, -0.5D, 0.0D); diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java index d2f74377..6cf66244 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/SkyBlockEvent.java @@ -125,7 +125,7 @@ public void init() { var sandPos = startPos.offset(-ix, iy, iz); // Prevent sand from falling - ChunkPos sandChunk = new ChunkPos(sandPos.getX() >> 4, sandPos.getZ() >> 4); + ChunkPos sandChunk = ChunkPos.containing(sandPos); world.getBlockTicks().removeContainer(sandChunk); world.setBlockAndUpdate(sandPos, Blocks.SAND.defaultBlockState()); diff --git a/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java b/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java index d6c9f543..f2d02da2 100644 --- a/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java +++ b/src/main/java/me/juancarloscp52/entropy/mixin/GameRendererMixin.java @@ -45,7 +45,7 @@ public class GameRendererMixin { private CrossFrameResourcePool resourcePool; @Inject(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/LevelRenderer;doEntityOutline()V", shift = At.Shift.AFTER)) - public void renderShaders(DeltaTracker tickCounter, boolean tick, CallbackInfo ci){ + public void renderShaders(DeltaTracker deltaTracker, boolean advanceGameTime, CallbackInfo ci) { if (Variables.blur) { ShaderManager.render(ShaderManager.BLUR, minecraft, resourcePool); } else if (Variables.invertedShader) { @@ -58,7 +58,7 @@ public void renderShaders(DeltaTracker tickCounter, boolean tick, CallbackInfo c } @Inject(method = "render", at = @At(value = "TAIL")) - public void renderBlackWhiteShader(DeltaTracker tickCounter, boolean tick, CallbackInfo ci) { + public void renderBlackWhiteShader(DeltaTracker deltaTracker, boolean advanceGameTime, CallbackInfo ci) { if (Variables.blackAndWhite) { ShaderManager.render(ShaderManager.BLACK_AND_WHITE, minecraft, resourcePool); } From 6965f6846c7abf5d79d0b5d56d0cc4cbddb25779 Mon Sep 17 00:00:00 2001 From: ArikSquad <75741608+ArikSquad@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:32:41 +0300 Subject: [PATCH 3/4] fix: modify clock instead of gameTime Co-authored-by: bl4ckscor3 --- .../me/juancarloscp52/entropy/events/db/TimelapseEvent.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java index a5d0f921..87ca86bc 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/TimelapseEvent.java @@ -21,6 +21,7 @@ import me.juancarloscp52.entropy.events.AbstractTimedEvent; import me.juancarloscp52.entropy.events.EventType; import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.clock.WorldClock; import net.minecraft.world.level.storage.ServerLevelData; public class TimelapseEvent extends AbstractTimedEvent { @@ -29,8 +30,9 @@ public class TimelapseEvent extends AbstractTimedEvent { @Override public void tick() { for (ServerLevel serverWorld : Entropy.getInstance().eventHandler.server.getAllLevels()) { - ServerLevelData levelData = (ServerLevelData) serverWorld.getLevelData(); - levelData.setGameTime(levelData.getGameTime() + 125L); + serverWorld.dimensionType().defaultClock().ifPresent(clock -> + serverWorld.clockManager().addTicks(clock, 125) + ); } super.tick(); } From f9e055d5f4ae5b507e2d95e03e66219bf0ca5987 Mon Sep 17 00:00:00 2001 From: ArikSquad <75741608+ArikSquad@users.noreply.github.com> Date: Sat, 25 Apr 2026 01:39:10 +0300 Subject: [PATCH 4/4] fix: gamerule had changed name I changed it to use the programmatical way to do that, I don't immediately see why you wouldn't do it like this. --- .../entropy/events/db/SpinningMobsEvent.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/me/juancarloscp52/entropy/events/db/SpinningMobsEvent.java b/src/main/java/me/juancarloscp52/entropy/events/db/SpinningMobsEvent.java index ac61d7ef..2dfb8f29 100644 --- a/src/main/java/me/juancarloscp52/entropy/events/db/SpinningMobsEvent.java +++ b/src/main/java/me/juancarloscp52/entropy/events/db/SpinningMobsEvent.java @@ -21,16 +21,17 @@ import me.juancarloscp52.entropy.events.AbstractTimedEvent; import me.juancarloscp52.entropy.events.EventType; import net.minecraft.server.MinecraftServer; +import net.minecraft.world.level.gamerules.GameRules; public class SpinningMobsEvent extends AbstractTimedEvent { public static final EventType TYPE = EventType.builder(SpinningMobsEvent::new).build(); int rotation; MinecraftServer server; + @Override public void init() { server = Entropy.getInstance().eventHandler.server; - server.getCommands().performPrefixedCommand(server.createCommandSourceStack(), "gamerule sendCommandFeedback false"); - + server.getGameRules().set(GameRules.SEND_COMMAND_FEEDBACK, false, server); } @Override @@ -48,7 +49,7 @@ public void tick() { @Override public void end() { - server.getCommands().performPrefixedCommand(server.createCommandSourceStack(), "gamerule sendCommandFeedback true"); + server.getGameRules().set(GameRules.SEND_COMMAND_FEEDBACK, true, server); super.end(); }