Skip to content

Commit 2ce677a

Browse files
committed
Update to latest
1 parent 2176b68 commit 2ce677a

File tree

13 files changed

+75
-95
lines changed

13 files changed

+75
-95
lines changed

common/src/main/java/com/lambda/mixin/network/ClientPlayNetworkHandlerMixin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ private void onScreenHandlerSlotUpdate(ScreenHandlerSlotUpdateS2CPacket packet,
6363
EventFlow.post(new InventoryEvent.SlotUpdate(packet.getSyncId(), packet.getRevision(), packet.getSlot(), packet.getStack()));
6464
}
6565

66+
// FixMe: This is now initialized in the constructor
67+
/*
6668
@Redirect(method = "onServerMetadata", at = @At(value = "FIELD", target = "Lnet/minecraft/client/network/ClientPlayNetworkHandler;displayedUnsecureChatWarning:Z", ordinal = 0))
6769
public boolean onServerMetadata(ClientPlayNetworkHandler clientPlayNetworkHandler) {
6870
return NoRender.getNoChatVerificationToast();
69-
}
71+
}*/
7072
}

common/src/main/java/com/lambda/mixin/render/CapeFeatureRendererMixin.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,25 @@
1717

1818
package com.lambda.mixin.render;
1919

20+
import com.lambda.Lambda;
2021
import com.lambda.module.modules.client.Capes;
2122
import com.lambda.network.CapeManager;
2223
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
23-
import net.minecraft.client.network.AbstractClientPlayerEntity;
2424
import net.minecraft.client.render.VertexConsumerProvider;
2525
import net.minecraft.client.render.entity.feature.CapeFeatureRenderer;
26+
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
2627
import net.minecraft.client.util.math.MatrixStack;
2728
import net.minecraft.util.Identifier;
2829
import org.spongepowered.asm.mixin.Mixin;
2930
import org.spongepowered.asm.mixin.injection.At;
3031

3132
@Mixin(CapeFeatureRenderer.class)
3233
public class CapeFeatureRendererMixin {
33-
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/network/AbstractClientPlayerEntity;FFFFFF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;"))
34-
Identifier renderCape(Identifier original, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, AbstractClientPlayerEntity player, float f, float g, float h, float j, float k, float l) {
35-
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.containsKey(player.getUuid())) return original;
34+
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/PlayerEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;capeTexture()Lnet/minecraft/util/Identifier;"))
35+
Identifier renderCape(Identifier original, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, PlayerEntityRenderState player, float f, float g) {
36+
var entity = Lambda.getMc().world.getEntityById(player.id);
37+
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.containsKey(entity.getUuid())) return original;
3638

37-
return Identifier.of("lambda", CapeManager.INSTANCE.get(player.getUuid()));
39+
return Identifier.of("lambda", CapeManager.INSTANCE.get(entity.getUuid()));
3840
}
3941
}

common/src/main/java/com/lambda/mixin/render/ChatScreenMixin.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,13 @@
2222
import org.spongepowered.asm.mixin.Mixin;
2323
import org.spongepowered.asm.mixin.injection.At;
2424
import org.spongepowered.asm.mixin.injection.Inject;
25-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
25+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2626

2727
@Mixin(ChatScreen.class)
2828
public abstract class ChatScreenMixin {
29-
@Inject(method = "sendMessage", at = @At("HEAD"), cancellable = true)
30-
void sendMessageInject(String chatText, boolean addToHistory, CallbackInfoReturnable<Boolean> cir) {
29+
@Inject(method = "sendMessage", at = @At("HEAD"))
30+
void sendMessageInject(String chatText, boolean addToHistory, CallbackInfo ci) {
3131
if (!CommandManager.INSTANCE.isLambdaCommand(chatText)) return;
3232
CommandManager.INSTANCE.executeCommand(chatText);
33-
34-
cir.setReturnValue(true);
3533
}
3634
}

common/src/main/java/com/lambda/mixin/render/ElytraFeatureRendererMixin.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,41 @@
1717

1818
package com.lambda.mixin.render;
1919

20+
import com.lambda.Lambda;
21+
import com.lambda.context.SafeContext;
2022
import com.lambda.module.modules.client.Capes;
2123
import com.lambda.network.CapeManager;
24+
import com.lambda.threading.ThreadingKt;
25+
import com.lambda.util.world.WorldDslKt;
2226
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
27+
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
2328
import net.minecraft.client.render.VertexConsumerProvider;
2429
import net.minecraft.client.render.entity.feature.ElytraFeatureRenderer;
30+
import net.minecraft.client.render.entity.state.BipedEntityRenderState;
2531
import net.minecraft.client.util.math.MatrixStack;
2632
import net.minecraft.entity.LivingEntity;
2733
import net.minecraft.util.Identifier;
2834
import org.spongepowered.asm.mixin.Mixin;
2935
import org.spongepowered.asm.mixin.injection.At;
3036

37+
import java.util.Collection;
38+
import java.util.Collections;
39+
import java.util.stream.Collectors;
40+
import java.util.stream.StreamSupport;
41+
3142
@Mixin(ElytraFeatureRenderer.class)
3243
public class ElytraFeatureRendererMixin<T extends LivingEntity> {
33-
@ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/entity/LivingEntity;FFFFFF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/SkinTextures;elytraTexture()Lnet/minecraft/util/Identifier;"))
34-
Identifier renderElytra(Identifier original, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, T livingEntity, float f, float g, float h, float j, float k, float l) {
35-
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.containsKey(livingEntity.getUuid())) return original;
44+
@ModifyReturnValue(method = "getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;", at = @At("TAIL"))
45+
private static Identifier getTexture(Identifier original, BipedEntityRenderState state) {
46+
// FixMe: fuck you mojang
47+
/*var entity = StreamSupport.stream(Lambda.getMc().world.getEntities().spliterator(), false)
48+
.filter(e -> e.getDisplayName() == state.displayName)
49+
.findFirst().get();
50+
51+
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.containsKey(entity.getUuid())) return original;
52+
53+
return Identifier.of("lambda", CapeManager.INSTANCE.get(entity.getUuid()));*/
3654

37-
return Identifier.of("lambda", CapeManager.INSTANCE.get(livingEntity.getUuid()));
55+
return original;
3856
}
3957
}

common/src/main/java/com/lambda/mixin/render/RenderTickCounterMixin.java

Lines changed: 0 additions & 50 deletions
This file was deleted.

common/src/main/kotlin/com/lambda/core/TimerManager.kt

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,39 @@ package com.lambda.core
1919

2020
import com.lambda.event.EventFlow.post
2121
import com.lambda.event.events.ClientEvent
22+
import com.lambda.event.events.TickEvent
23+
import com.lambda.event.listener.SafeListener.Companion.listen
24+
import net.minecraft.client.render.RenderTickCounter
2225
import kotlin.concurrent.fixedRateTimer
26+
import kotlin.time.Duration.Companion.milliseconds
2327

2428
object TimerManager : Loadable {
25-
var lastTickLength: Float = 50f
29+
var lastTickLength = 50.0
2630

2731
override fun load() = "Loaded Timer Manager"
2832

2933
private const val TICK_DELAY = 50L
3034
private var start = 0L
31-
val fixedTickDelta get() = (System.currentTimeMillis() - start).mod(TICK_DELAY).toDouble() / TICK_DELAY
35+
36+
val length: Double
37+
get() {
38+
var length = 50.0
39+
40+
ClientEvent.TimerUpdate(1.0).post {
41+
length /= speed
42+
}
43+
44+
lastTickLength = length
45+
return length
46+
}
3247

3348
init {
49+
listen<TickEvent.Pre> {
50+
(mc.renderTickCounter as RenderTickCounter.Dynamic)
51+
.beginRenderTick(length.milliseconds.inWholeNanoseconds, false)
52+
}
53+
54+
// ToDo: Use minecraft fixed tick counter
3455
fixedRateTimer(
3556
daemon = true,
3657
name = "Scheduler-Lambda-Tick",
@@ -41,15 +62,4 @@ object TimerManager : Loadable {
4162
ClientEvent.FixedTick(this).post()
4263
}
4364
}
44-
45-
fun getLength(): Float {
46-
var length = 50f
47-
48-
ClientEvent.TimerUpdate(1.0).post {
49-
length /= speed.toFloat()
50-
}
51-
52-
lastTickLength = length
53-
return length
54-
}
5565
}

common/src/main/kotlin/com/lambda/graphics/animation/Animation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class Animation(initialValue: Double, val update: (Double) -> Double) {
3030
operator fun getValue(thisRef: Any?, property: KProperty<*>) = value()
3131
operator fun setValue(thisRef: Any?, property: KProperty<*>, valueIn: Double) = setValue(valueIn)
3232

33-
fun value(): Double = lerp(mc.partialTicks.toDouble(), prevValue, currValue)
33+
fun value(): Double = lerp(mc.partialTicks, prevValue, currValue)
3434

3535
fun setValue(valueIn: Double) {
3636
prevValue = valueIn

common/src/main/kotlin/com/lambda/interaction/request/rotation/RotationManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ object RotationManager : RequestHandler<RotationRequest>(), Loadable {
135135

136136
private val smoothRotation
137137
get() =
138-
lerp(mc.partialTicks.toDouble(), prevRotation, currentRotation)
138+
lerp(mc.partialTicks, prevRotation, currentRotation)
139139

140140
@JvmStatic
141141
val lockRotation

common/src/main/kotlin/com/lambda/module/modules/client/Network.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ object Network : Module(
5252
val apiUrl by setting("API Server", "https://api.lambda-client.org")
5353
val apiVersion by setting("API Version", ApiVersion.V1)
5454

55-
private lateinit var hash: String
55+
private var hash: String? = null
5656

5757
init {
5858
listenUnsafeConcurrently<ClientEvent.Startup> { authenticate() }
@@ -74,10 +74,12 @@ object Network : Module(
7474
// If we log in right as the client responds to the encryption request, we start
7575
// a race condition where the game server haven't acknowledged the packets
7676
// and posted to the sessionserver api
77-
login(mc.session.username, hash,
78-
success = { updateToken(it) },
79-
failure = { LOG.warn("Unable to authenticate: $it") }
80-
)
77+
hash?.let { hash ->
78+
login(mc.session.username, hash,
79+
success = { updateToken(it) },
80+
failure = { LOG.warn("Unable to authenticate: $it") }
81+
)
82+
}
8183
}
8284
}
8385

@@ -90,7 +92,7 @@ object Network : Module(
9092
ClientConnection.connect(resolved, mc.options.shouldUseNativeTransport(), connection)
9193
.syncUninterruptibly()
9294

93-
val handler = ClientLoginNetworkHandler(connection, mc, null, null, false, null) { Text.empty() }
95+
val handler = ClientLoginNetworkHandler(connection, mc, null, null, false, null, { Text.empty() }, null)
9496

9597
connection.connect(resolved.hostName, resolved.port, handler)
9698
connection.send(LoginHelloC2SPacket(mc.session.username, mc.session.uuidOrNull))

common/src/main/kotlin/com/lambda/module/modules/render/Particles.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ object Particles : Module(
179179
}
180180

181181
fun build() {
182-
val smoothAge = age + mc.partialTicks.toDouble()
182+
val smoothAge = age + mc.partialTicks
183183
val colorTicks = smoothAge * 0.1 / colorSpeed
184184

185185
val alpha = when {
@@ -195,7 +195,7 @@ object Particles : Module(
195195
val (c1, c2) = GuiSettings.primaryColor to GuiSettings.secondaryColor
196196
val color = lerp(sin(colorTicks) * 0.5 + 0.5, c1, c2).multAlpha(alpha * alphaSetting)
197197

198-
val position = lerp(mc.partialTicks.toDouble(), prevPos, position)
198+
val position = lerp(mc.partialTicks, prevPos, position)
199199
val size = if (lay) environmentSize else sizeSetting * lerp(alpha, 0.5, 1.0)
200200

201201
withVertexTransform(buildWorldProjection(position, size, projRotation)) {

0 commit comments

Comments
 (0)