Skip to content

Commit 4807f3d

Browse files
committed
Merge branch '1.21.5' into improvement/documentation
2 parents 055f780 + 3e7986f commit 4807f3d

File tree

3 files changed

+29
-19
lines changed

3 files changed

+29
-19
lines changed

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

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@
3333
public class CapeFeatureRendererMixin {
3434
@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;"))
3535
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;
36+
var entry = Lambda.getMc().getNetworkHandler().getPlayerListEntry(player.name);
37+
if (entry == null) return original;
3838

39-
return Identifier.of("lambda", CapeManager.INSTANCE.get(entity.getUuid()));
39+
var profile = entry.getProfile();
40+
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.getCache().containsKey(profile.getId())) return original;
41+
42+
return Identifier.of("lambda", CapeManager.INSTANCE.getCache().get(profile.getId()));
4043
}
4144
}

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

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,44 @@
1717

1818
package com.lambda.mixin.render;
1919

20+
import com.lambda.Lambda;
21+
import com.lambda.module.modules.client.Capes;
2022
import com.lambda.module.modules.render.NoRender;
21-
import com.llamalad7.mixinextras.injector.ModifyReturnValue;
23+
import com.lambda.network.CapeManager;
24+
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
25+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
26+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
2227
import net.minecraft.client.render.VertexConsumerProvider;
2328
import net.minecraft.client.render.entity.feature.ElytraFeatureRenderer;
2429
import net.minecraft.client.render.entity.state.BipedEntityRenderState;
30+
import net.minecraft.client.render.entity.state.PlayerEntityRenderState;
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;
30-
import org.spongepowered.asm.mixin.injection.Inject;
31-
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
3236

3337
@Mixin(ElytraFeatureRenderer.class)
3438
public class ElytraFeatureRendererMixin<T extends LivingEntity> {
35-
@ModifyReturnValue(method = "getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;", at = @At("TAIL"))
36-
private static Identifier getTexture(Identifier original, BipedEntityRenderState state) {
37-
// FixMe: fuck you mojang
38-
/*var entity = StreamSupport.stream(Lambda.getMc().world.getEntities().spliterator(), false)
39-
.filter(e -> e.getDisplayName() == state.displayName)
40-
.findFirst().get();
39+
@WrapOperation(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/entity/feature/ElytraFeatureRenderer;getTexture(Lnet/minecraft/client/render/entity/state/BipedEntityRenderState;)Lnet/minecraft/util/Identifier;"))
40+
Identifier injectElytra(BipedEntityRenderState state, Operation<Identifier> original) {
41+
if (!(state instanceof PlayerEntityRenderState))
42+
return original.call(state);
4143

42-
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.containsKey(entity.getUuid())) return original;
44+
var entry = Lambda.getMc().getNetworkHandler().getPlayerListEntry(((PlayerEntityRenderState) state).name);
45+
if (entry == null) return original.call(state);
4346

44-
return Identifier.of("lambda", CapeManager.INSTANCE.get(entity.getUuid()));*/
47+
var profile = entry.getProfile();
4548

46-
return original;
49+
if (!Capes.INSTANCE.isEnabled() || !CapeManager.INSTANCE.getCache().containsKey(profile.getId()))
50+
return original.call(state);
51+
52+
return Identifier.of("lambda", CapeManager.INSTANCE.getCache().get(profile.getId()));
4753
}
4854

49-
@Inject(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", at = @At("HEAD"), cancellable = true)
50-
private void injectRender(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, BipedEntityRenderState bipedEntityRenderState, float f, float g, CallbackInfo ci) {
51-
if (NoRender.INSTANCE.isEnabled() && NoRender.getNoElytra()) ci.cancel();
55+
@WrapMethod(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V")
56+
private void injectRender(MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, BipedEntityRenderState bipedEntityRenderState, float f, float g, Operation<Void> original) {
57+
if (NoRender.INSTANCE.isDisabled() && !NoRender.getNoElytra())
58+
original.call(matrixStack, vertexConsumerProvider, i, bipedEntityRenderState, f, g);
5259
}
5360
}

src/main/kotlin/com/lambda/command/commands/CapeCommand.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ object CapeCommand : LambdaCommand(
3838
required(literal("set")) {
3939
required(string("id")) { id ->
4040
suggests { _, builder ->
41-
CapeManager.capeList
41+
CapeManager.availableCapes
4242
.forEach { builder.suggest(it) }
4343

4444
builder.buildFuture()

0 commit comments

Comments
 (0)