1.21.6 start

This commit is contained in:
rfresh2
2025-06-17 12:43:42 -07:00
parent 0ecbfdc585
commit e6fd85cd42
11 changed files with 72 additions and 57 deletions

View File

@@ -25,7 +25,7 @@
],
"depends": {
"fabricloader": ">=0.14.22",
"minecraft": ["1.21.5"]
"minecraft": ["1.21.6"]
},
"custom": {
"modmenu": {

View File

@@ -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="[1.21.5]"
versionRange="[1.21.6]"
ordering="NONE"
side="BOTH"

View File

@@ -1,20 +1,20 @@
org.gradle.jvmargs=-Xmx4G
available_loaders=fabric,neoforge,forge,tweaker
available_loaders=fabric,tweaker
mod_version=1.14.0
mod_version=1.15.0
maven_group=baritone
archives_base_name=baritone
java_version=21
minecraft_version=1.21.5
minecraft_version=1.21.6
forge_version=55.0.9
neoforge_version=63-beta
fabric_version=0.16.10
fabric_version=0.16.14
nether_pathfinder_version=1.4.1

View File

@@ -35,6 +35,6 @@ 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="[1.21.5]"
versionRange="[1.21.6]"
ordering="NONE"
side="BOTH"

View File

@@ -22,9 +22,9 @@ import baritone.api.IBaritone;
import baritone.api.event.events.PacketEvent;
import baritone.api.event.events.type.EventState;
import io.netty.channel.Channel;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import net.minecraft.network.Connection;
import net.minecraft.network.PacketSendListener;
import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.PacketFlow;
import org.spongepowered.asm.mixin.Final;
@@ -52,7 +52,7 @@ public class MixinNetworkManager {
method = "sendPacket",
at = @At("HEAD")
)
private void preDispatchPacket(Packet<?> packet, PacketSendListener packetSendListener, boolean flush, CallbackInfo ci) {
private void preDispatchPacket(final Packet<?> packet, final ChannelFutureListener channelFutureListener, final boolean flush, final CallbackInfo ci) {
if (this.receiving != PacketFlow.CLIENTBOUND) {
return;
}
@@ -68,7 +68,7 @@ public class MixinNetworkManager {
method = "sendPacket",
at = @At("RETURN")
)
private void postDispatchPacket(Packet<?> packet, PacketSendListener packetSendListener, boolean flush, CallbackInfo ci) {
private void postDispatchPacket(Packet<?> packet, ChannelFutureListener packetSendListener, boolean flush, CallbackInfo ci) {
if (this.receiving != PacketFlow.CLIENTBOUND) {
return;
}

View File

@@ -21,13 +21,13 @@ import baritone.api.BaritoneAPI;
import baritone.api.IBaritone;
import baritone.api.event.events.ChatEvent;
import baritone.utils.accessor.IGuiScreen;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.ClickEvent;
import net.minecraft.network.chat.Style;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX;
@@ -35,12 +35,8 @@ import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX;
public abstract class MixinScreen implements IGuiScreen {
//TODO: switch to enum extention with mixin 9.0 or whenever Mumfrey gets around to it
@Inject(method = "handleComponentClicked", at = @At(
value = "INVOKE",
target = "Lnet/minecraft/client/multiplayer/ClientPacketListener;sendUnsignedCommand(Ljava/lang/String;)Z"
), cancellable = true)
public void handleCustomClickEvent(final Style style, final CallbackInfoReturnable<Boolean> cir) {
ClickEvent clickEvent = style.getClickEvent();
@Inject(method = "handleClickEvent", at = @At(value = "HEAD"), cancellable = true)
public void handleCustomClickEvent(final Minecraft minecraft, final ClickEvent clickEvent, final CallbackInfo ci) {
if (clickEvent == null) {
return;
}
@@ -52,7 +48,6 @@ public abstract class MixinScreen implements IGuiScreen {
if (baritone != null) {
baritone.getGameEventHandler().onSendChatMessage(new ChatEvent(command));
}
cir.setReturnValue(true);
cir.cancel();
ci.cancel();
}
}

View File

@@ -20,13 +20,14 @@ package baritone.launch.mixins;
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.Camera;
import net.minecraft.client.DeltaTracker;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.client.renderer.LevelRenderer;
import org.joml.Matrix4f;
import org.joml.Vector4f;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -43,7 +44,7 @@ public class MixinWorldRenderer {
method = "renderLevel",
at = @At("RETURN")
)
private void onStartHand(final GraphicsResourceAllocator graphicsResourceAllocator, final DeltaTracker deltaTracker, final boolean bl, final Camera camera, final GameRenderer gameRenderer, final Matrix4f matrix4f, final Matrix4f matrix4f2, final CallbackInfo ci) {
private void onStartHand(final GraphicsResourceAllocator graphicsResourceAllocator, final DeltaTracker deltaTracker, final boolean bl, final Camera camera, final Matrix4f matrix4f, final Matrix4f matrix4f2, final GpuBufferSlice gpuBufferSlice, final Vector4f vector4f, final boolean bl2, final CallbackInfo ci) {
for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) {
PoseStack poseStack = new PoseStack();
poseStack.mulPose(matrix4f);

View File

@@ -33,16 +33,18 @@ import baritone.pathing.calc.AbstractNodeCostSearch;
import baritone.pathing.movement.CalculationContext;
import baritone.pathing.movement.MovementHelper;
import baritone.pathing.path.PathExecutor;
import baritone.process.ElytraProcess;
import baritone.utils.PathRenderer;
import baritone.utils.PathingCommandContext;
import baritone.utils.pathing.Favoring;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.core.BlockPos;
import net.minecraft.network.chat.Component;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.LinkedBlockingQueue;
import net.minecraft.core.BlockPos;
public final class PathingBehavior extends Behavior implements IPathingBehavior, Helper {
@@ -158,7 +160,9 @@ public final class PathingBehavior extends Behavior implements IPathingBehavior,
queuePathEvent(PathEvent.AT_GOAL);
next = null;
if (Baritone.settings().disconnectOnArrival.value) {
ctx.world().disconnect();
if (ctx.world() instanceof ClientLevel clientLevel) {
clientLevel.disconnect(Component.literal("[Baritone] Arrived at goal!"));
}
}
return;
}

View File

@@ -23,6 +23,8 @@ import baritone.api.process.ICustomGoalProcess;
import baritone.api.process.PathingCommand;
import baritone.api.process.PathingCommandType;
import baritone.utils.BaritoneProcessHelper;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.network.chat.Component;
/**
* As set by ExampleBaritoneControl or something idk
@@ -105,7 +107,9 @@ public final class CustomGoalProcess extends BaritoneProcessHelper implements IC
if (this.goal == null || (this.goal.isInGoal(ctx.playerFeet()) && this.goal.isInGoal(baritone.getPathingBehavior().pathStart()))) {
onLostControl(); // we're there xd
if (Baritone.settings().disconnectOnArrival.value) {
ctx.world().disconnect();
if (ctx.world() instanceof ClientLevel clientLevel) {
clientLevel.disconnect(Component.literal("[Baritone] Arrived at goal!"));
}
}
if (Baritone.settings().notificationOnPathComplete.value) {
logNotification("Pathing complete", false);

View File

@@ -44,8 +44,10 @@ import baritone.process.elytra.NullElytraProcess;
import baritone.utils.BaritoneProcessHelper;
import baritone.utils.PathingCommandContext;
import it.unimi.dsi.fastutil.longs.LongOpenHashSet;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.core.BlockPos;
import net.minecraft.core.NonNullList;
import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
@@ -157,7 +159,9 @@ public class ElytraProcess extends BaritoneProcessHelper implements IBaritonePro
if (Baritone.settings().disconnectOnArrival.value && !reachedGoal) {
// don't be active when the user logs back in
this.onLostControl();
ctx.world().disconnect();
if (ctx.world() instanceof ClientLevel clientLevel) {
clientLevel.disconnect(Component.literal("[Baritone] Arrived at goal!"));
}
return new PathingCommand(null, PathingCommandType.CANCEL_AND_SET_GOAL);
}
reachedGoal = true;

View File

@@ -18,15 +18,18 @@
package baritone.utils;
import com.mojang.blaze3d.buffers.GpuBuffer;
import com.mojang.blaze3d.buffers.GpuBufferSlice;
import com.mojang.blaze3d.pipeline.RenderPipeline;
import com.mojang.blaze3d.pipeline.RenderTarget;
import com.mojang.blaze3d.systems.RenderPass;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.textures.GpuTexture;
import com.mojang.blaze3d.systems.ScissorState;
import com.mojang.blaze3d.textures.GpuTextureView;
import com.mojang.blaze3d.vertex.MeshData;
import com.mojang.blaze3d.vertex.VertexFormat;
import net.minecraft.client.renderer.RenderStateShard;
import net.minecraft.client.renderer.RenderType;
import org.joml.Vector4f;
import java.util.OptionalDouble;
import java.util.OptionalInt;
@@ -43,11 +46,6 @@ public class BaritoneRenderType extends RenderType {
return new BaritoneRenderType(name, bufferSize, false, false, renderPipeline);
}
@Override
public RenderPipeline getRenderPipeline() {
return this.renderPipeline;
}
@Override
public VertexFormat format() {
return this.renderPipeline.getVertexFormat();
@@ -60,11 +58,18 @@ public class BaritoneRenderType extends RenderType {
@Override
public void draw(final MeshData meshData) {
RenderPipeline renderPipeline = this.getRenderPipeline();
this.setupRenderState();
GpuBufferSlice gpuBufferSlice = RenderSystem.getDynamicUniforms()
.writeTransform(
RenderSystem.getModelViewMatrix(),
new Vector4f(1.0F, 1.0F, 1.0F, 1.0F),
RenderSystem.getModelOffset(),
RenderSystem.getTextureMatrix(),
RenderSystem.getShaderLineWidth()
);
try {
GpuBuffer gpuBuffer = renderPipeline.getVertexFormat().uploadImmediateVertexBuffer(meshData.vertexBuffer());
GpuBuffer gpuBuffer = this.renderPipeline.getVertexFormat().uploadImmediateVertexBuffer(meshData.vertexBuffer());
GpuBuffer gpuBuffer2;
VertexFormat.IndexType indexType;
if (meshData.indexBuffer() == null) {
@@ -72,33 +77,40 @@ public class BaritoneRenderType extends RenderType {
gpuBuffer2 = autoStorageIndexBuffer.getBuffer(meshData.drawState().indexCount());
indexType = autoStorageIndexBuffer.type();
} else {
gpuBuffer2 = renderPipeline.getVertexFormat().uploadImmediateIndexBuffer(meshData.indexBuffer());
gpuBuffer2 = this.renderPipeline.getVertexFormat().uploadImmediateIndexBuffer(meshData.indexBuffer());
indexType = meshData.drawState().indexType();
}
RenderTarget renderTarget = getRenderTarget();
RenderTarget renderTarget = RenderStateShard.MAIN_TARGET.getRenderTarget();
GpuTextureView gpuTextureView = RenderSystem.outputColorTextureOverride != null
? RenderSystem.outputColorTextureOverride
: renderTarget.getColorTextureView();
GpuTextureView gpuTextureView2 = renderTarget.useDepth
? (RenderSystem.outputDepthTextureOverride != null ? RenderSystem.outputDepthTextureOverride : renderTarget.getDepthTextureView())
: null;
try (RenderPass renderPass = RenderSystem.getDevice().createCommandEncoder().createRenderPass(
renderTarget.getColorTexture(),
OptionalInt.empty(),
renderTarget.useDepth ? renderTarget.getDepthTexture() : null,
OptionalDouble.empty())
) {
renderPass.setPipeline(renderPipeline);
renderPass.setVertexBuffer(0, gpuBuffer);
if (RenderSystem.SCISSOR_STATE.isEnabled()) {
renderPass.enableScissor(RenderSystem.SCISSOR_STATE);
try (RenderPass renderPass = RenderSystem.getDevice()
.createCommandEncoder()
.createRenderPass(() -> "Immediate draw for " + this.getName(), gpuTextureView, OptionalInt.empty(), gpuTextureView2, OptionalDouble.empty())) {
renderPass.setPipeline(this.renderPipeline);
ScissorState scissorState = RenderSystem.getScissorStateForRenderTypeDraws();
if (scissorState.enabled()) {
renderPass.enableScissor(scissorState.x(), scissorState.y(), scissorState.width(), scissorState.height());
}
for(int i = 0; i < 12; ++i) {
GpuTexture gpuTexture = RenderSystem.getShaderTexture(i);
if (gpuTexture != null) {
renderPass.bindSampler("Sampler" + i, gpuTexture);
RenderSystem.bindDefaultUniforms(renderPass);
renderPass.setUniform("DynamicTransforms", gpuBufferSlice);
renderPass.setVertexBuffer(0, gpuBuffer);
for (int i = 0; i < 12; i++) {
GpuTextureView gpuTextureView3 = RenderSystem.getShaderTexture(i);
if (gpuTextureView3 != null) {
renderPass.bindSampler("Sampler" + i, gpuTextureView3);
}
}
renderPass.setIndexBuffer(gpuBuffer2, indexType);
renderPass.drawIndexed(0, meshData.drawState().indexCount());
renderPass.drawIndexed(0, 0, meshData.drawState().indexCount(), 1);
}
} catch (Throwable e) {
try {
@@ -113,9 +125,4 @@ public class BaritoneRenderType extends RenderType {
this.clearRenderState();
}
@Override
public RenderTarget getRenderTarget() {
return RenderStateShard.MAIN_TARGET.getRenderTarget();
}
}