From cd9a5b96c2a6197dac493ce5e1cb81924d7833b9 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 10 Apr 2021 14:53:48 -0300 Subject: [PATCH] fix superhot not working on singleplayer when riding stuffs --- src/main/java/carpet/helpers/TickSpeed.java | 1 + src/main/java/carpet/mixins/World_tickMixin.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/carpet/helpers/TickSpeed.java b/src/main/java/carpet/helpers/TickSpeed.java index a71301fb..d3e81523 100644 --- a/src/main/java/carpet/helpers/TickSpeed.java +++ b/src/main/java/carpet/helpers/TickSpeed.java @@ -74,6 +74,7 @@ public class TickSpeed if (player_active_timeout < PLAYER_GRACE) { player_active_timeout = PLAYER_GRACE; + ServerNetworkHandler.updateTickPlayerActiveTimeoutToConnectedPlayers(); } } diff --git a/src/main/java/carpet/mixins/World_tickMixin.java b/src/main/java/carpet/mixins/World_tickMixin.java index 11b9a113..6fe4b6a5 100644 --- a/src/main/java/carpet/mixins/World_tickMixin.java +++ b/src/main/java/carpet/mixins/World_tickMixin.java @@ -9,7 +9,9 @@ import net.minecraft.entity.EntityType; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.util.profiler.Profiler; import net.minecraft.world.World; +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.Redirect; @@ -24,6 +26,7 @@ import java.util.function.Consumer; @Mixin(World.class) public abstract class World_tickMixin implements WorldInterface { + @Shadow @Final public boolean isClient; CarpetProfiler.ProfilerToken currentSection; CarpetProfiler.ProfilerToken entitySection; @@ -79,7 +82,7 @@ public abstract class World_tickMixin implements WorldInterface @Inject(method = "tickEntity", at = @At("HEAD"), cancellable = true) private void startEntity(Consumer consumer_1, Entity e, CallbackInfo ci) { - if (!TickSpeed.process_entities && !(e instanceof PlayerEntity)) + if (!(TickSpeed.process_entities || (e instanceof PlayerEntity) || (TickSpeed.is_superHot && isClient && e.getPrimaryPassenger() instanceof PlayerEntity))) ci.cancel(); entitySection = CarpetProfiler.start_entity_section((World) (Object) this, e, CarpetProfiler.TYPE.ENTITY); }