Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
6a26187
WIP 26.2 update
Big-Iron-Cheems May 24, 2026
d4f8e84
Bump to 26.2-pre-1
Big-Iron-Cheems May 27, 2026
6bc5bcd
Rendering updates
Big-Iron-Cheems May 27, 2026
95eb98b
Update YggdrasilAuthenticationService to provide FriendsService
Big-Iron-Cheems May 27, 2026
e71021f
Update Zoom
Big-Iron-Cheems May 27, 2026
36673a7
BlockPos#getCenter removed
MukjepScarlet May 28, 2026
8a2e88a
Small cleanup in ScreenMixin.java
MukjepScarlet May 28, 2026
d10a223
replace ChatFormatting.isColor()/getColor() with TextColor.fromLegacy…
MukjepScarlet May 28, 2026
f3ac266
rename getGameRenderState() to gameRenderState()
MukjepScarlet May 28, 2026
49eea6f
replace VertexFormatElement.getOffset with format.getElement(name)
MukjepScarlet May 28, 2026
6da0819
migrate VertexFormat.Mode to PrimitiveTopology, withVertexFormat to w…
MukjepScarlet May 28, 2026
cd30374
migrate withSampler/withUniform to BindGroupLayout builder API
MukjepScarlet May 28, 2026
78e6c2d
replace uploadImmediateVertexBuffer/IndexBuffer with CommandEncoder.w…
MukjepScarlet May 28, 2026
4c68e9d
Bump to 26.2-pre-2
Big-Iron-Cheems May 28, 2026
6fa32f7
ServerboundSpectateEntityPacket -> ServerboundSpectatorActionPacket
MukjepScarlet May 29, 2026
3294860
LevelRenderer.BrightnessGetter -> LightCoordsUtil.BrightnessGetter
MukjepScarlet May 29, 2026
c7e2f49
ChatFormatting.isColor removed
MukjepScarlet May 29, 2026
934add0
PrimitiveTopology
MukjepScarlet May 29, 2026
a874c96
IndexType
MukjepScarlet May 29, 2026
7e51099
Small cleanup in EntityTypeListSettingScreen
MukjepScarlet May 29, 2026
d20342c
Small cleanup in MeshRenderer
MukjepScarlet May 29, 2026
fa70193
Fix StashFinder (Copper blocks, toast)
MukjepScarlet May 29, 2026
bf13647
Toasts
MukjepScarlet May 29, 2026
12a8580
MeshRenderer fix (probably adds new performance issue)
MukjepScarlet May 29, 2026
92363eb
GpuFormat.RGBA8_UNORM in PostProcessShader
MukjepScarlet May 29, 2026
39b1452
Bump to 26.2-pre-3
Big-Iron-Cheems Jun 2, 2026
a3f499d
mc.levelRenderer::allChanged removal
MukjepScarlet May 29, 2026
2480aa6
Remove ShadowFeatureRendererMixin.java
MukjepScarlet May 29, 2026
84f1037
Update Netty to 4.2.13.Final
MukjepScarlet Jun 4, 2026
e3eb172
Bump to 26.2-pre-4
Big-Iron-Cheems Jun 4, 2026
f644d1d
Fix projectile entity spawn overload
MukjepScarlet Jun 5, 2026
d87de34
Replace bed block entity checks
MukjepScarlet Jun 5, 2026
0bb5e9b
Update GUI renderer render call
MukjepScarlet Jun 5, 2026
2e747fb
Migrate custom banner PiP renderer
MukjepScarlet Jun 5, 2026
bb2a822
Update GUI renderer constructor signature
MukjepScarlet Jun 5, 2026
daad172
Remove obsolete item render buffer event field
MukjepScarlet Jun 5, 2026
5e9020b
Update outline submit queue signatures
MukjepScarlet Jun 5, 2026
987ae9f
Migrate entity shader feature dispatch
MukjepScarlet Jun 5, 2026
b131d9b
Keep simple block shader on local vertex provider
MukjepScarlet Jun 5, 2026
c58a17f
GuiMixin -> HudMixin
MukjepScarlet Jun 5, 2026
1773246
Use ClientLevel destruction progress for break state
MukjepScarlet Jun 5, 2026
a289e25
Move frame-end hooks from RenderSystem to Minecraft
MukjepScarlet Jun 5, 2026
e8c421a
Move screen hooks from Minecraft to Gui
MukjepScarlet Jun 5, 2026
b762db7
Update GlCommandEncoder render pass hook
MukjepScarlet Jun 5, 2026
5b72968
Update LocalPlayer portal screen hook
MukjepScarlet Jun 5, 2026
13d4a4f
Update item glint suppression hook
MukjepScarlet Jun 5, 2026
1798dfe
Update first-person hand render hooks
MukjepScarlet Jun 5, 2026
363d241
Fix SkyRendererMixin
MukjepScarlet Jun 6, 2026
02cf0e1
Restore FreeCam smart culling behavior
MukjepScarlet Jun 6, 2026
cc85b8c
Improve MeshBuilder and MeshRenderer
MukjepScarlet Jun 9, 2026
ddef753
Bump to 26.2-pre-5
Big-Iron-Cheems Jun 9, 2026
062bd83
Bump FAPI to re-enable fabric-renderer-indigo module
Big-Iron-Cheems Jun 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ loom {
}

fun toMinecraftCompat(version: String): String {
val match = Regex("""^(\d{2})\.([1-9]\d*)(?:\.([1-9]\d*))?$""")
val match = Regex("""^(\d{2})\.([1-9]\d*)(?:\.([1-9]\d*))?.*$""")
.matchEntire(version)
?: error("Invalid Minecraft version format: $version. Expected YY.D or YY.D.H")

Expand Down
8 changes: 4 additions & 4 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[versions]
# Fabric (https://fabricmc.net/develop)
jdk = "25"
minecraft = "26.1.2"
fabric-loader = "0.19.2"
fabric-api = "0.146.1+26.1.2"
minecraft = "26.2-pre-5"
fabric-loader = "0.19.3"
fabric-api = "0.152.0+26.2"

# Plugins
# Loom (https://github.com/FabricMC/fabric-loom)
Expand All @@ -29,7 +29,7 @@ discordipc = "1.1"
# Reflections (https://github.com/ronmamo/reflections)
reflections = "0.10.2"
# Netty (https://github.com/netty/netty)
netty = "4.2.7.Final"
netty = "4.2.13.Final"
# ViaFabricPlus (https://github.com/ViaVersion/ViaFabricPlus)
viafabricplus = "4.5.2"
# WaybackAuthLib (https://github.com/florianreuth/WaybackAuthLib)
Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2 changes: 1 addition & 1 deletion gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 10 additions & 21 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions src/main/java/meteordevelopment/meteorclient/MeteorClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ public void onInitializeClient() {

@EventHandler
private void onTick(TickEvent.Post event) {
if (mc.screen == null && mc.getOverlay() == null && KeyBinds.OPEN_COMMANDS.consumeClick()) {
mc.setScreen(new ChatScreen(Config.get().prefix.get(), true));
if (mc.gui.screen() == null && mc.gui.overlay() == null && KeyBinds.OPEN_COMMANDS.consumeClick()) {
mc.gui.setScreen(new ChatScreen(Config.get().prefix.get(), true));
}
}

Expand All @@ -171,7 +171,7 @@ private void onMouseClick(MouseClickEvent event) {
}

private void toggleGui() {
if (Utils.canCloseGui()) mc.screen.onClose();
if (Utils.canCloseGui()) mc.gui.screen().onClose();
else if (Utils.canOpenGui()) Tabs.get().getFirst().openScreen(GuiThemes.get());
}

Expand All @@ -182,17 +182,17 @@ private void toggleGui() {
@EventHandler(priority = EventPriority.LOWEST)
private void onOpenScreen(OpenScreenEvent event) {
if (event.screen instanceof WidgetScreen) {
if (!wasWidgetScreen) wasHudHiddenRoot = mc.options.hideGui;
if (!wasWidgetScreen) wasHudHiddenRoot = mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden;
if (GuiThemes.get().hideHUD() || wasHudHiddenRoot) {
// Always show the MC HUD in the HUD editor screen since people like
// to align some items with the hotbar or chat
mc.options.hideGui = !(event.screen instanceof HudEditorScreen)
mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden = !(event.screen instanceof HudEditorScreen)
&& !(event.screen instanceof AddHudElementScreen)
&& !(event.screen instanceof HudElementScreen);
}
} else {
if (wasWidgetScreen) mc.options.hideGui = wasHudHiddenRoot;
wasHudHiddenRoot = mc.options.hideGui;
if (wasWidgetScreen) mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden = wasHudHiddenRoot;
wasHudHiddenRoot = mc.gameRenderer.gameRenderState().guiRenderState.isHudHidden;
}

wasWidgetScreen = event.screen instanceof WidgetScreen;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ private void all(boolean onlyPossible, ToIntFunction<Enchantment> level) throws
}

private void syncItem() {
mc.setScreen(new InventoryScreen(mc.player));
mc.setScreen(null);
mc.gui.setScreen(new InventoryScreen(mc.player));
mc.gui.setScreen(null);
}

private ItemStack tryGetItemStack() throws CommandSyntaxException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,20 @@ public class InputCommand extends Command {
private static final List<KeypressHandler> activeHandlers = new ArrayList<>();

private static final List<Pair<KeyMapping, String>> holdKeys = List.of(
new Pair<>(mc.options.keyUp, "forwards"),
new Pair<>(mc.options.keyDown, "backwards"),
new Pair<>(mc.options.keyLeft, "left"),
new Pair<>(mc.options.keyRight, "right"),
new Pair<>(mc.options.keyJump, "jump"),
new Pair<>(mc.options.keyShift, "sneak"),
new Pair<>(mc.options.keySprint, "sprint"),
new Pair<>(mc.options.keyUse, "use"),
new Pair<>(mc.options.keyAttack, "attack")
Pair.of(mc.options.keyUp, "forwards"),
Pair.of(mc.options.keyDown, "backwards"),
Pair.of(mc.options.keyLeft, "left"),
Pair.of(mc.options.keyRight, "right"),
Pair.of(mc.options.keyJump, "jump"),
Pair.of(mc.options.keyShift, "sneak"),
Pair.of(mc.options.keySprint, "sprint"),
Pair.of(mc.options.keyUse, "use"),
Pair.of(mc.options.keyAttack, "attack")
);

private static final List<Pair<KeyMapping, String>> pressKeys = List.of(
new Pair<>(mc.options.keySwapOffhand, "swap"),
new Pair<>(mc.options.keyDrop, "drop")
Pair.of(mc.options.keySwapOffhand, "swap"),
Pair.of(mc.options.keyDrop, "drop")
);

public InputCommand() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.EntityTypes;
import net.minecraft.world.entity.projectile.EyeOfEnder;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
Expand Down Expand Up @@ -313,7 +313,7 @@ private void cancel() {

@EventHandler
private void onReadPacket(PacketEvent.Receive event) {
if (event.packet instanceof ClientboundAddEntityPacket packet && packet.getType() == EntityType.EYE_OF_ENDER) {
if (event.packet instanceof ClientboundAddEntityPacket packet && packet.getType() == EntityTypes.EYE_OF_ENDER) {
firstPosition(packet.getX(), packet.getY(), packet.getZ());
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ private void saveMap(int scale) throws CommandSyntaxException {
File path = getPath();
if (path == null) throw OOPS.create();

MapTextureManagerAccessor textureManager = (MapTextureManagerAccessor) mc.gameRenderer.getMinecraft().getMapTextureManager();
MapTextureManagerAccessor textureManager = (MapTextureManagerAccessor) mc.getMapTextureManager();
MapTextureManager.MapInstance texture = textureManager.meteor$invokeGetOrCreateMapInstance(map.get(DataComponents.MAP_ID), state);
if (texture.texture.getPixels() == null) throw OOPS.create();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import meteordevelopment.meteorclient.events.Cancellable;
import meteordevelopment.meteorclient.mixininterface.IEntityRenderState;
import net.minecraft.client.renderer.item.ItemModelResolver;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.SubmitNodeCollector;
import net.minecraft.client.renderer.entity.state.ItemEntityRenderState;
import com.mojang.blaze3d.vertex.PoseStack;
Expand All @@ -23,18 +22,16 @@ public class RenderItemEntityEvent extends Cancellable {
public ItemEntityRenderState renderState;
public float tickDelta;
public PoseStack matrixStack;
public MultiBufferSource vertexConsumerProvider;
public int light;
public ItemModelResolver itemModelManager;
public SubmitNodeCollector renderCommandQueue;

public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float tickDelta, PoseStack matrixStack, MultiBufferSource vertexConsumerProvider, int light, ItemModelResolver itemModelManager, SubmitNodeCollector renderCommandQueue) {
public static RenderItemEntityEvent get(ItemEntityRenderState renderState, float tickDelta, PoseStack matrixStack, int light, ItemModelResolver itemModelManager, SubmitNodeCollector renderCommandQueue) {
INSTANCE.setCancelled(false);
INSTANCE.itemEntity = (ItemEntity) ((IEntityRenderState) renderState).meteor$getEntity();
INSTANCE.renderState = renderState;
INSTANCE.tickDelta = tickDelta;
INSTANCE.matrixStack = matrixStack;
INSTANCE.vertexConsumerProvider = vertexConsumerProvider;
INSTANCE.light = light;
INSTANCE.itemModelManager = itemModelManager;
INSTANCE.renderCommandQueue = renderCommandQueue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ private void providedStringW(WTable table, ProvidedStringSetting setting) {

private void genericW(WTable table, GenericSetting<?> setting) {
WButton edit = table.add(theme.button(GuiRenderer.EDIT)).widget();
edit.action = () -> mc.setScreen(setting.createScreen(theme));
edit.action = () -> mc.gui.setScreen(setting.createScreen(theme));

reset(table, setting, null);
}
Expand All @@ -232,7 +232,7 @@ private void colorW(WTable table, ColorSetting setting) {
WQuad quad = list.add(theme.quad(setting.get())).widget();

WButton edit = list.add(theme.button(GuiRenderer.EDIT)).widget();
edit.action = () -> mc.setScreen(new ColorSettingScreen(theme, setting));
edit.action = () -> mc.gui.setScreen(new ColorSettingScreen(theme, setting));

reset(table, setting, () -> quad.color = setting.get());
}
Expand All @@ -259,7 +259,7 @@ private void blockW(WTable table, BlockSetting setting) {
BlockSettingScreen screen = new BlockSettingScreen(theme, setting);
screen.onClosed(() -> item.set(DisplayItemUtils.toStack(setting.get().asItem())));

mc.setScreen(screen);
mc.gui.setScreen(screen);
};

reset(table, setting, () -> item.set(DisplayItemUtils.toStack(setting.get().asItem())));
Expand All @@ -276,7 +276,7 @@ private void blockPosW(WTable table, BlockPosSetting setting) {
}

private void blockListW(WTable table, BlockListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new BlockListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new BlockListSettingScreen(theme, setting)));
}

private void itemW(WTable table, ItemSetting setting) {
Expand All @@ -289,59 +289,59 @@ private void itemW(WTable table, ItemSetting setting) {
ItemSettingScreen screen = new ItemSettingScreen(theme, setting);
screen.onClosed(() -> item.set(DisplayItemUtils.toStack(setting.get())));

mc.setScreen(screen);
mc.gui.setScreen(screen);
};

reset(table, setting, () -> item.set(DisplayItemUtils.toStack(setting.get())));
}

private void itemListW(WTable table, ItemListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new ItemListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new ItemListSettingScreen(theme, setting)));
}

private void entityTypeListW(WTable table, EntityTypeListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new EntityTypeListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new EntityTypeListSettingScreen(theme, setting)));
}

private void enchantmentListW(WTable table, EnchantmentListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new EnchantmentListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new EnchantmentListSettingScreen(theme, setting)));
}

private void moduleListW(WTable table, ModuleListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new ModuleListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new ModuleListSettingScreen(theme, setting)));
}

private void packetListW(WTable table, PacketListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new PacketBoolSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new PacketBoolSettingScreen(theme, setting)));
}

private void particleTypeListW(WTable table, ParticleTypeListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new ParticleTypeListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new ParticleTypeListSettingScreen(theme, setting)));
}

private void soundEventListW(WTable table, SoundEventListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new SoundEventListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new SoundEventListSettingScreen(theme, setting)));
}

private void statusEffectAmplifierMapW(WTable table, StatusEffectAmplifierMapSetting setting) {
selectW(table, setting, () -> mc.setScreen(new StatusEffectAmplifierMapSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new StatusEffectAmplifierMapSettingScreen(theme, setting)));
}

private void statusEffectListW(WTable table, StatusEffectListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new StatusEffectListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new StatusEffectListSettingScreen(theme, setting)));
}

private void storageBlockListW(WTable table, StorageBlockListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new StorageBlockListSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new StorageBlockListSettingScreen(theme, setting)));
}

private void screenHandlerListW(WTable table, ScreenHandlerListSetting setting) {
selectW(table, setting, () -> mc.setScreen(new ScreenHandlerSettingScreen(theme, setting)));
selectW(table, setting, () -> mc.gui.setScreen(new ScreenHandlerSettingScreen(theme, setting)));
}

private void blockDataW(WTable table, BlockDataSetting<?> setting) {
WButton button = table.add(theme.button(GuiRenderer.EDIT)).expandCellX().widget();
button.action = () -> mc.setScreen(new BlockDataSettingScreen<>(theme, setting));
button.action = () -> mc.gui.setScreen(new BlockDataSettingScreen<>(theme, setting));

reset(table, setting, null);
}
Expand All @@ -357,7 +357,7 @@ private void potionW(WTable table, PotionSetting setting) {
WidgetScreen screen = new PotionSettingScreen(theme, setting);
screen.onClosed(() -> item.set(potion));

mc.setScreen(screen);
mc.gui.setScreen(screen);
};

reset(list, setting, () -> item.set(potion));
Expand All @@ -372,7 +372,7 @@ private void fontW(WTable table, FontFaceSetting setting) {
WidgetScreen screen = new FontFaceSettingScreen(theme, setting);
screen.onClosed(() -> label.set(setting.get().info.family()));

mc.setScreen(screen);
mc.gui.setScreen(screen);
};

reset(list, setting, () -> label.set(Fonts.DEFAULT_FONT.info.family()));
Expand Down Expand Up @@ -419,7 +419,7 @@ private void colorListWFill(WTable t, ColorListSetting setting) {
setting.onChanged();
}, null, null);
set.set(setting.get().get(_i));
mc.setScreen(new ColorSettingScreen(theme, set));
mc.gui.setScreen(new ColorSettingScreen(theme, set));
};

WMinus remove = t.add(theme.minus()).expandCellX().right().widget();
Expand Down
Loading
Loading