Skip to content
This repository was archived by the owner on Nov 28, 2025. It is now read-only.

Commit b484889

Browse files
committed
i think only motionblur is broken now (on 1.21.3)
1 parent 03ef953 commit b484889

29 files changed

+378
-314
lines changed

1.21.3/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ java {
7777

7878
runClient {
7979
classpath(sourceSets.test.runtimeClasspath)
80-
args("--tracy")
8180
}
8281

8382
// Configure the maven publication

1.21.3/src/main/java/io/github/axolotlclient/api/ContextMenu.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,6 @@ public void renderWidget(GuiGraphics graphics, int mouseX, int mouseY, float del
216216
graphics.fill(getX(), getY(), getX() + getWidth(), getY() + getHeight(), 0x55ffffff);
217217
}
218218

219-
RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F);
220219
int i = this.active ? 16777215 : 10526880;
221220
this.renderString(graphics, client.font, i | Mth.ceil(this.alpha * 255.0F) << 24);
222221
}

1.21.3/src/main/java/io/github/axolotlclient/mixin/ChatHudMixin.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,16 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
26+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
2527
import com.llamalad7.mixinextras.sugar.Cancellable;
2628
import io.github.axolotlclient.modules.hypixel.nickhider.NickHider;
2729
import io.github.axolotlclient.util.events.Events;
2830
import io.github.axolotlclient.util.events.impl.ReceiveChatMessageEvent;
31+
import net.minecraft.client.GuiMessageTag;
2932
import net.minecraft.client.gui.components.ChatComponent;
3033
import net.minecraft.network.chat.Component;
34+
import net.minecraft.network.chat.MessageSignature;
3135
import org.spongepowered.asm.mixin.Mixin;
3236
import org.spongepowered.asm.mixin.injection.At;
3337
import org.spongepowered.asm.mixin.injection.ModifyArg;
@@ -37,7 +41,19 @@
3741
@Mixin(ChatComponent.class)
3842
public abstract class ChatHudMixin {
3943

40-
@ModifyVariable(
44+
@WrapMethod(method = "addMessage(Lnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/GuiMessageTag;)V")
45+
private void onChatMessage(Component chatComponent, MessageSignature headerSignature, GuiMessageTag tag, Operation<Void> original) {
46+
ReceiveChatMessageEvent event = new ReceiveChatMessageEvent(false, chatComponent.getString(), chatComponent);
47+
Events.RECEIVE_CHAT_MESSAGE_EVENT.invoker().invoke(event);
48+
if (event.isCancelled()) {
49+
return;
50+
} else if (event.getNewMessage() != null) {
51+
chatComponent = event.getNewMessage();
52+
}
53+
original.call(chatComponent, headerSignature, tag);
54+
}
55+
56+
/*@ModifyVariable(
4157
method = "addMessage(Lnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/GuiMessageTag;)V",
4258
at = @At("HEAD"), index = 1, argsOnly = true)
4359
private Component axolotlclient$onChatMessage(Component message, @Cancellable CallbackInfo ci) {
@@ -50,14 +66,14 @@ public abstract class ChatHudMixin {
5066
return event.getNewMessage();
5167
}
5268
return message;
53-
}
69+
}*/
5470

55-
@ModifyArg(
71+
/*@ModifyArg(
5672
method = "addMessage(Lnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/GuiMessageTag;)V",
5773
at = @At(value = "INVOKE",
5874
target = "Lnet/minecraft/client/GuiMessage;<init>(ILnet/minecraft/network/chat/Component;Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/GuiMessageTag;)V"),
5975
index = 1)
6076
private Component axolotlclient$editChat(Component content) {
6177
return NickHider.getInstance().editMessage(content);
62-
}
78+
}*/
6379
}

1.21.3/src/main/java/io/github/axolotlclient/mixin/ClientPlayNetworkHandlerMixin.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import io.github.axolotlclient.api.requests.UserRequest;
2526
import io.github.axolotlclient.modules.hud.HudManager;
2627
import io.github.axolotlclient.modules.hud.gui.hud.simple.TPSHud;
28+
import io.github.axolotlclient.util.ThreadExecuter;
2729
import net.minecraft.client.multiplayer.ClientPacketListener;
30+
import net.minecraft.client.multiplayer.PlayerInfo;
31+
import net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket;
2832
import net.minecraft.network.protocol.game.ClientboundSetTimePacket;
2933
import org.spongepowered.asm.mixin.Mixin;
3034
import org.spongepowered.asm.mixin.injection.At;
@@ -39,4 +43,9 @@ public abstract class ClientPlayNetworkHandlerMixin {
3943
TPSHud tpsHud = (TPSHud) HudManager.getInstance().get(TPSHud.ID);
4044
tpsHud.updateTime(packet.gameTime());
4145
}
46+
47+
@Inject(method = "applyPlayerInfoUpdate", at = @At(value = "INVOKE", target = "Ljava/util/Set;remove(Ljava/lang/Object;)Z"))
48+
private void preloadOnlineInfo(ClientboundPlayerInfoUpdatePacket.Action action, ClientboundPlayerInfoUpdatePacket.Entry entry, PlayerInfo playerInfo, CallbackInfo ci) {
49+
ThreadExecuter.scheduleTask(() -> UserRequest.getOnline(playerInfo.getProfile().getId().toString()));
50+
}
4251
}

1.21.3/src/main/java/io/github/axolotlclient/mixin/DownloadingTerrainScreenMixin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ public abstract class DownloadingTerrainScreenMixin {
3434

3535
@Inject(method = "<init>", at = @At("TAIL"))
3636
public void axolotlclient$noLoadingScreen(CallbackInfo ci) {
37-
Minecraft.getInstance().screen.onClose();
37+
if (Minecraft.getInstance().screen != null) {
38+
Minecraft.getInstance().screen.onClose();
39+
Minecraft.getInstance().screen = null;
40+
}
3841
}
3942
}

1.21.3/src/main/java/io/github/axolotlclient/mixin/EntityRendererMixin.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ public abstract class EntityRendererMixin<T extends Entity, S extends EntityRend
6666
assert Minecraft.getInstance().player != null;
6767
int x = -(Minecraft.getInstance().font.width(entity == Minecraft.getInstance().player ? (NickHider.getInstance().hideOwnName.get() ? NickHider.getInstance().hiddenNameSelf.get() : PlayerTeam.formatNameForTeam(entity.getTeam(), entity.getName()).getString()) : (NickHider.getInstance().hideOtherNames.get() ? NickHider.getInstance().hiddenNameOthers.get() : PlayerTeam.formatNameForTeam(entity.getTeam(), entity.getName()).getString())) / 2 + (AxolotlClient.CONFIG.customBadge.get() ? Minecraft.getInstance().font.width(" " + ChatFormatting.stripFormatting(AxolotlClient.CONFIG.badgeText.get())) : 10));
6868

69-
RenderSystem.setShaderColor(1, 1, 1, 1);
70-
7169
if (AxolotlClient.CONFIG.customBadge.get()) {
7270
Component badgeText = Util.formatFromCodes(AxolotlClient.CONFIG.badgeText.get());
7371
Minecraft.getInstance().font.drawInBatch(badgeText, x, 0, -1, AxolotlClient.CONFIG.useShadows.get(), matrices.last().pose(), vertexConsumers, Font.DisplayMode.NORMAL, 0, 15728880);

1.21.3/src/main/java/io/github/axolotlclient/mixin/InGameHudMixin.java

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
2626
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
27-
import com.llamalad7.mixinextras.sugar.Local;
2827
import io.github.axolotlclient.AxolotlClient;
2928
import io.github.axolotlclient.modules.hud.HudManager;
3029
import io.github.axolotlclient.modules.hud.gui.hud.PotionsHud;
@@ -39,8 +38,6 @@
3938
import net.minecraft.client.gui.Font;
4039
import net.minecraft.client.gui.Gui;
4140
import net.minecraft.client.gui.GuiGraphics;
42-
import net.minecraft.client.gui.LayeredDraw;
43-
import net.minecraft.client.gui.components.ChatComponent;
4441
import net.minecraft.network.chat.Component;
4542
import net.minecraft.world.entity.Entity;
4643
import net.minecraft.world.entity.player.Player;
@@ -56,21 +53,21 @@
5653
@Mixin(Gui.class)
5754
public abstract class InGameHudMixin {
5855

59-
@Shadow private @Nullable Component overlayMessageString;
56+
@Shadow
57+
private @Nullable Component overlayMessageString;
6058

61-
@Shadow private int overlayMessageTime;
59+
@Shadow
60+
private int overlayMessageTime;
6261

63-
@Shadow @Final private Minecraft minecraft;
62+
@Shadow
63+
@Final
64+
private Minecraft minecraft;
6465

65-
@Shadow @Final private ChatComponent chat;
66-
67-
@Inject(method = "<init>", at = @At(value = "TAIL"))
68-
private void onHudRender(Minecraft client, CallbackInfo ci, @Local(ordinal = 1) LayeredDraw list) {
69-
list.add((guiGraphics, deltaTracker) -> {
70-
if (!client.options.hideGui) {
71-
HudManager.getInstance().render(guiGraphics, deltaTracker);
72-
}
73-
});
66+
@Inject(method = "render", at = @At(value = "HEAD"))
67+
private void onHudRender(GuiGraphics guiGraphics, DeltaTracker deltaTracker, CallbackInfo ci) {
68+
if (!minecraft.options.hideGui) {
69+
HudManager.getInstance().render(guiGraphics, deltaTracker);
70+
}
7471
}
7572

7673
@Inject(method = "renderEffects", at = @At(value = "HEAD"))
@@ -95,6 +92,7 @@ private void onHudRender(Minecraft client, CallbackInfo ci, @Local(ordinal = 1)
9592
if (minecraft.gui.getDebugOverlay().showDebugScreen() && !hud.overridesF3()) {
9693
return;
9794
}
95+
hud.renderCrosshair(graphics, tracker.getGameTimeDeltaTicks());
9896
ci.cancel();
9997
}
10098
}
@@ -135,8 +133,8 @@ private void onHudRender(Minecraft client, CallbackInfo ci, @Local(ordinal = 1)
135133
target = "Lnet/minecraft/client/gui/Gui;renderHeart(Lnet/minecraft/client/gui/GuiGraphics;Lnet/minecraft/client/gui/Gui$HeartType;IIZZZ)V"))
136134
public void axolotlclient$displayHardcoreHearts(Gui instance, GuiGraphics graphics, Gui.HeartType type, int x, int y, boolean hardcore, boolean blinking, boolean half, Operation<Void> original) {
137135
boolean hardcoreMod = BedwarsMod.getInstance().isEnabled() && BedwarsMod.getInstance().inGame() &&
138-
BedwarsMod.getInstance().hardcoreHearts.get() &&
139-
!BedwarsMod.getInstance().getGame().get().getSelf().isBed();
136+
BedwarsMod.getInstance().hardcoreHearts.get() &&
137+
!BedwarsMod.getInstance().getGame().get().getSelf().isBed();
140138
original.call(instance, graphics, type, x, y, hardcoreMod || hardcore, blinking, half);
141139
}
142140

1.21.3/src/main/java/io/github/axolotlclient/mixin/LightmapManagerMixin.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
26+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
2527
import io.github.axolotlclient.AxolotlClient;
2628
import net.minecraft.client.OptionInstance;
2729
import net.minecraft.client.Options;
@@ -32,13 +34,14 @@
3234

3335
@Mixin(LightTexture.class)
3436
public abstract class LightmapManagerMixin {
37+
private static final OptionInstance<Double> fullBright = new OptionInstance<>("options.gamma", OptionInstance.noTooltip(), (optionText, value) -> optionText,
38+
OptionInstance.UnitDouble.INSTANCE, 15D, value -> {}
39+
);
3540

36-
@Redirect(method = "updateLightTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Options;gamma()Lnet/minecraft/client/OptionInstance;"))
37-
public OptionInstance<Double> axolotlclient$fullBright(Options instance) {
41+
@WrapOperation(method = "updateLightTexture", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Options;gamma()Lnet/minecraft/client/OptionInstance;"))
42+
public OptionInstance<Double> axolotlclient$fullBright(Options instance, Operation<OptionInstance<Double>> original) {
3843
if (AxolotlClient.CONFIG.fullBright.get())
39-
return new OptionInstance<>("options.gamma", OptionInstance.noTooltip(), (optionText, value) -> optionText,
40-
OptionInstance.UnitDouble.INSTANCE, 15D, value -> {}
41-
);
42-
return instance.gamma();
44+
return fullBright;
45+
return original.call(instance);
4346
}
4447
}

1.21.3/src/main/java/io/github/axolotlclient/mixin/MultiPackResourceManagerMixin.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
/*
2+
* Copyright © 2024 moehreag <[email protected]> & Contributors
3+
*
4+
* This file is part of AxolotlClient.
5+
*
6+
* This program is free software; you can redistribute it and/or
7+
* modify it under the terms of the GNU Lesser General Public
8+
* License as published by the Free Software Foundation; either
9+
* version 3 of the License, or (at your option) any later version.
10+
*
11+
* This program is distributed in the hope that it will be useful,
12+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14+
* Lesser General Public License for more details.
15+
*
16+
* You should have received a copy of the GNU Lesser General Public License
17+
* along with this program; if not, write to the Free Software Foundation,
18+
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19+
*
20+
* For more information, see the LICENSE file.
21+
*/
22+
123
package io.github.axolotlclient.mixin;
224

325
import java.util.Map;

1.21.3/src/main/java/io/github/axolotlclient/mixin/PlayerListHudMixin.java

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,9 @@
2222

2323
package io.github.axolotlclient.mixin;
2424

25-
import java.util.List;
26-
import java.util.UUID;
27-
28-
import com.llamalad7.mixinextras.injector.v2.WrapWithCondition;
2925
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
3026
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
3127
import com.llamalad7.mixinextras.sugar.Local;
32-
import com.mojang.authlib.GameProfile;
3328
import com.mojang.blaze3d.systems.RenderSystem;
3429
import io.github.axolotlclient.AxolotlClient;
3530
import io.github.axolotlclient.api.requests.UserRequest;
@@ -53,23 +48,29 @@
5348
import net.minecraft.network.chat.MutableComponent;
5449
import net.minecraft.world.scores.Objective;
5550
import net.minecraft.world.scores.Scoreboard;
56-
import org.jetbrains.annotations.Nullable;
5751
import org.spongepowered.asm.mixin.Final;
5852
import org.spongepowered.asm.mixin.Mixin;
5953
import org.spongepowered.asm.mixin.Shadow;
60-
import org.spongepowered.asm.mixin.Unique;
61-
import org.spongepowered.asm.mixin.injection.*;
54+
import org.spongepowered.asm.mixin.injection.At;
55+
import org.spongepowered.asm.mixin.injection.Inject;
56+
import org.spongepowered.asm.mixin.injection.ModifyArg;
57+
import org.spongepowered.asm.mixin.injection.ModifyVariable;
6258
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
6359
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
64-
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
60+
61+
import java.util.List;
62+
import java.util.UUID;
6563

6664
@Mixin(PlayerTabOverlay.class)
6765
public abstract class PlayerListHudMixin {
6866

69-
@Shadow private Component header;
70-
@Shadow private Component footer;
71-
@Unique private GameProfile axolotlclient$profile;
72-
@Shadow @Final private Minecraft minecraft;
67+
@Shadow
68+
private Component header;
69+
@Shadow
70+
private Component footer;
71+
@Shadow
72+
@Final
73+
private Minecraft minecraft;
7374

7475
@Shadow
7576
protected abstract Component decorateName(PlayerInfo entry, MutableComponent name);
@@ -81,39 +82,33 @@ public abstract class PlayerListHudMixin {
8182
cir.setReturnValue(
8283
this.decorateName(entry, Component.literal(NickHider.getInstance().hiddenNameSelf.get())));
8384
} else if (!entry.getProfile().equals(minecraft.player.getGameProfile()) &&
84-
NickHider.getInstance().hideOtherNames.get()) {
85+
NickHider.getInstance().hideOtherNames.get()) {
8586
cir.setReturnValue(
8687
this.decorateName(entry, Component.literal(NickHider.getInstance().hiddenNameOthers.get())));
8788
}
8889
}
8990

90-
@ModifyArg(method = "render", at = @At(value = "INVOKE",
91-
target = "Lnet/minecraft/client/gui/components/PlayerTabOverlay;getNameForDisplay(Lnet/minecraft/client/multiplayer/PlayerInfo;)Lnet/minecraft/network/chat/Component;"))
92-
private PlayerInfo axolotlclient$getPlayer(PlayerInfo entry) {
93-
axolotlclient$profile = entry.getProfile();
94-
return entry;
95-
}
96-
97-
@Redirect(method = "render", at = @At(value = "INVOKE",
98-
target = "Lnet/minecraft/client/gui/Font;width(Lnet/minecraft/network/chat/FormattedText;)I"))
99-
private int axolotlclient$moveName(Font instance, FormattedText text) {
100-
if (axolotlclient$profile != null && AxolotlClient.CONFIG.showBadges.get() &&
101-
UserRequest.getOnline(axolotlclient$profile.getId().toString())) return instance.width(text) + 10;
102-
return instance.width(text);
91+
@WrapOperation(method = "render", at = @At(value = "INVOKE",
92+
target = "Lnet/minecraft/client/gui/Font;width(Lnet/minecraft/network/chat/FormattedText;)I", ordinal = 0))
93+
private int axolotlclient$moveName(Font instance, FormattedText text, Operation<Integer> original, @Local PlayerInfo info) {
94+
int width = original.call(instance, text);
95+
if (AxolotlClient.CONFIG.showBadges.get() &&
96+
UserRequest.getOnline(info.getProfile().getId().toString())) width += 10;
97+
if (Tablist.getInstance().numericalPing.get())
98+
width += (instance.width(String.valueOf(info.getLatency())) - 10);
99+
return width;
103100
}
104101

105102
@WrapOperation(method = "render", at = @At(value = "INVOKE",
106103
target = "Lnet/minecraft/client/gui/GuiGraphics;drawString(Lnet/minecraft/client/gui/Font;Lnet/minecraft/network/chat/Component;III)I"))
107-
public int axolotlclient$moveName2(GuiGraphics instance, Font font, Component component, int x, int y, int color, Operation<Integer> original) {
108-
if (axolotlclient$profile != null && AxolotlClient.CONFIG.showBadges.get() &&
109-
UserRequest.getOnline(axolotlclient$profile.getId().toString())) {
110-
RenderSystem.setShaderColor(1, 1, 1, 1);
104+
public int axolotlclient$moveName2(GuiGraphics instance, Font font, Component component, int x, int y, int color, Operation<Integer> original, @Local PlayerInfo info) {
105+
if (AxolotlClient.CONFIG.showBadges.get() &&
106+
UserRequest.getOnline(info.getProfile().getId().toString())) {
111107

112-
instance.blit(RenderType::guiTextured, AxolotlClient.badgeIcon, x, y, 8, 8, 0, 0, 8, 8, 8, 8);
108+
instance.blit(RenderType::guiTextured, AxolotlClient.badgeIcon, x, y, 0, 0, 8, 8, 8, 8);
113109

114110
x += 9;
115111
}
116-
axolotlclient$profile = null;
117112
return original.call(instance, font, component, x, y, color);
118113
}
119114

@@ -201,8 +196,8 @@ public abstract class PlayerListHudMixin {
201196
return;
202197
}
203198
graphics.drawString(minecraft.font, render,
204-
(endX - this.minecraft.font.width(render)) + 20, y, -1
205-
);
199+
(endX - this.minecraft.font.width(render)) + 20, y, -1
200+
);
206201
}
207202

208203
@Inject(method = "renderTablistScore", at = @At(value = "INVOKE",

0 commit comments

Comments
 (0)