From 30176ed90e8a2b8b1a04e0a75e87a5054a2122c9 Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sun, 18 Jan 2026 17:25:52 -0800 Subject: [PATCH 1/5] 26.3 --- fabric/src/main/resources/fabric.mod.json | 4 +- forge/src/main/resources/META-INF/mods.toml | 2 +- gradle.properties | 10 ++-- .../resources/META-INF/neoforge.mods.toml | 2 +- .../baritone/api/utils/BlockOptionalMeta.java | 9 ++- .../mixins/MixinClientPlayNetHandler.java | 4 +- .../launch/mixins/MixinRenderPipelines.java | 2 +- .../launch/mixins/MixinWorldRenderer.java | 10 ++-- .../command/ExampleBaritoneControl.java | 5 +- .../java/baritone/process/BuilderProcess.java | 2 +- .../java/baritone/process/FarmProcess.java | 15 +---- .../java/baritone/utils/BlockBreakHelper.java | 5 +- .../java/baritone/utils/BlockPlaceHelper.java | 3 +- src/main/java/baritone/utils/IRenderer.java | 60 +++++++++++-------- .../java/baritone/utils/PathRenderer.java | 2 +- .../utils/accessor/IRenderPipelines.java | 2 +- .../baritone/utils/pathing/Avoidance.java | 4 +- 17 files changed, 71 insertions(+), 70 deletions(-) diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 76da7a3245..38ed3e5baf 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -24,8 +24,8 @@ "mixins.baritone.json" ], "depends": { - "fabricloader": ">=0.19.3", - "minecraft": ["26.2"] + "fabricloader": ">=0.19.5", + "minecraft": "~26.3" }, "custom": { "modmenu": { diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 5328e7bbf4..c6d1f26722 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -35,6 +35,6 @@ A Minecraft pathfinder bot. modId="minecraft" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version -versionRange="[26.2]" +versionRange="[26.3, 26.4)" ordering="NONE" side="BOTH" diff --git a/gradle.properties b/gradle.properties index 92947ba3ee..c2d1767cce 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,20 +1,20 @@ org.gradle.jvmargs=-Xmx4G -available_loaders=fabric,forge,neoforge,tweaker +available_loaders=fabric,neoforge,tweaker -mod_version=1.19.0 +mod_version=1.20.0 maven_group=baritone archives_base_name=baritone java_version=25 -minecraft_version=26.2 +minecraft_version=26.3 forge_version=65.0.3 -neoforge_version=11-beta +neoforge_version=6-beta -fabric_version=0.19.3 +fabric_version=0.19.5 nether_pathfinder_version=1.6 diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/neoforge/src/main/resources/META-INF/neoforge.mods.toml index 4eec7768ea..567bd7abe5 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/neoforge/src/main/resources/META-INF/neoforge.mods.toml @@ -35,7 +35,7 @@ A Minecraft pathfinder bot. modId="minecraft" type="required" # This version range declares a minimum of the current minecraft version up to but not including the next major version -versionRange="[26.2]" +versionRange="[26.3, 26.4)" ordering="NONE" side="BOTH" diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java index 0685aa8523..1505a448d5 100644 --- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java +++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java @@ -59,7 +59,6 @@ import sun.misc.Unsafe; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.*; @@ -306,22 +305,22 @@ public static CompletableFuture load() { // Simplified from {@link net.minecraft.server.WorldLoader#load()} CloseableResourceManager closeableResourceManager = new MultiPackResourceManager( PackType.SERVER_DATA, - List.of(ServerPacksSource.createVanillaPackSource()) + List.of(ServerPacksSource.createVanillaPackSource().fullResources()) ); LayeredRegistryAccess baseLayeredRegistry = RegistryLayer.createRegistryAccess(); List> pendingTags = TagLoader.loadTagsForExistingRegistries( closeableResourceManager, baseLayeredRegistry.getLayer(RegistryLayer.STATIC) ); List> worldGenRegistryLookupList = TagLoader.buildUpdatedLookups( - baseLayeredRegistry.getAccessForLoading(RegistryLayer.WORLDGEN), + baseLayeredRegistry.getAccessForLoading(RegistryLayer.WORLD), pendingTags ); LayeredRegistryAccess layeredRegistryAccess = baseLayeredRegistry.replaceFrom( - RegistryLayer.WORLDGEN, + RegistryLayer.WORLD, RegistryDataLoader.load( closeableResourceManager, worldGenRegistryLookupList, - RegistryDataLoader.WORLDGEN_REGISTRIES, + RegistryDataLoader.WORLD_REGISTRIES, ForkJoinPool.commonPool() ).join() ); diff --git a/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java b/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java index 1985b31517..729e397ff0 100644 --- a/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java +++ b/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java @@ -108,8 +108,8 @@ private void postHandleChunkData(ClientboundLevelChunkWithLightPacket packetIn, new ChunkEvent( EventState.POST, !packetIn.isSkippable() ? ChunkEvent.Type.POPULATE_FULL : ChunkEvent.Type.POPULATE_PARTIAL, - packetIn.getX(), - packetIn.getZ() + packetIn.x(), + packetIn.z() ) ); } diff --git a/src/launch/java/baritone/launch/mixins/MixinRenderPipelines.java b/src/launch/java/baritone/launch/mixins/MixinRenderPipelines.java index f5a8a6e97e..4f07497a24 100644 --- a/src/launch/java/baritone/launch/mixins/MixinRenderPipelines.java +++ b/src/launch/java/baritone/launch/mixins/MixinRenderPipelines.java @@ -18,7 +18,7 @@ package baritone.launch.mixins; import baritone.utils.accessor.IRenderPipelines; -import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.renderpearl.api.pipeline.RenderPipeline; import net.minecraft.client.renderer.RenderPipelines; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java b/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java index 51bb7e3e83..ee93e521dc 100644 --- a/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java +++ b/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java @@ -20,13 +20,11 @@ import baritone.api.BaritoneAPI; import baritone.api.IBaritone; import baritone.api.event.events.RenderEvent; -import com.mojang.blaze3d.buffers.GpuBufferSlice; import com.mojang.blaze3d.resource.GraphicsResourceAllocator; import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.DeltaTracker; +import com.mojang.renderpearl.api.buffers.GpuBufferSlice; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.state.level.CameraRenderState; -import org.joml.Matrix4fc; import org.joml.Vector4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -44,11 +42,11 @@ public class MixinWorldRenderer { method = "render", at = @At("RETURN") ) - private void onStartHand(final GraphicsResourceAllocator allocator, final DeltaTracker deltaTracker, final boolean outline, final CameraRenderState camera, final Matrix4fc modelViewMatrix, final GpuBufferSlice fog, final Vector4f fogColor, final boolean sky, final CallbackInfo ci) { + private void onStartHand(final GraphicsResourceAllocator resourceAllocator, final boolean renderOutline, final CameraRenderState cameraState, final GpuBufferSlice terrainFog, final Vector4f fogColor, final boolean shouldRenderSky, final boolean consistentDepthRequired, final CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { PoseStack poseStack = new PoseStack(); - poseStack.mulPose(modelViewMatrix); - ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(deltaTracker.getGameTimeDeltaPartialTick(false), poseStack, camera.projectionMatrix)); + poseStack.mulPose(cameraState.viewRotationMatrix); + ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(cameraState.cameraEntityPartialTicks, poseStack, cameraState.projectionMatrix)); } } } diff --git a/src/main/java/baritone/command/ExampleBaritoneControl.java b/src/main/java/baritone/command/ExampleBaritoneControl.java index 82f1cc57c3..12d9149f2d 100644 --- a/src/main/java/baritone/command/ExampleBaritoneControl.java +++ b/src/main/java/baritone/command/ExampleBaritoneControl.java @@ -34,13 +34,14 @@ import baritone.command.argument.ArgConsumer; import baritone.command.argument.CommandArguments; import baritone.command.manager.CommandManager; +import com.mojang.blaze3d.Blaze3D; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; import net.minecraft.network.chat.MutableComponent; -import net.minecraft.util.Util; +import java.net.URI; import java.util.List; import java.util.Locale; import java.util.stream.Stream; @@ -96,7 +97,7 @@ public boolean runCommand(String msg) { return false; } else if (msg.trim().equalsIgnoreCase("orderpizza")) { try { - Util.getPlatform().openUri("https://www.dominos.com/en/pages/order/"); + Blaze3D.openUri(URI.create("https://www.dominos.com/en/pages/order/")); } catch (Exception ignored) {} return false; } diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index c1f275001e..ceca32538c 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -519,7 +519,7 @@ public int lengthZ() { } // build repeat time layer = 0; - origin = new BlockPos(origin).offset(repeat); + origin = new BlockPos(origin.getX(), origin.getY(), origin.getZ()).offset(repeat); if (!Baritone.settings().buildRepeatSneaky.value) { schematic.reset(); } diff --git a/src/main/java/baritone/process/FarmProcess.java b/src/main/java/baritone/process/FarmProcess.java index fbb7f66a2c..da2ff2fdd7 100644 --- a/src/main/java/baritone/process/FarmProcess.java +++ b/src/main/java/baritone/process/FarmProcess.java @@ -21,8 +21,8 @@ import baritone.api.BaritoneAPI; import baritone.api.pathing.goals.Goal; import baritone.api.pathing.goals.GoalBlock; -import baritone.api.pathing.goals.GoalGetToBlock; import baritone.api.pathing.goals.GoalComposite; +import baritone.api.pathing.goals.GoalGetToBlock; import baritone.api.process.IFarmProcess; import baritone.api.process.PathingCommand; import baritone.api.process.PathingCommandType; @@ -42,16 +42,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.AirBlock; -import net.minecraft.world.level.block.BambooStalkBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.BonemealableBlock; -import net.minecraft.world.level.block.CactusBlock; -import net.minecraft.world.level.block.CocoaBlock; -import net.minecraft.world.level.block.CropBlock; -import net.minecraft.world.level.block.NetherWartBlock; -import net.minecraft.world.level.block.SugarCaneBlock; +import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; @@ -267,7 +258,7 @@ public PathingCommand onTick(boolean calcFailed, boolean isSafeToCancel) { } if (state.getBlock() instanceof BonemealableBlock) { BonemealableBlock ig = (BonemealableBlock) state.getBlock(); - if (ig.isValidBonemealTarget(ctx.world(), pos, state) && ig.isBonemealSuccess(ctx.world(), ctx.world().getRandom(), pos, state)) { + if (ig.isValidBonemealTarget(ctx.world(), pos, state, BonemealSource.INTERACTION) && ig.isBonemealSuccess(ctx.world(), ctx.world().getRandom(), pos, state, BonemealSource.INTERACTION)) { bonemealable.add(pos); } } diff --git a/src/main/java/baritone/utils/BlockBreakHelper.java b/src/main/java/baritone/utils/BlockBreakHelper.java index 0c5cf6f000..2b1e10c8df 100644 --- a/src/main/java/baritone/utils/BlockBreakHelper.java +++ b/src/main/java/baritone/utils/BlockBreakHelper.java @@ -21,6 +21,7 @@ import baritone.api.utils.IPlayerContext; import baritone.utils.accessor.IPlayerControllerMP; import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.component.SwingAnimation; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; @@ -62,10 +63,10 @@ public void tick(boolean isLeftClick) { if (ctx.playerController().hasBrokenBlock()) { ctx.playerController().syncHeldItem(); ctx.playerController().clickBlock(((BlockHitResult) trace).getBlockPos(), ((BlockHitResult) trace).getDirection()); - ctx.player().swing(InteractionHand.MAIN_HAND); + ctx.player().swing(InteractionHand.MAIN_HAND, SwingAnimation.DEFAULT, false); } else { if (ctx.playerController().onPlayerDamageBlock(((BlockHitResult) trace).getBlockPos(), ((BlockHitResult) trace).getDirection())) { - ctx.player().swing(InteractionHand.MAIN_HAND); + ctx.player().swing(InteractionHand.MAIN_HAND, SwingAnimation.DEFAULT, false); } if (ctx.playerController().hasBrokenBlock()) { // block broken this tick // break delay timer only applies for multi-tick block breaks like vanilla diff --git a/src/main/java/baritone/utils/BlockPlaceHelper.java b/src/main/java/baritone/utils/BlockPlaceHelper.java index ca8d505239..950b59f56e 100644 --- a/src/main/java/baritone/utils/BlockPlaceHelper.java +++ b/src/main/java/baritone/utils/BlockPlaceHelper.java @@ -21,6 +21,7 @@ import baritone.api.utils.IPlayerContext; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.component.SwingAnimation; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; @@ -47,7 +48,7 @@ public void tick(boolean rightClickRequested) { rightClickTimer = Baritone.settings().rightClickSpeed.value - BASE_PLACE_DELAY; for (InteractionHand hand : InteractionHand.values()) { if (ctx.playerController().processRightClickBlock(ctx.player(), ctx.world(), hand, (BlockHitResult) mouseOver) == InteractionResult.SUCCESS) { - ctx.player().swing(hand); + ctx.player().swing(hand, SwingAnimation.DEFAULT, false); return; } if (!ctx.player().getItemInHand(hand).isEmpty() && ctx.playerController().processRightClick(ctx.player(), ctx.world(), hand) == InteractionResult.SUCCESS) { diff --git a/src/main/java/baritone/utils/IRenderer.java b/src/main/java/baritone/utils/IRenderer.java index 4cf39bdac0..9554c394fd 100644 --- a/src/main/java/baritone/utils/IRenderer.java +++ b/src/main/java/baritone/utils/IRenderer.java @@ -22,17 +22,14 @@ import baritone.utils.accessor.IEntityRenderManager; import baritone.utils.accessor.IRenderPipelines; import baritone.utils.accessor.IRenderType; -import com.mojang.blaze3d.pipeline.BlendFunction; -import com.mojang.blaze3d.pipeline.ColorTargetState; -import com.mojang.blaze3d.pipeline.DepthStencilState; -import com.mojang.blaze3d.pipeline.RenderPipeline; -import com.mojang.blaze3d.platform.CompareOp; -import com.mojang.blaze3d.platform.BlendFactor; -import com.mojang.blaze3d.PrimitiveTopology; -import com.mojang.blaze3d.vertex.*; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.renderpearl.api.pipeline.*; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.BindGroupLayouts; +import net.minecraft.client.renderer.RenderPipelines; import net.minecraft.client.renderer.StagedVertexBuffer; import net.minecraft.client.renderer.blockentity.BeaconRenderer; import net.minecraft.client.renderer.rendertype.RenderSetup; @@ -45,6 +42,8 @@ import net.minecraft.world.phys.Vec3; import java.awt.*; +import java.util.Optional; +import java.util.OptionalDouble; import java.util.function.BiFunction; public interface IRenderer { @@ -64,25 +63,26 @@ public interface IRenderer { .buildSnippet(); RenderPipeline.Snippet BARITONE_BEACON_BEAM_SNIPPET = RenderPipeline.builder(((IRenderPipelines) new RenderPipelines()).getMatricesFogSnippet()) - .withVertexShader("core/rendertype_beacon_beam") - .withFragmentShader("core/rendertype_beacon_beam") - .withBindGroupLayout(BindGroupLayouts.SAMPLER0) - .withVertexBinding(0, DefaultVertexFormat.BLOCK) - .withPrimitiveTopology(PrimitiveTopology.QUADS) - .buildSnippet(); + .withVertexShader("core/rendertype_beacon_beam") + .withFragmentShader("core/rendertype_beacon_beam") + .withBindGroupLayout(BindGroupLayouts.SAMPLER0) + .withVertexBinding(0, DefaultVertexFormat.BLOCK) + .withPrimitiveTopology(PrimitiveTopology.QUADS) + .buildSnippet(); RenderPipeline BEACON_BEAM_OPAQUE = ((IRenderPipelines) new RenderPipelines()).baritone$registerPipeline(RenderPipeline.builder(BARITONE_BEACON_BEAM_SNIPPET) - .withLocation("pipeline/baritone_beacon_beam_opaque") - .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) - .withCull(true) - .build()); + .withLocation("pipeline/baritone_beacon_beam_opaque") + .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) + .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) + .withCull(true) + .build()); RenderPipeline BEACON_BEAM_TRANSLUCENT = ((IRenderPipelines) new RenderPipelines()).baritone$registerPipeline(RenderPipeline.builder(BARITONE_BEACON_BEAM_SNIPPET) - .withLocation("pipeline/baritone_beacon_beam_translucent") - .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) - .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) - .withCull(true) - .build()); + .withLocation("pipeline/baritone_beacon_beam_translucent") + .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) + .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) + .withCull(true) + .build()); RenderType linesWithDepthRenderType = ((IRenderType) RenderTypes.lines()).createRenderType( "renderType/baritone_lines_with_depth", @@ -145,7 +145,17 @@ static void endBuffer(BufferBuilder bufferBuilder, RenderType renderType) { stagedVertexBuffer.upload(); StagedVertexBuffer.ExecuteInfo info = stagedVertexBuffer.getExecuteInfo(draw[0]); if (info != null) { - renderType.prepare().drawFromBuffer(info); + var preparedRenderType = renderType.prepare(); + var renderTarget = Minecraft.getInstance().gameRenderer.mainRenderTarget(); + try (var renderPass = RenderSystem.getDevice().createCommandEncoder().createRenderPass( + () -> "Baritone Render Pass", + renderTarget.getColorTextureView(), + Optional.empty(), + renderTarget.getDepthTextureView(), + OptionalDouble.empty()) + ) { + preparedRenderType.drawFromBuffer(info, renderPass); + } } stagedVertexBuffer.endFrame(); } diff --git a/src/main/java/baritone/utils/PathRenderer.java b/src/main/java/baritone/utils/PathRenderer.java index 6339303e05..3cc75fb7fc 100644 --- a/src/main/java/baritone/utils/PathRenderer.java +++ b/src/main/java/baritone/utils/PathRenderer.java @@ -359,7 +359,7 @@ private static void renderGoalXZBeaconLayer(PoseStack stack, double height, floa stack.translate(0.5D, 0.0D, 0.5D); if (!translucent) { stack.pushPose(); - stack.mulPose(Axis.YP.rotationDegrees(time * 2.25F - 45.0F)); + stack.rotateDegrees(Axis.YP, time * 2.25F - 45.0F); } float v0 = -1.0F + scroll; diff --git a/src/main/java/baritone/utils/accessor/IRenderPipelines.java b/src/main/java/baritone/utils/accessor/IRenderPipelines.java index 35ebca33b9..6ef174f140 100644 --- a/src/main/java/baritone/utils/accessor/IRenderPipelines.java +++ b/src/main/java/baritone/utils/accessor/IRenderPipelines.java @@ -17,7 +17,7 @@ package baritone.utils.accessor; -import com.mojang.blaze3d.pipeline.RenderPipeline; +import com.mojang.renderpearl.api.pipeline.RenderPipeline; public interface IRenderPipelines { RenderPipeline.Snippet getLinesSnippet(); diff --git a/src/main/java/baritone/utils/pathing/Avoidance.java b/src/main/java/baritone/utils/pathing/Avoidance.java index dcaf6e8a57..5e5f171cb5 100644 --- a/src/main/java/baritone/utils/pathing/Avoidance.java +++ b/src/main/java/baritone/utils/pathing/Avoidance.java @@ -23,7 +23,7 @@ import it.unimi.dsi.fastutil.longs.Long2DoubleOpenHashMap; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.monster.EnderMan; +import net.minecraft.world.entity.monster.Enderman; import net.minecraft.world.entity.monster.spider.Spider; import net.minecraft.world.entity.monster.zombie.ZombifiedPiglin; @@ -76,7 +76,7 @@ public static List create(IPlayerContext ctx) { .filter(entity -> entity instanceof Mob) .filter(entity -> (!(entity instanceof Spider)) || ctx.player().getLightLevelDependentMagicValue() < 0.5) .filter(entity -> !(entity instanceof ZombifiedPiglin) || ((ZombifiedPiglin) entity).getLastHurtByMob() != null) - .filter(entity -> !(entity instanceof EnderMan) || ((EnderMan) entity).isCreepy()) + .filter(entity -> !(entity instanceof Enderman) || ((Enderman) entity).isCreepy()) .forEach(entity -> res.add(new Avoidance(entity.blockPosition(), mobCoeff, Baritone.settings().mobAvoidanceRadius.value))); } return res; From e9e84d7d398ef8a2d64a8aaed32940a680301d6d Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sat, 19 Sep 2026 15:37:32 -0700 Subject: [PATCH 2/5] forge --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index c2d1767cce..d0fae79e42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ org.gradle.jvmargs=-Xmx4G -available_loaders=fabric,neoforge,tweaker +available_loaders=fabric,forge,neoforge,tweaker mod_version=1.20.0 maven_group=baritone @@ -10,7 +10,7 @@ java_version=25 minecraft_version=26.3 -forge_version=65.0.3 +forge_version=66.0.2 neoforge_version=6-beta From 3c2030fd9f78f8be71a117cc1e2e476b2c4d876b Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sat, 19 Sep 2026 15:54:46 -0700 Subject: [PATCH 3/5] move player update post event inject target --- src/launch/java/baritone/launch/mixins/MixinMinecraft.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/launch/java/baritone/launch/mixins/MixinMinecraft.java b/src/launch/java/baritone/launch/mixins/MixinMinecraft.java index 37455dbd28..5762e05de3 100644 --- a/src/launch/java/baritone/launch/mixins/MixinMinecraft.java +++ b/src/launch/java/baritone/launch/mixins/MixinMinecraft.java @@ -114,7 +114,7 @@ private void postRunTick(CallbackInfo ci) { method = "tick", at = @At( value = "INVOKE", - target = "net/minecraft/client/multiplayer/ClientLevel.tickEntities()V", + target = "Lnet/minecraft/client/player/LocalPlayer;sendChanges()V", shift = At.Shift.AFTER ) ) From aa9bd4542aae80c192e204d97141d640a9d10a49 Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sat, 19 Sep 2026 15:58:08 -0700 Subject: [PATCH 4/5] fix mouse button ids --- src/main/java/baritone/utils/GuiClick.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/baritone/utils/GuiClick.java b/src/main/java/baritone/utils/GuiClick.java index fb8410134c..369104a136 100644 --- a/src/main/java/baritone/utils/GuiClick.java +++ b/src/main/java/baritone/utils/GuiClick.java @@ -22,6 +22,7 @@ import baritone.api.pathing.goals.GoalBlock; import baritone.api.utils.BetterBlockPos; import baritone.api.utils.Helper; +import com.mojang.blaze3d.platform.InputConstants; import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.ChatFormatting; @@ -92,7 +93,7 @@ public void extractBackground(GuiGraphicsExtractor grapics, int mouseX, int mous @Override public boolean mouseReleased(MouseButtonEvent event) { if (currentMouseOver != null) { //Catch this, or else a click into void will result in a crash - if (event.button() == 0) { + if (event.button() == InputConstants.MOUSE_BUTTON_LEFT) { if (clickStart != null && !clickStart.equals(currentMouseOver)) { BaritoneAPI.getProvider().getPrimaryBaritone().getSelectionManager().removeAllSelections(); BaritoneAPI.getProvider().getPrimaryBaritone().getSelectionManager().addSelection(BetterBlockPos.from(clickStart), BetterBlockPos.from(currentMouseOver)); @@ -107,7 +108,7 @@ public boolean mouseReleased(MouseButtonEvent event) { } else { BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(new GoalBlock(currentMouseOver)); } - } else if (event.button() == 1) { + } else if (event.button() == InputConstants.MOUSE_BUTTON_RIGHT) { BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(new GoalBlock(currentMouseOver.above())); } } From 4b96a99ff55afd6a3365de8181456d74b68100ac Mon Sep 17 00:00:00 2001 From: rfresh2 <89827146+rfresh2@users.noreply.github.com> Date: Sat, 19 Sep 2026 16:02:37 -0700 Subject: [PATCH 5/5] remove indent diff --- src/main/java/baritone/utils/IRenderer.java | 32 ++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/main/java/baritone/utils/IRenderer.java b/src/main/java/baritone/utils/IRenderer.java index 9554c394fd..59d8005a17 100644 --- a/src/main/java/baritone/utils/IRenderer.java +++ b/src/main/java/baritone/utils/IRenderer.java @@ -63,26 +63,26 @@ public interface IRenderer { .buildSnippet(); RenderPipeline.Snippet BARITONE_BEACON_BEAM_SNIPPET = RenderPipeline.builder(((IRenderPipelines) new RenderPipelines()).getMatricesFogSnippet()) - .withVertexShader("core/rendertype_beacon_beam") - .withFragmentShader("core/rendertype_beacon_beam") - .withBindGroupLayout(BindGroupLayouts.SAMPLER0) - .withVertexBinding(0, DefaultVertexFormat.BLOCK) - .withPrimitiveTopology(PrimitiveTopology.QUADS) - .buildSnippet(); + .withVertexShader("core/rendertype_beacon_beam") + .withFragmentShader("core/rendertype_beacon_beam") + .withBindGroupLayout(BindGroupLayouts.SAMPLER0) + .withVertexBinding(0, DefaultVertexFormat.BLOCK) + .withPrimitiveTopology(PrimitiveTopology.QUADS) + .buildSnippet(); RenderPipeline BEACON_BEAM_OPAQUE = ((IRenderPipelines) new RenderPipelines()).baritone$registerPipeline(RenderPipeline.builder(BARITONE_BEACON_BEAM_SNIPPET) - .withLocation("pipeline/baritone_beacon_beam_opaque") - .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) - .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) - .withCull(true) - .build()); + .withLocation("pipeline/baritone_beacon_beam_opaque") + .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) + .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) + .withCull(true) + .build()); RenderPipeline BEACON_BEAM_TRANSLUCENT = ((IRenderPipelines) new RenderPipelines()).baritone$registerPipeline(RenderPipeline.builder(BARITONE_BEACON_BEAM_SNIPPET) - .withLocation("pipeline/baritone_beacon_beam_translucent") - .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) - .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) - .withCull(true) - .build()); + .withLocation("pipeline/baritone_beacon_beam_translucent") + .withColorTargetState(new ColorTargetState(BlendFunction.TRANSLUCENT)) + .withDepthStencilState(new DepthStencilState(CompareOp.ALWAYS_PASS, false)) + .withCull(true) + .build()); RenderType linesWithDepthRenderType = ((IRenderType) RenderTypes.lines()).createRenderType( "renderType/baritone_lines_with_depth",