diff --git a/src/api/java/baritone/api/IBaritoneProvider.java b/src/api/java/baritone/api/IBaritoneProvider.java index e4f2ffc30..7fa97d168 100644 --- a/src/api/java/baritone/api/IBaritoneProvider.java +++ b/src/api/java/baritone/api/IBaritoneProvider.java @@ -21,10 +21,9 @@ import baritone.api.cache.IWorldScanner; import baritone.api.command.ICommand; import baritone.api.command.ICommandSystem; import baritone.api.schematic.ISchematicSystem; -import net.minecraft.client.entity.player.ClientPlayerEntity; - import java.util.List; import java.util.Objects; +import net.minecraft.client.player.LocalPlayer; /** * Provides the present {@link IBaritone} instances, as well as non-baritone instance related APIs. @@ -47,19 +46,19 @@ public interface IBaritoneProvider { * returned by {@link #getPrimaryBaritone()}. * * @return All active {@link IBaritone} instances. - * @see #getBaritoneForPlayer(ClientPlayerEntity) + * @see #getBaritoneForPlayer(LocalPlayer) */ List getAllBaritones(); /** - * Provides the {@link IBaritone} instance for a given {@link ClientPlayerEntity}. This will likely be + * Provides the {@link IBaritone} instance for a given {@link LocalPlayer}. This will likely be * replaced with or be overloaded in addition to {@code #getBaritoneForUser(IBaritoneUser)} when * {@code bot-system} is merged into {@code master}. * * @param player The player * @return The {@link IBaritone} instance. */ - default IBaritone getBaritoneForPlayer(ClientPlayerEntity player) { + default IBaritone getBaritoneForPlayer(LocalPlayer player) { for (IBaritone baritone : getAllBaritones()) { if (Objects.equals(player, baritone.getPlayerContext().player())) { return baritone; diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 3bf966041..89b03b535 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -19,18 +19,16 @@ package baritone.api; import baritone.api.utils.SettingsUtil; import baritone.api.utils.TypeUtils; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.math.vector.Vector3i; -import net.minecraft.util.text.ITextComponent; - +import net.minecraft.core.Vec3i; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; import java.awt.*; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.util.List; import java.util.*; import java.util.function.Consumer; @@ -824,7 +822,7 @@ public final class Settings { /** * How far to move before repeating the build. 0 to disable repeating on a certain axis, 0,0,0 to disable entirely */ - public final Setting buildRepeat = new Setting<>(new Vector3i(0, 0, 0)); + public final Setting buildRepeat = new Setting<>(new Vec3i(0, 0, 0)); /** * How many times to buildrepeat. -1 for infinite. @@ -1023,7 +1021,7 @@ public final class Settings { * via {@link Consumer#andThen(Consumer)} or it can completely be overriden via setting * {@link Setting#value}; */ - public final Setting> logger = new Setting<>(Minecraft.getInstance().ingameGUI.getChatGUI()::printChatMessage); + public final Setting> logger = new Setting<>(Minecraft.getInstance().gui.getChat()::addMessage); /** * Print out ALL command exceptions as a stack trace to stdout, even simple syntax errors diff --git a/src/api/java/baritone/api/cache/IBlockTypeAccess.java b/src/api/java/baritone/api/cache/IBlockTypeAccess.java index 8225add14..fd6a258bf 100644 --- a/src/api/java/baritone/api/cache/IBlockTypeAccess.java +++ b/src/api/java/baritone/api/cache/IBlockTypeAccess.java @@ -17,8 +17,8 @@ package baritone.api.cache; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; /** * @author Brady diff --git a/src/api/java/baritone/api/cache/ICachedWorld.java b/src/api/java/baritone/api/cache/ICachedWorld.java index e681ce51c..6e74fa55a 100644 --- a/src/api/java/baritone/api/cache/ICachedWorld.java +++ b/src/api/java/baritone/api/cache/ICachedWorld.java @@ -17,10 +17,9 @@ package baritone.api.cache; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.chunk.Chunk; - import java.util.ArrayList; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.chunk.LevelChunk; /** * @author Brady @@ -44,7 +43,7 @@ public interface ICachedWorld { * * @param chunk The chunk to pack and store */ - void queueForPacking(Chunk chunk); + void queueForPacking(LevelChunk chunk); /** * Returns whether or not the block at the specified X and Z coordinates diff --git a/src/api/java/baritone/api/cache/IContainerMemory.java b/src/api/java/baritone/api/cache/IContainerMemory.java index 5c19d43b9..b818fb6d8 100644 --- a/src/api/java/baritone/api/cache/IContainerMemory.java +++ b/src/api/java/baritone/api/cache/IContainerMemory.java @@ -17,9 +17,8 @@ package baritone.api.cache; -import net.minecraft.util.math.BlockPos; - import java.util.Map; +import net.minecraft.core.BlockPos; /** * @author Brady diff --git a/src/api/java/baritone/api/cache/IRememberedInventory.java b/src/api/java/baritone/api/cache/IRememberedInventory.java index a7890fe3a..31c34788f 100644 --- a/src/api/java/baritone/api/cache/IRememberedInventory.java +++ b/src/api/java/baritone/api/cache/IRememberedInventory.java @@ -17,9 +17,8 @@ package baritone.api.cache; -import net.minecraft.item.ItemStack; - import java.util.List; +import net.minecraft.world.item.ItemStack; /** * @author Brady diff --git a/src/api/java/baritone/api/cache/IWorldScanner.java b/src/api/java/baritone/api/cache/IWorldScanner.java index bc3064608..ea27dd161 100644 --- a/src/api/java/baritone/api/cache/IWorldScanner.java +++ b/src/api/java/baritone/api/cache/IWorldScanner.java @@ -19,11 +19,10 @@ package baritone.api.cache; import baritone.api.utils.BlockOptionalMetaLookup; import baritone.api.utils.IPlayerContext; -import net.minecraft.block.Block; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; - import java.util.List; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.Block; /** * @author Brady diff --git a/src/api/java/baritone/api/command/argument/IArgConsumer.java b/src/api/java/baritone/api/command/argument/IArgConsumer.java index 4435b36e1..894e4a71b 100644 --- a/src/api/java/baritone/api/command/argument/IArgConsumer.java +++ b/src/api/java/baritone/api/command/argument/IArgConsumer.java @@ -27,11 +27,10 @@ import baritone.api.command.exception.CommandInvalidTypeException; import baritone.api.command.exception.CommandNotEnoughArgumentsException; import baritone.api.command.exception.CommandTooManyArgumentsException; import baritone.api.utils.Helper; -import net.minecraft.util.Direction; - import java.util.Deque; import java.util.LinkedList; import java.util.stream.Stream; +import net.minecraft.core.Direction; /** * The {@link IArgConsumer} is how {@link ICommand}s read the arguments passed to them. This class has many benefits: diff --git a/src/api/java/baritone/api/command/argument/ICommandArgument.java b/src/api/java/baritone/api/command/argument/ICommandArgument.java index 341e9d1f6..1d6336866 100644 --- a/src/api/java/baritone/api/command/argument/ICommandArgument.java +++ b/src/api/java/baritone/api/command/argument/ICommandArgument.java @@ -19,7 +19,7 @@ package baritone.api.command.argument; import baritone.api.command.argparser.IArgParser; import baritone.api.command.exception.CommandInvalidTypeException; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; /** * A {@link ICommandArgument} is an immutable object representing one command argument. It contains data on the index of diff --git a/src/api/java/baritone/api/command/datatypes/BlockById.java b/src/api/java/baritone/api/command/datatypes/BlockById.java index 6293f825c..5e63fcf25 100644 --- a/src/api/java/baritone/api/command/datatypes/BlockById.java +++ b/src/api/java/baritone/api/command/datatypes/BlockById.java @@ -19,11 +19,10 @@ package baritone.api.command.datatypes; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import net.minecraft.block.Block; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; - import java.util.stream.Stream; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; public enum BlockById implements IDatatypeFor { INSTANCE; diff --git a/src/api/java/baritone/api/command/datatypes/EntityClassById.java b/src/api/java/baritone/api/command/datatypes/EntityClassById.java index c6f264c2b..aff7a2d94 100644 --- a/src/api/java/baritone/api/command/datatypes/EntityClassById.java +++ b/src/api/java/baritone/api/command/datatypes/EntityClassById.java @@ -19,11 +19,10 @@ package baritone.api.command.datatypes; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import net.minecraft.entity.EntityType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; - import java.util.stream.Stream; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; public enum EntityClassById implements IDatatypeFor { INSTANCE; diff --git a/src/api/java/baritone/api/command/datatypes/ForDirection.java b/src/api/java/baritone/api/command/datatypes/ForDirection.java index 2d75eb882..cbfbc2243 100644 --- a/src/api/java/baritone/api/command/datatypes/ForDirection.java +++ b/src/api/java/baritone/api/command/datatypes/ForDirection.java @@ -19,10 +19,9 @@ package baritone.api.command.datatypes; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import net.minecraft.util.Direction; - import java.util.Locale; import java.util.stream.Stream; +import net.minecraft.core.Direction; public enum ForDirection implements IDatatypeFor { INSTANCE; @@ -36,7 +35,7 @@ public enum ForDirection implements IDatatypeFor { public Stream tabComplete(IDatatypeContext ctx) throws CommandException { return new TabCompleteHelper() .append(Stream.of(Direction.values()) - .map(Direction::getName2).map(String::toLowerCase)) + .map(Direction::getName).map(String::toLowerCase)) .filterPrefix(ctx.getConsumer().getString()) .stream(); } diff --git a/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java b/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java index c4095ae40..b0d72bed1 100644 --- a/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java +++ b/src/api/java/baritone/api/command/datatypes/NearbyPlayer.java @@ -20,21 +20,20 @@ package baritone.api.command.datatypes; import baritone.api.IBaritone; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.text.ITextComponent; - import java.util.List; import java.util.stream.Stream; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.player.Player; /** * An {@link IDatatype} used to resolve nearby players, those within * render distance of the target {@link IBaritone} instance. */ -public enum NearbyPlayer implements IDatatypeFor { +public enum NearbyPlayer implements IDatatypeFor { INSTANCE; @Override - public PlayerEntity get(IDatatypeContext ctx) throws CommandException { + public Player get(IDatatypeContext ctx) throws CommandException { final String username = ctx.getConsumer().getString(); return getPlayers(ctx).stream() .filter(s -> s.getName().getString().equalsIgnoreCase(username)) @@ -44,13 +43,13 @@ public enum NearbyPlayer implements IDatatypeFor { @Override public Stream tabComplete(IDatatypeContext ctx) throws CommandException { return new TabCompleteHelper() - .append(getPlayers(ctx).stream().map(PlayerEntity::getName).map(ITextComponent::getString)) + .append(getPlayers(ctx).stream().map(Player::getName).map(Component::getString)) .filterPrefix(ctx.getConsumer().getString()) .sortAlphabetically() .stream(); } - private static List getPlayers(IDatatypeContext ctx) { - return ctx.getBaritone().getPlayerContext().world().getPlayers(); + private static List getPlayers(IDatatypeContext ctx) { + return ctx.getBaritone().getPlayerContext().world().players(); } } diff --git a/src/api/java/baritone/api/command/datatypes/RelativeFile.java b/src/api/java/baritone/api/command/datatypes/RelativeFile.java index 2c7adf98f..f2de7308c 100644 --- a/src/api/java/baritone/api/command/datatypes/RelativeFile.java +++ b/src/api/java/baritone/api/command/datatypes/RelativeFile.java @@ -94,7 +94,7 @@ public enum RelativeFile implements IDatatypePost { } public static File gameDir() { - File gameDir = HELPER.mc.gameDir.getAbsoluteFile(); + File gameDir = HELPER.mc.gameDirectory.getAbsoluteFile(); if (gameDir.getName().equals(".")) { return gameDir.getParentFile(); } diff --git a/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java b/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java index ccc45cafa..d97635eb2 100644 --- a/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java +++ b/src/api/java/baritone/api/command/datatypes/RelativeGoalBlock.java @@ -21,9 +21,8 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.exception.CommandException; import baritone.api.pathing.goals.GoalBlock; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.math.MathHelper; - import java.util.stream.Stream; +import net.minecraft.util.Mth; public enum RelativeGoalBlock implements IDatatypePost { INSTANCE; @@ -36,9 +35,9 @@ public enum RelativeGoalBlock implements IDatatypePost { INSTANCE; @@ -36,8 +35,8 @@ public enum RelativeGoalXZ implements IDatatypePost { final IArgConsumer consumer = ctx.getConsumer(); return new GoalXZ( - MathHelper.floor(consumer.getDatatypePost(RelativeCoordinate.INSTANCE, (double) origin.x)), - MathHelper.floor(consumer.getDatatypePost(RelativeCoordinate.INSTANCE, (double) origin.z)) + Mth.floor(consumer.getDatatypePost(RelativeCoordinate.INSTANCE, (double) origin.x)), + Mth.floor(consumer.getDatatypePost(RelativeCoordinate.INSTANCE, (double) origin.z)) ); } diff --git a/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java b/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java index cd1a4c5d4..34c8c0018 100644 --- a/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java +++ b/src/api/java/baritone/api/command/datatypes/RelativeGoalYLevel.java @@ -21,9 +21,8 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.exception.CommandException; import baritone.api.pathing.goals.GoalYLevel; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.math.MathHelper; - import java.util.stream.Stream; +import net.minecraft.util.Mth; public enum RelativeGoalYLevel implements IDatatypePost { INSTANCE; @@ -35,7 +34,7 @@ public enum RelativeGoalYLevel implements IDatatypePost args) { HELPER.logDirect("An unhandled exception occurred. " + "The error is in your game's log, please report this at https://github.com/cabaletta/baritone/issues", - TextFormatting.RED); + ChatFormatting.RED); this.printStackTrace(); } diff --git a/src/api/java/baritone/api/command/exception/ICommandException.java b/src/api/java/baritone/api/command/exception/ICommandException.java index b521a2e6b..0a1529d69 100644 --- a/src/api/java/baritone/api/command/exception/ICommandException.java +++ b/src/api/java/baritone/api/command/exception/ICommandException.java @@ -19,9 +19,8 @@ package baritone.api.command.exception; import baritone.api.command.ICommand; import baritone.api.command.argument.ICommandArgument; -import net.minecraft.util.text.TextFormatting; - import java.util.List; +import net.minecraft.ChatFormatting; import static baritone.api.utils.Helper.HELPER; @@ -50,6 +49,6 @@ public interface ICommandException { * @param args The arguments the command was called with. */ default void handle(ICommand command, List args) { - HELPER.logDirect(this.getMessage(), TextFormatting.RED); + HELPER.logDirect(this.getMessage(), ChatFormatting.RED); } } diff --git a/src/api/java/baritone/api/command/helpers/Paginator.java b/src/api/java/baritone/api/command/helpers/Paginator.java index 8b4457653..e2100e95d 100644 --- a/src/api/java/baritone/api/command/helpers/Paginator.java +++ b/src/api/java/baritone/api/command/helpers/Paginator.java @@ -21,16 +21,15 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.exception.CommandException; import baritone.api.command.exception.CommandInvalidTypeException; import baritone.api.utils.Helper; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.event.ClickEvent; -import net.minecraft.util.text.event.HoverEvent; - import java.util.Arrays; import java.util.List; import java.util.function.Function; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.TextComponent; public class Paginator implements Helper { @@ -64,59 +63,59 @@ public class Paginator implements Helper { return this; } - public void display(Function transform, String commandPrefix) { + public void display(Function transform, String commandPrefix) { int offset = (page - 1) * pageSize; for (int i = offset; i < offset + pageSize; i++) { if (i < entries.size()) { logDirect(transform.apply(entries.get(i))); } else { - logDirect("--", TextFormatting.DARK_GRAY); + logDirect("--", ChatFormatting.DARK_GRAY); } } boolean hasPrevPage = commandPrefix != null && validPage(page - 1); boolean hasNextPage = commandPrefix != null && validPage(page + 1); - TextComponent prevPageComponent = new StringTextComponent("<<"); + BaseComponent prevPageComponent = new TextComponent("<<"); if (hasPrevPage) { prevPageComponent.setStyle(prevPageComponent.getStyle() - .setClickEvent(new ClickEvent( + .withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, String.format("%s %d", commandPrefix, page - 1) )) - .setHoverEvent(new HoverEvent( + .withHoverEvent(new HoverEvent( HoverEvent.Action.SHOW_TEXT, - new StringTextComponent("Click to view previous page") + new TextComponent("Click to view previous page") ))); } else { - prevPageComponent.setStyle(prevPageComponent.getStyle().setFormatting(TextFormatting.DARK_GRAY)); + prevPageComponent.setStyle(prevPageComponent.getStyle().withColor(ChatFormatting.DARK_GRAY)); } - TextComponent nextPageComponent = new StringTextComponent(">>"); + BaseComponent nextPageComponent = new TextComponent(">>"); if (hasNextPage) { nextPageComponent.setStyle(nextPageComponent.getStyle() - .setClickEvent(new ClickEvent( + .withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, String.format("%s %d", commandPrefix, page + 1) )) - .setHoverEvent(new HoverEvent( + .withHoverEvent(new HoverEvent( HoverEvent.Action.SHOW_TEXT, - new StringTextComponent("Click to view next page") + new TextComponent("Click to view next page") ))); } else { - nextPageComponent.setStyle(nextPageComponent.getStyle().setFormatting(TextFormatting.DARK_GRAY)); + nextPageComponent.setStyle(nextPageComponent.getStyle().withColor(ChatFormatting.DARK_GRAY)); } - TextComponent pagerComponent = new StringTextComponent(""); - pagerComponent.setStyle(pagerComponent.getStyle().setFormatting(TextFormatting.GRAY)); + BaseComponent pagerComponent = new TextComponent(""); + pagerComponent.setStyle(pagerComponent.getStyle().withColor(ChatFormatting.GRAY)); pagerComponent.append(prevPageComponent); - pagerComponent.appendString(" | "); + pagerComponent.append(" | "); pagerComponent.append(nextPageComponent); - pagerComponent.appendString(String.format(" %d/%d", page, getMaxPage())); + pagerComponent.append(String.format(" %d/%d", page, getMaxPage())); logDirect(pagerComponent); } - public void display(Function transform) { + public void display(Function transform) { display(transform, null); } - public static void paginate(IArgConsumer consumer, Paginator pagi, Runnable pre, Function transform, String commandPrefix) throws CommandException { + public static void paginate(IArgConsumer consumer, Paginator pagi, Runnable pre, Function transform, String commandPrefix) throws CommandException { int page = 1; consumer.requireMax(1); if (consumer.hasAny()) { @@ -139,47 +138,47 @@ public class Paginator implements Helper { pagi.display(transform, commandPrefix); } - public static void paginate(IArgConsumer consumer, List elems, Runnable pre, Function transform, String commandPrefix) throws CommandException { + public static void paginate(IArgConsumer consumer, List elems, Runnable pre, Function transform, String commandPrefix) throws CommandException { paginate(consumer, new Paginator<>(elems), pre, transform, commandPrefix); } - public static void paginate(IArgConsumer consumer, T[] elems, Runnable pre, Function transform, String commandPrefix) throws CommandException { + public static void paginate(IArgConsumer consumer, T[] elems, Runnable pre, Function transform, String commandPrefix) throws CommandException { paginate(consumer, Arrays.asList(elems), pre, transform, commandPrefix); } - public static void paginate(IArgConsumer consumer, Paginator pagi, Function transform, String commandPrefix) throws CommandException { + public static void paginate(IArgConsumer consumer, Paginator pagi, Function transform, String commandPrefix) throws CommandException { paginate(consumer, pagi, null, transform, commandPrefix); } - public static void paginate(IArgConsumer consumer, List elems, Function transform, String commandPrefix) throws CommandException { + public static void paginate(IArgConsumer consumer, List elems, Function transform, String commandPrefix) throws CommandException { paginate(consumer, new Paginator<>(elems), null, transform, commandPrefix); } - public static void paginate(IArgConsumer consumer, T[] elems, Function transform, String commandPrefix) throws CommandException { + public static void paginate(IArgConsumer consumer, T[] elems, Function transform, String commandPrefix) throws CommandException { paginate(consumer, Arrays.asList(elems), null, transform, commandPrefix); } - public static void paginate(IArgConsumer consumer, Paginator pagi, Runnable pre, Function transform) throws CommandException { + public static void paginate(IArgConsumer consumer, Paginator pagi, Runnable pre, Function transform) throws CommandException { paginate(consumer, pagi, pre, transform, null); } - public static void paginate(IArgConsumer consumer, List elems, Runnable pre, Function transform) throws CommandException { + public static void paginate(IArgConsumer consumer, List elems, Runnable pre, Function transform) throws CommandException { paginate(consumer, new Paginator<>(elems), pre, transform, null); } - public static void paginate(IArgConsumer consumer, T[] elems, Runnable pre, Function transform) throws CommandException { + public static void paginate(IArgConsumer consumer, T[] elems, Runnable pre, Function transform) throws CommandException { paginate(consumer, Arrays.asList(elems), pre, transform, null); } - public static void paginate(IArgConsumer consumer, Paginator pagi, Function transform) throws CommandException { + public static void paginate(IArgConsumer consumer, Paginator pagi, Function transform) throws CommandException { paginate(consumer, pagi, null, transform, null); } - public static void paginate(IArgConsumer consumer, List elems, Function transform) throws CommandException { + public static void paginate(IArgConsumer consumer, List elems, Function transform) throws CommandException { paginate(consumer, new Paginator<>(elems), null, transform, null); } - public static void paginate(IArgConsumer consumer, T[] elems, Function transform) throws CommandException { + public static void paginate(IArgConsumer consumer, T[] elems, Function transform) throws CommandException { paginate(consumer, Arrays.asList(elems), null, transform, null); } } diff --git a/src/api/java/baritone/api/command/helpers/TabCompleteHelper.java b/src/api/java/baritone/api/command/helpers/TabCompleteHelper.java index 54ae9e8c4..ccbdfa68e 100644 --- a/src/api/java/baritone/api/command/helpers/TabCompleteHelper.java +++ b/src/api/java/baritone/api/command/helpers/TabCompleteHelper.java @@ -23,14 +23,13 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.manager.ICommandManager; import baritone.api.event.events.TabCompleteEvent; import baritone.api.utils.SettingsUtil; -import net.minecraft.util.ResourceLocation; - import java.util.Comparator; import java.util.List; import java.util.Locale; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Stream; +import net.minecraft.resources.ResourceLocation; /** * The {@link TabCompleteHelper} is a single-use object that helps you handle tab completion. It includes helper diff --git a/src/api/java/baritone/api/event/events/BlockInteractEvent.java b/src/api/java/baritone/api/event/events/BlockInteractEvent.java index 6508d7397..62f7a0d02 100644 --- a/src/api/java/baritone/api/event/events/BlockInteractEvent.java +++ b/src/api/java/baritone/api/event/events/BlockInteractEvent.java @@ -17,7 +17,7 @@ package baritone.api.event.events; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; /** * Called when the local player interacts with a block, can be either {@link Type#START_BREAK} or {@link Type#USE}. diff --git a/src/api/java/baritone/api/event/events/PacketEvent.java b/src/api/java/baritone/api/event/events/PacketEvent.java index 43c61a1a9..b605f4fce 100644 --- a/src/api/java/baritone/api/event/events/PacketEvent.java +++ b/src/api/java/baritone/api/event/events/PacketEvent.java @@ -18,8 +18,8 @@ package baritone.api.event.events; import baritone.api.event.events.type.EventState; -import net.minecraft.network.IPacket; -import net.minecraft.network.NetworkManager; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.Packet; /** * @author Brady @@ -27,19 +27,19 @@ import net.minecraft.network.NetworkManager; */ public final class PacketEvent { - private final NetworkManager networkManager; + private final Connection networkManager; private final EventState state; - private final IPacket packet; + private final Packet packet; - public PacketEvent(NetworkManager networkManager, EventState state, IPacket packet) { + public PacketEvent(Connection networkManager, EventState state, Packet packet) { this.networkManager = networkManager; this.state = state; this.packet = packet; } - public final NetworkManager getNetworkManager() { + public final Connection getNetworkManager() { return this.networkManager; } @@ -47,12 +47,12 @@ public final class PacketEvent { return this.state; } - public final IPacket getPacket() { + public final Packet getPacket() { return this.packet; } @SuppressWarnings("unchecked") - public final > T cast() { + public final > T cast() { return (T) this.packet; } } diff --git a/src/api/java/baritone/api/event/events/RenderEvent.java b/src/api/java/baritone/api/event/events/RenderEvent.java index 0bd035c25..cb7a0414c 100644 --- a/src/api/java/baritone/api/event/events/RenderEvent.java +++ b/src/api/java/baritone/api/event/events/RenderEvent.java @@ -17,8 +17,8 @@ package baritone.api.event.events; -import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.util.math.vector.Matrix4f; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Matrix4f; /** * @author Brady @@ -32,9 +32,9 @@ public final class RenderEvent { private final float partialTicks; private final Matrix4f projectionMatrix; - private final MatrixStack modelViewStack; + private final PoseStack modelViewStack; - public RenderEvent(float partialTicks, MatrixStack modelViewStack, Matrix4f projectionMatrix) { + public RenderEvent(float partialTicks, PoseStack modelViewStack, Matrix4f projectionMatrix) { this.partialTicks = partialTicks; this.modelViewStack = modelViewStack; this.projectionMatrix = projectionMatrix; @@ -47,7 +47,7 @@ public final class RenderEvent { return this.partialTicks; } - public MatrixStack getModelViewStack() { + public PoseStack getModelViewStack() { return this.modelViewStack; } diff --git a/src/api/java/baritone/api/event/events/RotationMoveEvent.java b/src/api/java/baritone/api/event/events/RotationMoveEvent.java index 24793ce89..bae83c0fa 100644 --- a/src/api/java/baritone/api/event/events/RotationMoveEvent.java +++ b/src/api/java/baritone/api/event/events/RotationMoveEvent.java @@ -17,9 +17,9 @@ package baritone.api.event.events; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.phys.Vec3; /** * @author Brady @@ -70,7 +70,7 @@ public final class RotationMoveEvent { /** * Called when the player's motion is updated. * - * @see Entity#moveRelative(float, Vector3d) + * @see Entity#moveRelative(float, Vec3) */ MOTION_UPDATE, diff --git a/src/api/java/baritone/api/event/events/WorldEvent.java b/src/api/java/baritone/api/event/events/WorldEvent.java index 39cd4a32c..f40042e46 100644 --- a/src/api/java/baritone/api/event/events/WorldEvent.java +++ b/src/api/java/baritone/api/event/events/WorldEvent.java @@ -18,7 +18,7 @@ package baritone.api.event.events; import baritone.api.event.events.type.EventState; -import net.minecraft.client.world.ClientWorld; +import net.minecraft.client.multiplayer.ClientLevel; /** * @author Brady @@ -29,14 +29,14 @@ public final class WorldEvent { /** * The new world that is being loaded. {@code null} if being unloaded. */ - private final ClientWorld world; + private final ClientLevel world; /** * The state of the event */ private final EventState state; - public WorldEvent(ClientWorld world, EventState state) { + public WorldEvent(ClientLevel world, EventState state) { this.world = world; this.state = state; } @@ -44,7 +44,7 @@ public final class WorldEvent { /** * @return The new world that is being loaded. {@code null} if being unloaded. */ - public final ClientWorld getWorld() { + public final ClientLevel getWorld() { return this.world; } diff --git a/src/api/java/baritone/api/event/listener/IGameEventListener.java b/src/api/java/baritone/api/event/listener/IGameEventListener.java index 0785b170b..a34ea4ef3 100644 --- a/src/api/java/baritone/api/event/listener/IGameEventListener.java +++ b/src/api/java/baritone/api/event/listener/IGameEventListener.java @@ -19,12 +19,12 @@ package baritone.api.event.listener; import baritone.api.event.events.*; import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.gui.screen.DeathScreen; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.network.IPacket; -import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.client.gui.screens.DeathScreen; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.protocol.Packet; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.phys.Vec3; /** * @author Brady @@ -36,7 +36,7 @@ public interface IGameEventListener { * Run once per game tick before screen input is handled. * * @param event The event - * @see Minecraft#runTick() + * @see Minecraft#tick() */ void onTick(TickEvent event); @@ -44,7 +44,7 @@ public interface IGameEventListener { * Run once per game tick from before and after the player rotation is sent to the server. * * @param event The event - * @see ClientPlayerEntity#tick() + * @see LocalPlayer#tick() */ void onPlayerUpdate(PlayerUpdateEvent event); @@ -52,7 +52,7 @@ public interface IGameEventListener { * Runs whenever the client player sends a message to the server. * * @param event The event - * @see ClientPlayerEntity#sendChatMessage(String) + * @see LocalPlayer#chat(String) */ void onSendChatMessage(ChatEvent event); @@ -81,7 +81,7 @@ public interface IGameEventListener { * Runs before and after whenever a new world is loaded * * @param event The event - * @see Minecraft#loadWorld(ClientWorld) + * @see Minecraft#setLevel(ClientLevel) */ void onWorldEvent(WorldEvent event); @@ -89,7 +89,7 @@ public interface IGameEventListener { * Runs before a outbound packet is sent * * @param event The event - * @see IPacket + * @see Packet */ void onSendPacket(PacketEvent event); @@ -97,7 +97,7 @@ public interface IGameEventListener { * Runs before an inbound packet is processed * * @param event The event - * @see IPacket + * @see Packet */ void onReceivePacket(PacketEvent event); @@ -106,15 +106,15 @@ public interface IGameEventListener { * and before and after the player jumps. * * @param event The event - * @see Entity#moveRelative(float, Vector3d) + * @see Entity#moveRelative(float, Vec3) */ void onPlayerRotationMove(RotationMoveEvent event); /** - * Called whenever the sprint keybind state is checked in {@link ClientPlayerEntity#livingTick} + * Called whenever the sprint keybind state is checked in {@link LocalPlayer#aiStep} * * @param event The event - * @see ClientPlayerEntity#livingTick() + * @see LocalPlayer#aiStep() */ void onPlayerSprintState(SprintStateEvent event); diff --git a/src/api/java/baritone/api/pathing/goals/Goal.java b/src/api/java/baritone/api/pathing/goals/Goal.java index acee68db8..c7d2c8183 100644 --- a/src/api/java/baritone/api/pathing/goals/Goal.java +++ b/src/api/java/baritone/api/pathing/goals/Goal.java @@ -17,7 +17,7 @@ package baritone.api.pathing.goals; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; /** * An abstract Goal for pathing, can be anything from a specific block to just a Y coordinate. diff --git a/src/api/java/baritone/api/pathing/goals/GoalBlock.java b/src/api/java/baritone/api/pathing/goals/GoalBlock.java index c85e5cadd..5ba728bb5 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalBlock.java +++ b/src/api/java/baritone/api/pathing/goals/GoalBlock.java @@ -19,7 +19,7 @@ package baritone.api.pathing.goals; import baritone.api.utils.SettingsUtil; import baritone.api.utils.interfaces.IGoalRenderPos; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; /** * A specific BlockPos goal diff --git a/src/api/java/baritone/api/pathing/goals/GoalGetToBlock.java b/src/api/java/baritone/api/pathing/goals/GoalGetToBlock.java index 8d6fdcb30..8d15e4bc9 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalGetToBlock.java +++ b/src/api/java/baritone/api/pathing/goals/GoalGetToBlock.java @@ -19,7 +19,7 @@ package baritone.api.pathing.goals; import baritone.api.utils.SettingsUtil; import baritone.api.utils.interfaces.IGoalRenderPos; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; /** diff --git a/src/api/java/baritone/api/pathing/goals/GoalNear.java b/src/api/java/baritone/api/pathing/goals/GoalNear.java index 73d64ed9f..eccc27b06 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalNear.java +++ b/src/api/java/baritone/api/pathing/goals/GoalNear.java @@ -19,7 +19,7 @@ package baritone.api.pathing.goals; import baritone.api.utils.SettingsUtil; import baritone.api.utils.interfaces.IGoalRenderPos; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; public class GoalNear implements Goal, IGoalRenderPos { diff --git a/src/api/java/baritone/api/pathing/goals/GoalRunAway.java b/src/api/java/baritone/api/pathing/goals/GoalRunAway.java index 287e3e9ed..8da1b2c56 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalRunAway.java +++ b/src/api/java/baritone/api/pathing/goals/GoalRunAway.java @@ -18,9 +18,8 @@ package baritone.api.pathing.goals; import baritone.api.utils.SettingsUtil; -import net.minecraft.util.math.BlockPos; - import java.util.Arrays; +import net.minecraft.core.BlockPos; /** * Useful for automated combat (retreating specifically) diff --git a/src/api/java/baritone/api/pathing/goals/GoalStrictDirection.java b/src/api/java/baritone/api/pathing/goals/GoalStrictDirection.java index 1f8e837a5..37452f21f 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalStrictDirection.java +++ b/src/api/java/baritone/api/pathing/goals/GoalStrictDirection.java @@ -18,8 +18,8 @@ package baritone.api.pathing.goals; import baritone.api.utils.SettingsUtil; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; /** * Dig a tunnel in a certain direction, but if you have to deviate from the path, go back to where you started @@ -36,8 +36,8 @@ public class GoalStrictDirection implements Goal { x = origin.getX(); y = origin.getY(); z = origin.getZ(); - dx = direction.getXOffset(); - dz = direction.getZOffset(); + dx = direction.getStepX(); + dz = direction.getStepZ(); if (dx == 0 && dz == 0) { throw new IllegalArgumentException(direction + ""); } diff --git a/src/api/java/baritone/api/pathing/goals/GoalTwoBlocks.java b/src/api/java/baritone/api/pathing/goals/GoalTwoBlocks.java index 27be981e4..1b7213471 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalTwoBlocks.java +++ b/src/api/java/baritone/api/pathing/goals/GoalTwoBlocks.java @@ -19,7 +19,7 @@ package baritone.api.pathing.goals; import baritone.api.utils.SettingsUtil; import baritone.api.utils.interfaces.IGoalRenderPos; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; /** * Useful if the goal is just to mine a block. This goal will be satisfied if the specified diff --git a/src/api/java/baritone/api/pathing/goals/GoalXZ.java b/src/api/java/baritone/api/pathing/goals/GoalXZ.java index d658cbf35..f70f6c4f7 100644 --- a/src/api/java/baritone/api/pathing/goals/GoalXZ.java +++ b/src/api/java/baritone/api/pathing/goals/GoalXZ.java @@ -20,8 +20,8 @@ package baritone.api.pathing.goals; import baritone.api.BaritoneAPI; import baritone.api.utils.BetterBlockPos; import baritone.api.utils.SettingsUtil; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.util.Mth; +import net.minecraft.world.phys.Vec3; /** * Useful for long-range goals that don't have a specific Y level. @@ -94,11 +94,11 @@ public class GoalXZ implements Goal { return (diagonal + straight) * BaritoneAPI.getSettings().costHeuristic.value; // big TODO tune } - public static GoalXZ fromDirection(Vector3d origin, float yaw, double distance) { + public static GoalXZ fromDirection(Vec3 origin, float yaw, double distance) { float theta = (float) Math.toRadians(yaw); - double x = origin.x - MathHelper.sin(theta) * distance; - double z = origin.z + MathHelper.cos(theta) * distance; - return new GoalXZ(MathHelper.floor(x), MathHelper.floor(z)); + double x = origin.x - Mth.sin(theta) * distance; + double z = origin.z + Mth.cos(theta) * distance; + return new GoalXZ(Mth.floor(x), Mth.floor(z)); } public int getX() { diff --git a/src/api/java/baritone/api/pathing/movement/IMovement.java b/src/api/java/baritone/api/pathing/movement/IMovement.java index dae8668d5..5136ccc3f 100644 --- a/src/api/java/baritone/api/pathing/movement/IMovement.java +++ b/src/api/java/baritone/api/pathing/movement/IMovement.java @@ -18,7 +18,7 @@ package baritone.api.pathing.movement; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; /** * @author Brady diff --git a/src/api/java/baritone/api/process/IBuilderProcess.java b/src/api/java/baritone/api/process/IBuilderProcess.java index 67255d7e8..bf49307af 100644 --- a/src/api/java/baritone/api/process/IBuilderProcess.java +++ b/src/api/java/baritone/api/process/IBuilderProcess.java @@ -18,11 +18,10 @@ package baritone.api.process; import baritone.api.schematic.ISchematic; -import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3i; - +import net.minecraft.core.BlockPos; +import net.minecraft.core.Vec3i; +import net.minecraft.world.level.block.state.BlockState; import java.io.File; import java.util.List; @@ -39,7 +38,7 @@ public interface IBuilderProcess extends IBaritoneProcess { * @param schematic The object representation of the schematic * @param origin The origin position of the schematic being built */ - void build(String name, ISchematic schematic, Vector3i origin); + void build(String name, ISchematic schematic, Vec3i origin); /** * Requests a build for the specified schematic, labeled as specified, with the specified origin. @@ -49,10 +48,10 @@ public interface IBuilderProcess extends IBaritoneProcess { * @param origin The origin position of the schematic being built * @return Whether or not the schematic was able to load from file */ - boolean build(String name, File schematic, Vector3i origin); + boolean build(String name, File schematic, Vec3i origin); default boolean build(String schematicFile, BlockPos origin) { - File file = new File(new File(Minecraft.getInstance().gameDir, "schematics"), schematicFile); + File file = new File(new File(Minecraft.getInstance().gameDirectory, "schematics"), schematicFile); return build(schematicFile, file, origin); } diff --git a/src/api/java/baritone/api/process/IFarmProcess.java b/src/api/java/baritone/api/process/IFarmProcess.java index 224307afa..0c07567de 100644 --- a/src/api/java/baritone/api/process/IFarmProcess.java +++ b/src/api/java/baritone/api/process/IFarmProcess.java @@ -17,7 +17,7 @@ package baritone.api.process; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; public interface IFarmProcess extends IBaritoneProcess { diff --git a/src/api/java/baritone/api/process/IFollowProcess.java b/src/api/java/baritone/api/process/IFollowProcess.java index ef869da40..6f7f0a239 100644 --- a/src/api/java/baritone/api/process/IFollowProcess.java +++ b/src/api/java/baritone/api/process/IFollowProcess.java @@ -17,10 +17,9 @@ package baritone.api.process; -import net.minecraft.entity.Entity; - import java.util.List; import java.util.function.Predicate; +import net.minecraft.world.entity.Entity; /** * @author Brady diff --git a/src/api/java/baritone/api/process/IGetToBlockProcess.java b/src/api/java/baritone/api/process/IGetToBlockProcess.java index f58efbd35..8f3264dc3 100644 --- a/src/api/java/baritone/api/process/IGetToBlockProcess.java +++ b/src/api/java/baritone/api/process/IGetToBlockProcess.java @@ -18,7 +18,7 @@ package baritone.api.process; import baritone.api.utils.BlockOptionalMeta; -import net.minecraft.block.Block; +import net.minecraft.world.level.block.Block; /** * but it rescans the world every once in a while so it doesn't get fooled by its cache diff --git a/src/api/java/baritone/api/process/IMineProcess.java b/src/api/java/baritone/api/process/IMineProcess.java index 9cd76a09a..a63eb00a2 100644 --- a/src/api/java/baritone/api/process/IMineProcess.java +++ b/src/api/java/baritone/api/process/IMineProcess.java @@ -19,9 +19,8 @@ package baritone.api.process; import baritone.api.utils.BlockOptionalMeta; import baritone.api.utils.BlockOptionalMetaLookup; -import net.minecraft.block.Block; - import java.util.stream.Stream; +import net.minecraft.world.level.block.Block; /** * @author Brady diff --git a/src/api/java/baritone/api/schematic/CompositeSchematic.java b/src/api/java/baritone/api/schematic/CompositeSchematic.java index 22df6a4ee..a7a98c3b6 100644 --- a/src/api/java/baritone/api/schematic/CompositeSchematic.java +++ b/src/api/java/baritone/api/schematic/CompositeSchematic.java @@ -17,10 +17,9 @@ package baritone.api.schematic; -import net.minecraft.block.BlockState; - import java.util.ArrayList; import java.util.List; +import net.minecraft.world.level.block.state.BlockState; public class CompositeSchematic extends AbstractSchematic { diff --git a/src/api/java/baritone/api/schematic/FillSchematic.java b/src/api/java/baritone/api/schematic/FillSchematic.java index e43ddb93c..886ef09ef 100644 --- a/src/api/java/baritone/api/schematic/FillSchematic.java +++ b/src/api/java/baritone/api/schematic/FillSchematic.java @@ -18,10 +18,9 @@ package baritone.api.schematic; import baritone.api.utils.BlockOptionalMeta; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; - import java.util.List; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; public class FillSchematic extends AbstractSchematic { @@ -45,7 +44,7 @@ public class FillSchematic extends AbstractSchematic { if (bom.matches(current)) { return current; } else if (current.getBlock() != Blocks.AIR) { - return Blocks.AIR.getDefaultState(); + return Blocks.AIR.defaultBlockState(); } for (BlockState placeable : approxPlaceable) { if (bom.matches(placeable)) { diff --git a/src/api/java/baritone/api/schematic/ISchematic.java b/src/api/java/baritone/api/schematic/ISchematic.java index 88ce4cf7d..ae491a8fc 100644 --- a/src/api/java/baritone/api/schematic/ISchematic.java +++ b/src/api/java/baritone/api/schematic/ISchematic.java @@ -17,10 +17,9 @@ package baritone.api.schematic; -import net.minecraft.block.BlockState; -import net.minecraft.util.Direction; - import java.util.List; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.state.BlockState; /** * Basic representation of a schematic. Provides the dimensions and the desired state for a given position relative to diff --git a/src/api/java/baritone/api/schematic/IStaticSchematic.java b/src/api/java/baritone/api/schematic/IStaticSchematic.java index 0389d8bc7..a1f6b54f3 100644 --- a/src/api/java/baritone/api/schematic/IStaticSchematic.java +++ b/src/api/java/baritone/api/schematic/IStaticSchematic.java @@ -17,7 +17,7 @@ package baritone.api.schematic; -import net.minecraft.block.BlockState; +import net.minecraft.world.level.block.state.BlockState; /** * A static schematic is capable of providing the desired state at a given position without diff --git a/src/api/java/baritone/api/schematic/MaskSchematic.java b/src/api/java/baritone/api/schematic/MaskSchematic.java index 95629b7c9..ee56f3425 100644 --- a/src/api/java/baritone/api/schematic/MaskSchematic.java +++ b/src/api/java/baritone/api/schematic/MaskSchematic.java @@ -17,9 +17,8 @@ package baritone.api.schematic; -import net.minecraft.block.BlockState; - import java.util.List; +import net.minecraft.world.level.block.state.BlockState; public abstract class MaskSchematic extends AbstractSchematic { diff --git a/src/api/java/baritone/api/schematic/ReplaceSchematic.java b/src/api/java/baritone/api/schematic/ReplaceSchematic.java index 3e102cbba..62aefa68e 100644 --- a/src/api/java/baritone/api/schematic/ReplaceSchematic.java +++ b/src/api/java/baritone/api/schematic/ReplaceSchematic.java @@ -18,7 +18,7 @@ package baritone.api.schematic; import baritone.api.utils.BlockOptionalMetaLookup; -import net.minecraft.block.BlockState; +import net.minecraft.world.level.block.state.BlockState; public class ReplaceSchematic extends MaskSchematic { diff --git a/src/api/java/baritone/api/schematic/ShellSchematic.java b/src/api/java/baritone/api/schematic/ShellSchematic.java index e9808ad73..b61390bdd 100644 --- a/src/api/java/baritone/api/schematic/ShellSchematic.java +++ b/src/api/java/baritone/api/schematic/ShellSchematic.java @@ -17,7 +17,7 @@ package baritone.api.schematic; -import net.minecraft.block.BlockState; +import net.minecraft.world.level.block.state.BlockState; public class ShellSchematic extends MaskSchematic { diff --git a/src/api/java/baritone/api/schematic/WallsSchematic.java b/src/api/java/baritone/api/schematic/WallsSchematic.java index c48a08552..a292a7321 100644 --- a/src/api/java/baritone/api/schematic/WallsSchematic.java +++ b/src/api/java/baritone/api/schematic/WallsSchematic.java @@ -17,7 +17,7 @@ package baritone.api.schematic; -import net.minecraft.block.BlockState; +import net.minecraft.world.level.block.state.BlockState; public class WallsSchematic extends MaskSchematic { diff --git a/src/api/java/baritone/api/selection/ISelection.java b/src/api/java/baritone/api/selection/ISelection.java index a2f706337..a347cad9a 100644 --- a/src/api/java/baritone/api/selection/ISelection.java +++ b/src/api/java/baritone/api/selection/ISelection.java @@ -18,9 +18,9 @@ package baritone.api.selection; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.vector.Vector3i; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.world.phys.AABB; /** * A selection is an immutable object representing the current selection. The selection is commonly used for certain @@ -51,12 +51,12 @@ public interface ISelection { /** * @return The size of this ISelection. */ - Vector3i size(); + Vec3i size(); /** - * @return An {@link AxisAlignedBB} encompassing all blocks in this selection. + * @return An {@link AABB} encompassing all blocks in this selection. */ - AxisAlignedBB aabb(); + AABB aabb(); /** * Returns a new {@link ISelection} expanded in the specified direction by the specified number of blocks. diff --git a/src/api/java/baritone/api/selection/ISelectionManager.java b/src/api/java/baritone/api/selection/ISelectionManager.java index 4f3ba2fe3..85e67429e 100644 --- a/src/api/java/baritone/api/selection/ISelectionManager.java +++ b/src/api/java/baritone/api/selection/ISelectionManager.java @@ -18,7 +18,7 @@ package baritone.api.selection; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; /** * The selection manager handles setting Baritone's selections. You can set the selection here, as well as retrieving diff --git a/src/api/java/baritone/api/utils/BetterBlockPos.java b/src/api/java/baritone/api/utils/BetterBlockPos.java index 83e8b68a0..cee7649b0 100644 --- a/src/api/java/baritone/api/utils/BetterBlockPos.java +++ b/src/api/java/baritone/api/utils/BetterBlockPos.java @@ -17,12 +17,11 @@ package baritone.api.utils; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.vector.Vector3i; - import javax.annotation.Nonnull; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.util.Mth; /** * A better BlockPos that has fewer hash collisions (and slightly more performant offsets) @@ -49,7 +48,7 @@ public final class BetterBlockPos extends BlockPos { } public BetterBlockPos(double x, double y, double z) { - this(MathHelper.floor(x), MathHelper.floor(y), MathHelper.floor(z)); + this(Mth.floor(x), Mth.floor(y), Mth.floor(z)); } public BetterBlockPos(BlockPos pos) { @@ -116,7 +115,7 @@ public final class BetterBlockPos extends BlockPos { } @Override - public BetterBlockPos up() { + public BetterBlockPos above() { // this is unimaginably faster than blockpos.up // that literally calls // this.up(1) @@ -130,35 +129,35 @@ public final class BetterBlockPos extends BlockPos { } @Override - public BetterBlockPos up(int amt) { + public BetterBlockPos above(int amt) { // see comment in up() return amt == 0 ? this : new BetterBlockPos(x, y + amt, z); } @Override - public BetterBlockPos down() { + public BetterBlockPos below() { // see comment in up() return new BetterBlockPos(x, y - 1, z); } @Override - public BetterBlockPos down(int amt) { + public BetterBlockPos below(int amt) { // see comment in up() return amt == 0 ? this : new BetterBlockPos(x, y - amt, z); } @Override - public BetterBlockPos offset(Direction dir) { - Vector3i vec = dir.getDirectionVec(); + public BetterBlockPos relative(Direction dir) { + Vec3i vec = dir.getNormal(); return new BetterBlockPos(x + vec.getX(), y + vec.getY(), z + vec.getZ()); } @Override - public BetterBlockPos offset(Direction dir, int dist) { + public BetterBlockPos relative(Direction dir, int dist) { if (dist == 0) { return this; } - Vector3i vec = dir.getDirectionVec(); + Vec3i vec = dir.getNormal(); return new BetterBlockPos(x + vec.getX() * dist, y + vec.getY() * dist, z + vec.getZ() * dist); } diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java index efaf3c521..f01c88c24 100644 --- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java +++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java @@ -20,18 +20,29 @@ package baritone.api.utils; import baritone.api.utils.accessor.IItemStack; import com.google.common.collect.ImmutableSet; import io.netty.util.concurrent.ThreadPerTaskExecutor; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.core.BlockPos; import net.minecraft.loot.*; import net.minecraft.resources.*; -import net.minecraft.util.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackRepository; +import net.minecraft.server.packs.repository.ServerPacksSource; +import net.minecraft.server.packs.resources.ReloadableResourceManager; +import net.minecraft.server.packs.resources.SimpleReloadableResourceManager; import net.minecraft.util.Unit; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.server.ServerWorld; - +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.loot.BuiltInLootTables; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootTables; +import net.minecraft.world.level.storage.loot.PredicateManager; +import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.world.phys.Vec3; import javax.annotation.Nonnull; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -46,8 +57,8 @@ public final class BlockOptionalMeta { private final ImmutableSet stateHashes; private final ImmutableSet stackHashes; private static final Pattern pattern = Pattern.compile("^(.+?)(?::(\\d+))?$"); - private static LootTableManager manager; - private static LootPredicateManager predicate = new LootPredicateManager(); + private static LootTables manager; + private static PredicateManager predicate = new PredicateManager(); private static Map> drops = new HashMap<>(); public BlockOptionalMeta(@Nonnull Block block) { @@ -73,7 +84,7 @@ public final class BlockOptionalMeta { } private static Set getStates(@Nonnull Block block) { - return new HashSet<>(block.getStateContainer().getValidStates()); + return new HashSet<>(block.getStateDefinition().getPossibleStates()); } private static ImmutableSet getStateHashes(Set blockstates) { @@ -114,7 +125,7 @@ public final class BlockOptionalMeta { //noinspection ConstantConditions int hash = ((IItemStack) (Object) stack).getBaritoneHash(); - hash -= stack.getDamage(); + hash -= stack.getDamageValue(); return stackHashes.contains(hash); } @@ -132,16 +143,16 @@ public final class BlockOptionalMeta { return null; } - public static LootTableManager getManager() { + public static LootTables getManager() { if (manager == null) { - ResourcePackList rpl = new ResourcePackList(ResourcePackInfo::new, new ServerPackFinder()); - rpl.reloadPacksFromFinders(); - IResourcePack thePack = rpl.getAllPacks().iterator().next().getResourcePack(); - IReloadableResourceManager resourceManager = new SimpleReloadableResourceManager(ResourcePackType.SERVER_DATA); - manager = new LootTableManager(predicate); - resourceManager.addReloadListener(manager); + PackRepository rpl = new PackRepository(Pack::new, new ServerPacksSource()); + rpl.reload(); + PackResources thePack = rpl.getAvailablePacks().iterator().next().open(); + ReloadableResourceManager resourceManager = new SimpleReloadableResourceManager(PackType.SERVER_DATA); + manager = new LootTables(predicate); + resourceManager.registerReloadListener(manager); try { - resourceManager.reloadResourcesAndThen(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), Collections.singletonList(thePack), CompletableFuture.completedFuture(Unit.INSTANCE)).get(); + resourceManager.reload(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), Collections.singletonList(thePack), CompletableFuture.completedFuture(Unit.INSTANCE)).get(); } catch (Exception exception) { throw new RuntimeException(exception); } @@ -149,27 +160,27 @@ public final class BlockOptionalMeta { return manager; } - public static LootPredicateManager getPredicateManager() { + public static PredicateManager getPredicateManager() { return predicate; } private static synchronized List drops(Block b) { return drops.computeIfAbsent(b, block -> { ResourceLocation lootTableLocation = block.getLootTable(); - if (lootTableLocation == LootTables.EMPTY) { + if (lootTableLocation == BuiltInLootTables.EMPTY) { return Collections.emptyList(); } else { List items = new ArrayList<>(); // the other overload for generate doesnt work in forge because forge adds code that requires a non null world - getManager().getLootTableFromLocation(lootTableLocation).generate( - new LootContext.Builder((ServerWorld) null) + getManager().get(lootTableLocation).getRandomItems( + new LootContext.Builder((ServerLevel) null) .withRandom(new Random()) - .withParameter(LootParameters.field_237457_g_, Vector3d.copy(BlockPos.NULL_VECTOR)) - .withParameter(LootParameters.TOOL, ItemStack.EMPTY) - .withNullableParameter(LootParameters.BLOCK_ENTITY, null) - .withParameter(LootParameters.BLOCK_STATE, block.getDefaultState()) - .build(LootParameterSets.BLOCK), + .withParameter(LootContextParams.ORIGIN, Vec3.atLowerCornerOf(BlockPos.ZERO)) + .withParameter(LootContextParams.TOOL, ItemStack.EMPTY) + .withOptionalParameter(LootContextParams.BLOCK_ENTITY, null) + .withParameter(LootContextParams.BLOCK_STATE, block.defaultBlockState()) + .create(LootContextParamSets.BLOCK), stack -> items.add(stack.getItem()) ); return items; diff --git a/src/api/java/baritone/api/utils/BlockOptionalMetaLookup.java b/src/api/java/baritone/api/utils/BlockOptionalMetaLookup.java index b68432c2b..7c1070a84 100644 --- a/src/api/java/baritone/api/utils/BlockOptionalMetaLookup.java +++ b/src/api/java/baritone/api/utils/BlockOptionalMetaLookup.java @@ -17,13 +17,12 @@ package baritone.api.utils; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.item.ItemStack; - import java.util.Arrays; import java.util.List; import java.util.stream.Stream; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; public class BlockOptionalMetaLookup { diff --git a/src/api/java/baritone/api/utils/BlockUtils.java b/src/api/java/baritone/api/utils/BlockUtils.java index 35f626bd6..cc4204f8e 100644 --- a/src/api/java/baritone/api/utils/BlockUtils.java +++ b/src/api/java/baritone/api/utils/BlockUtils.java @@ -17,12 +17,11 @@ package baritone.api.utils; -import net.minecraft.block.Block; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; - import java.util.HashMap; import java.util.Map; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; public class BlockUtils { @@ -57,7 +56,7 @@ public class BlockUtils { if (resourceCache.containsKey(name)) { return null; // cached as null } - block = Registry.BLOCK.getOptional(ResourceLocation.tryCreate(name.contains(":") ? name : "minecraft:" + name)).orElse(null); + block = Registry.BLOCK.getOptional(ResourceLocation.tryParse(name.contains(":") ? name : "minecraft:" + name)).orElse(null); Map copy = new HashMap<>(resourceCache); // read only copy is safe, wont throw concurrentmodification copy.put(name, block); resourceCache = copy; diff --git a/src/api/java/baritone/api/utils/Helper.java b/src/api/java/baritone/api/utils/Helper.java index 09002bbf5..4f4f1351f 100755 --- a/src/api/java/baritone/api/utils/Helper.java +++ b/src/api/java/baritone/api/utils/Helper.java @@ -19,12 +19,11 @@ package baritone.api.utils; import baritone.api.BaritoneAPI; import baritone.api.utils.gui.BaritoneToast; +import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; - +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TextComponent; import java.util.Arrays; import java.util.Calendar; import java.util.stream.Stream; @@ -48,19 +47,19 @@ public interface Helper { */ Minecraft mc = Minecraft.getInstance(); - static ITextComponent getPrefix() { + static Component getPrefix() { // Inner text component final Calendar now = Calendar.getInstance(); final boolean xd = now.get(Calendar.MONTH) == Calendar.APRIL && now.get(Calendar.DAY_OF_MONTH) <= 3; - TextComponent baritone = new StringTextComponent(xd ? "Baritoe" : BaritoneAPI.getSettings().shortBaritonePrefix.value ? "B" : "Baritone"); - baritone.setStyle(baritone.getStyle().setFormatting(TextFormatting.LIGHT_PURPLE)); + BaseComponent baritone = new TextComponent(xd ? "Baritoe" : BaritoneAPI.getSettings().shortBaritonePrefix.value ? "B" : "Baritone"); + baritone.setStyle(baritone.getStyle().withColor(ChatFormatting.LIGHT_PURPLE)); // Outer brackets - TextComponent prefix = new StringTextComponent(""); - prefix.setStyle(baritone.getStyle().setFormatting(TextFormatting.DARK_PURPLE)); - prefix.appendString("["); + BaseComponent prefix = new TextComponent(""); + prefix.setStyle(baritone.getStyle().withColor(ChatFormatting.DARK_PURPLE)); + prefix.append("["); prefix.append(baritone); - prefix.appendString("]"); + prefix.append("]"); return prefix; } @@ -71,8 +70,8 @@ public interface Helper { * @param title The title to display in the popup * @param message The message to display in the popup */ - default void logToast(ITextComponent title, ITextComponent message) { - mc.execute(() -> BaritoneToast.addOrUpdate(mc.getToastGui(), title, message, BaritoneAPI.getSettings().toastTimer.value)); + default void logToast(Component title, Component message) { + mc.execute(() -> BaritoneToast.addOrUpdate(mc.getToasts(), title, message, BaritoneAPI.getSettings().toastTimer.value)); } /** @@ -82,7 +81,7 @@ public interface Helper { * @param message The message to display in the popup */ default void logToast(String title, String message) { - logToast(new StringTextComponent(title), new StringTextComponent(message)); + logToast(new TextComponent(title), new TextComponent(message)); } /** @@ -91,7 +90,7 @@ public interface Helper { * @param message The message to display in the popup */ default void logToast(String message) { - logToast(Helper.getPrefix(), new StringTextComponent(message)); + logToast(Helper.getPrefix(), new TextComponent(message)); } /** @@ -116,10 +115,10 @@ public interface Helper { * @param logAsToast Whether to log as a toast notification * @param components The components to send */ - default void logDirect(boolean logAsToast, ITextComponent... components) { - TextComponent component = new StringTextComponent(""); + default void logDirect(boolean logAsToast, Component... components) { + BaseComponent component = new TextComponent(""); component.append(getPrefix()); - component.append(new StringTextComponent(" ")); + component.append(new TextComponent(" ")); Arrays.asList(components).forEach(component::append); if (logAsToast) { logToast(getPrefix(), component); @@ -133,7 +132,7 @@ public interface Helper { * * @param components The components to send */ - default void logDirect(ITextComponent... components) { + default void logDirect(Component... components) { logDirect(BaritoneAPI.getSettings().logAsToast.value, components); } @@ -145,10 +144,10 @@ public interface Helper { * @param color The color to print that message in * @param logAsToast Whether to log as a toast notification */ - default void logDirect(String message, TextFormatting color, boolean logAsToast) { + default void logDirect(String message, ChatFormatting color, boolean logAsToast) { Stream.of(message.split("\n")).forEach(line -> { - TextComponent component = new StringTextComponent(line.replace("\t", " ")); - component.setStyle(component.getStyle().setFormatting(color)); + BaseComponent component = new TextComponent(line.replace("\t", " ")); + component.setStyle(component.getStyle().withColor(color)); logDirect(logAsToast, component); }); } @@ -160,7 +159,7 @@ public interface Helper { * @param message The message to display in chat * @param color The color to print that message in */ - default void logDirect(String message, TextFormatting color) { + default void logDirect(String message, ChatFormatting color) { logDirect(message, color, BaritoneAPI.getSettings().logAsToast.value); } @@ -172,7 +171,7 @@ public interface Helper { * @param logAsToast Whether to log as a toast notification */ default void logDirect(String message, boolean logAsToast) { - logDirect(message, TextFormatting.GRAY, logAsToast); + logDirect(message, ChatFormatting.GRAY, logAsToast); } /** diff --git a/src/api/java/baritone/api/utils/IPlayerContext.java b/src/api/java/baritone/api/utils/IPlayerContext.java index 4e93fd35d..dd91bdab3 100644 --- a/src/api/java/baritone/api/utils/IPlayerContext.java +++ b/src/api/java/baritone/api/utils/IPlayerContext.java @@ -18,19 +18,18 @@ package baritone.api.utils; import baritone.api.cache.IWorldData; -import net.minecraft.block.SlabBlock; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.World; - import java.util.Optional; import java.util.stream.Stream; import java.util.stream.StreamSupport; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.SlabBlock; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; /** * @author Brady @@ -38,14 +37,14 @@ import java.util.stream.StreamSupport; */ public interface IPlayerContext { - ClientPlayerEntity player(); + LocalPlayer player(); IPlayerController playerController(); - World world(); + Level world(); default Iterable entities() { - return ((ClientWorld) world()).getAllEntities(); + return ((ClientLevel) world()).entitiesForRendering(); } default Stream entitiesStream() { @@ -55,11 +54,11 @@ public interface IPlayerContext { IWorldData worldData(); - RayTraceResult objectMouseOver(); + HitResult objectMouseOver(); default BetterBlockPos playerFeet() { // TODO find a better way to deal with soul sand!!!!! - BetterBlockPos feet = new BetterBlockPos(player().getPositionVec().x, player().getPositionVec().y + 0.1251, player().getPositionVec().z); + BetterBlockPos feet = new BetterBlockPos(player().position().x, player().position().y + 0.1251, player().position().z); // sometimes when calling this from another thread or while world is null, it'll throw a NullPointerException // that causes the game to immediately crash @@ -71,23 +70,23 @@ public interface IPlayerContext { // if there is an exception, the only overhead is Java generating the exception object... so we can ignore it try { if (world().getBlockState(feet).getBlock() instanceof SlabBlock) { - return feet.up(); + return feet.above(); } } catch (NullPointerException ignored) {} return feet; } - default Vector3d playerFeetAsVec() { - return new Vector3d(player().getPositionVec().x, player().getPositionVec().y, player().getPositionVec().z); + default Vec3 playerFeetAsVec() { + return new Vec3(player().position().x, player().position().y, player().position().z); } - default Vector3d playerHead() { - return new Vector3d(player().getPositionVec().x, player().getPositionVec().y + player().getEyeHeight(), player().getPositionVec().z); + default Vec3 playerHead() { + return new Vec3(player().position().x, player().position().y + player().getEyeHeight(), player().position().z); } default Rotation playerRotations() { - return new Rotation(player().rotationYaw, player().rotationPitch); + return new Rotation(player().yRot, player().xRot); } static double eyeHeight(boolean ifSneaking) { @@ -100,9 +99,9 @@ public interface IPlayerContext { * @return The position of the highlighted block */ default Optional getSelectedBlock() { - RayTraceResult result = objectMouseOver(); - if (result != null && result.getType() == RayTraceResult.Type.BLOCK) { - return Optional.of(((BlockRayTraceResult) result).getPos()); + HitResult result = objectMouseOver(); + if (result != null && result.getType() == HitResult.Type.BLOCK) { + return Optional.of(((BlockHitResult) result).getBlockPos()); } return Optional.empty(); } diff --git a/src/api/java/baritone/api/utils/IPlayerController.java b/src/api/java/baritone/api/utils/IPlayerController.java index 58579b18e..7919654be 100644 --- a/src/api/java/baritone/api/utils/IPlayerController.java +++ b/src/api/java/baritone/api/utils/IPlayerController.java @@ -18,17 +18,17 @@ package baritone.api.utils; import baritone.api.BaritoneAPI; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.ClickType; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.GameType; -import net.minecraft.world.World; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.GameType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; /** * @author Brady @@ -44,13 +44,13 @@ public interface IPlayerController { void resetBlockRemoving(); - ItemStack windowClick(int windowId, int slotId, int mouseButton, ClickType type, PlayerEntity player); + ItemStack windowClick(int windowId, int slotId, int mouseButton, ClickType type, Player player); GameType getGameType(); - ActionResultType processRightClickBlock(ClientPlayerEntity player, World world, Hand hand, BlockRayTraceResult result); + InteractionResult processRightClickBlock(LocalPlayer player, Level world, InteractionHand hand, BlockHitResult result); - ActionResultType processRightClick(ClientPlayerEntity player, World world, Hand hand); + InteractionResult processRightClick(LocalPlayer player, Level world, InteractionHand hand); boolean clickBlock(BlockPos loc, Direction face); diff --git a/src/api/java/baritone/api/utils/RayTraceUtils.java b/src/api/java/baritone/api/utils/RayTraceUtils.java index 82a3e521c..70c79be0b 100644 --- a/src/api/java/baritone/api/utils/RayTraceUtils.java +++ b/src/api/java/baritone/api/utils/RayTraceUtils.java @@ -17,10 +17,10 @@ package baritone.api.utils; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.RayTraceContext; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; /** * @author Brady @@ -40,27 +40,27 @@ public final class RayTraceUtils { * @param blockReachDistance The block reach distance of the entity * @return The calculated raytrace result */ - public static RayTraceResult rayTraceTowards(Entity entity, Rotation rotation, double blockReachDistance) { + public static HitResult rayTraceTowards(Entity entity, Rotation rotation, double blockReachDistance) { return rayTraceTowards(entity, rotation, blockReachDistance, false); } - public static RayTraceResult rayTraceTowards(Entity entity, Rotation rotation, double blockReachDistance, boolean wouldSneak) { - Vector3d start; + public static HitResult rayTraceTowards(Entity entity, Rotation rotation, double blockReachDistance, boolean wouldSneak) { + Vec3 start; if (wouldSneak) { start = inferSneakingEyePosition(entity); } else { start = entity.getEyePosition(1.0F); // do whatever is correct } - Vector3d direction = RotationUtils.calcVector3dFromRotation(rotation); - Vector3d end = start.add( + Vec3 direction = RotationUtils.calcVector3dFromRotation(rotation); + Vec3 end = start.add( direction.x * blockReachDistance, direction.y * blockReachDistance, direction.z * blockReachDistance ); - return entity.world.rayTraceBlocks(new RayTraceContext(start, end, RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, entity)); + return entity.level.clip(new ClipContext(start, end, ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, entity)); } - public static Vector3d inferSneakingEyePosition(Entity entity) { - return new Vector3d(entity.getPosX(), entity.getPosY() + IPlayerContext.eyeHeight(true), entity.getPosZ()); + public static Vec3 inferSneakingEyePosition(Entity entity) { + return new Vec3(entity.getX(), entity.getY() + IPlayerContext.eyeHeight(true), entity.getZ()); } } diff --git a/src/api/java/baritone/api/utils/RotationUtils.java b/src/api/java/baritone/api/utils/RotationUtils.java index ec178c390..4c90be512 100644 --- a/src/api/java/baritone/api/utils/RotationUtils.java +++ b/src/api/java/baritone/api/utils/RotationUtils.java @@ -19,20 +19,19 @@ package baritone.api.utils; import baritone.api.BaritoneAPI; import baritone.api.IBaritone; -import net.minecraft.block.AbstractFireBlock; -import net.minecraft.block.BlockState; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.entity.Entity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.math.vector.Vector3d; - import java.util.Optional; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.block.BaseFireBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; /** * @author Brady @@ -53,13 +52,13 @@ public final class RotationUtils { /** * Offsets from the root block position to the center of each side. */ - private static final Vector3d[] BLOCK_SIDE_MULTIPLIERS = new Vector3d[]{ - new Vector3d(0.5, 0, 0.5), // Down - new Vector3d(0.5, 1, 0.5), // Up - new Vector3d(0.5, 0.5, 0), // North - new Vector3d(0.5, 0.5, 1), // South - new Vector3d(0, 0.5, 0.5), // West - new Vector3d(1, 0.5, 0.5) // East + private static final Vec3[] BLOCK_SIDE_MULTIPLIERS = new Vec3[]{ + new Vec3(0.5, 0, 0.5), // Down + new Vec3(0.5, 1, 0.5), // Up + new Vec3(0.5, 0.5, 0), // North + new Vec3(0.5, 0.5, 1), // South + new Vec3(0, 0.5, 0.5), // West + new Vec3(1, 0.5, 0.5) // East }; private RotationUtils() {} @@ -72,7 +71,7 @@ public final class RotationUtils { * @return The rotation from the origin to the destination */ public static Rotation calcRotationFromCoords(BlockPos orig, BlockPos dest) { - return calcRotationFromVec3d(new Vector3d(orig.getX(), orig.getY(), orig.getZ()), new Vector3d(dest.getX(), dest.getY(), dest.getZ())); + return calcRotationFromVec3d(new Vec3(orig.getX(), orig.getY(), orig.getZ()), new Vec3(dest.getX(), dest.getY(), dest.getZ())); } /** @@ -101,7 +100,7 @@ public final class RotationUtils { * @return The rotation from the origin to the destination * @see #wrapAnglesToRelative(Rotation, Rotation) */ - public static Rotation calcRotationFromVec3d(Vector3d orig, Vector3d dest, Rotation current) { + public static Rotation calcRotationFromVec3d(Vec3 orig, Vec3 dest, Rotation current) { return wrapAnglesToRelative(current, calcRotationFromVec3d(orig, dest)); } @@ -112,11 +111,11 @@ public final class RotationUtils { * @param dest The destination position * @return The rotation from the origin to the destination */ - private static Rotation calcRotationFromVec3d(Vector3d orig, Vector3d dest) { + private static Rotation calcRotationFromVec3d(Vec3 orig, Vec3 dest) { double[] delta = {orig.x - dest.x, orig.y - dest.y, orig.z - dest.z}; - double yaw = MathHelper.atan2(delta[0], -delta[2]); + double yaw = Mth.atan2(delta[0], -delta[2]); double dist = Math.sqrt(delta[0] * delta[0] + delta[2] * delta[2]); - double pitch = MathHelper.atan2(delta[1], dist); + double pitch = Mth.atan2(delta[1], dist); return new Rotation( (float) (yaw * RAD_TO_DEG), (float) (pitch * RAD_TO_DEG) @@ -129,19 +128,19 @@ public final class RotationUtils { * @param rotation The input rotation * @return Look vector for the rotation */ - public static Vector3d calcVector3dFromRotation(Rotation rotation) { - float f = MathHelper.cos(-rotation.getYaw() * (float) DEG_TO_RAD - (float) Math.PI); - float f1 = MathHelper.sin(-rotation.getYaw() * (float) DEG_TO_RAD - (float) Math.PI); - float f2 = -MathHelper.cos(-rotation.getPitch() * (float) DEG_TO_RAD); - float f3 = MathHelper.sin(-rotation.getPitch() * (float) DEG_TO_RAD); - return new Vector3d((double) (f1 * f2), (double) f3, (double) (f * f2)); + public static Vec3 calcVector3dFromRotation(Rotation rotation) { + float f = Mth.cos(-rotation.getYaw() * (float) DEG_TO_RAD - (float) Math.PI); + float f1 = Mth.sin(-rotation.getYaw() * (float) DEG_TO_RAD - (float) Math.PI); + float f2 = -Mth.cos(-rotation.getPitch() * (float) DEG_TO_RAD); + float f3 = Mth.sin(-rotation.getPitch() * (float) DEG_TO_RAD); + return new Vec3((double) (f1 * f2), (double) f3, (double) (f * f2)); } /** * @param ctx Context for the viewing entity * @param pos The target block position * @return The optional rotation - * @see #reachable(ClientPlayerEntity, BlockPos, double) + * @see #reachable(LocalPlayer, BlockPos, double) */ public static Optional reachable(IPlayerContext ctx, BlockPos pos) { return reachable(ctx.player(), pos, ctx.playerController().getBlockReachDistance()); @@ -163,11 +162,11 @@ public final class RotationUtils { * @param blockReachDistance The block reach distance of the entity * @return The optional rotation */ - public static Optional reachable(ClientPlayerEntity entity, BlockPos pos, double blockReachDistance) { + public static Optional reachable(LocalPlayer entity, BlockPos pos, double blockReachDistance) { return reachable(entity, pos, blockReachDistance, false); } - public static Optional reachable(ClientPlayerEntity entity, BlockPos pos, double blockReachDistance, boolean wouldSneak) { + public static Optional reachable(LocalPlayer entity, BlockPos pos, double blockReachDistance, boolean wouldSneak) { IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer(entity); if (baritone.getPlayerContext().isLookingAt(pos)) { /* @@ -180,11 +179,11 @@ public final class RotationUtils { * * or if you're a normal person literally all this does it ensure that we don't nudge the pitch to a normal level */ - Rotation hypothetical = new Rotation(entity.rotationYaw, entity.rotationPitch + 0.0001F); + Rotation hypothetical = new Rotation(entity.yRot, entity.xRot + 0.0001F); if (wouldSneak) { // the concern here is: what if we're looking at it now, but as soon as we start sneaking we no longer are - RayTraceResult result = RayTraceUtils.rayTraceTowards(entity, hypothetical, blockReachDistance, true); - if (result != null && result.getType() == RayTraceResult.Type.BLOCK && ((BlockRayTraceResult) result).getPos().equals(pos)) { + HitResult result = RayTraceUtils.rayTraceTowards(entity, hypothetical, blockReachDistance, true); + if (result != null && result.getType() == HitResult.Type.BLOCK && ((BlockHitResult) result).getBlockPos().equals(pos)) { return Optional.of(hypothetical); // yes, if we sneaked we would still be looking at the block } } else { @@ -197,16 +196,16 @@ public final class RotationUtils { return possibleRotation; } - BlockState state = entity.world.getBlockState(pos); - VoxelShape shape = state.getShape(entity.world, pos); + BlockState state = entity.level.getBlockState(pos); + VoxelShape shape = state.getShape(entity.level, pos); if (shape.isEmpty()) { - shape = VoxelShapes.fullCube(); + shape = Shapes.block(); } - for (Vector3d sideOffset : BLOCK_SIDE_MULTIPLIERS) { - double xDiff = shape.getStart(Direction.Axis.X) * sideOffset.x + shape.getEnd(Direction.Axis.X) * (1 - sideOffset.x); - double yDiff = shape.getStart(Direction.Axis.Y) * sideOffset.y + shape.getEnd(Direction.Axis.Y) * (1 - sideOffset.y); - double zDiff = shape.getStart(Direction.Axis.Z) * sideOffset.z + shape.getEnd(Direction.Axis.Z) * (1 - sideOffset.z); - possibleRotation = reachableOffset(entity, pos, new Vector3d(pos.getX(), pos.getY(), pos.getZ()).add(xDiff, yDiff, zDiff), blockReachDistance, wouldSneak); + for (Vec3 sideOffset : BLOCK_SIDE_MULTIPLIERS) { + double xDiff = shape.min(Direction.Axis.X) * sideOffset.x + shape.max(Direction.Axis.X) * (1 - sideOffset.x); + double yDiff = shape.min(Direction.Axis.Y) * sideOffset.y + shape.max(Direction.Axis.Y) * (1 - sideOffset.y); + double zDiff = shape.min(Direction.Axis.Z) * sideOffset.z + shape.max(Direction.Axis.Z) * (1 - sideOffset.z); + possibleRotation = reachableOffset(entity, pos, new Vec3(pos.getX(), pos.getY(), pos.getZ()).add(xDiff, yDiff, zDiff), blockReachDistance, wouldSneak); if (possibleRotation.isPresent()) { return possibleRotation; } @@ -225,16 +224,16 @@ public final class RotationUtils { * @param blockReachDistance The block reach distance of the entity * @return The optional rotation */ - public static Optional reachableOffset(Entity entity, BlockPos pos, Vector3d offsetPos, double blockReachDistance, boolean wouldSneak) { - Vector3d eyes = wouldSneak ? RayTraceUtils.inferSneakingEyePosition(entity) : entity.getEyePosition(1.0F); - Rotation rotation = calcRotationFromVec3d(eyes, offsetPos, new Rotation(entity.rotationYaw, entity.rotationPitch)); - RayTraceResult result = RayTraceUtils.rayTraceTowards(entity, rotation, blockReachDistance, wouldSneak); + public static Optional reachableOffset(Entity entity, BlockPos pos, Vec3 offsetPos, double blockReachDistance, boolean wouldSneak) { + Vec3 eyes = wouldSneak ? RayTraceUtils.inferSneakingEyePosition(entity) : entity.getEyePosition(1.0F); + Rotation rotation = calcRotationFromVec3d(eyes, offsetPos, new Rotation(entity.yRot, entity.xRot)); + HitResult result = RayTraceUtils.rayTraceTowards(entity, rotation, blockReachDistance, wouldSneak); //System.out.println(result); - if (result != null && result.getType() == RayTraceResult.Type.BLOCK) { - if (((BlockRayTraceResult) result).getPos().equals(pos)) { + if (result != null && result.getType() == HitResult.Type.BLOCK) { + if (((BlockHitResult) result).getBlockPos().equals(pos)) { return Optional.of(rotation); } - if (entity.world.getBlockState(pos).getBlock() instanceof AbstractFireBlock && ((BlockRayTraceResult) result).getPos().equals(pos.down())) { + if (entity.level.getBlockState(pos).getBlock() instanceof BaseFireBlock && ((BlockHitResult) result).getBlockPos().equals(pos.below())) { return Optional.of(rotation); } } @@ -251,6 +250,6 @@ public final class RotationUtils { * @return The optional rotation */ public static Optional reachableCenter(Entity entity, BlockPos pos, double blockReachDistance, boolean wouldSneak) { - return reachableOffset(entity, pos, VecUtils.calculateBlockCenter(entity.world, pos), blockReachDistance, wouldSneak); + return reachableOffset(entity, pos, VecUtils.calculateBlockCenter(entity.level, pos), blockReachDistance, wouldSneak); } } diff --git a/src/api/java/baritone/api/utils/SettingsUtil.java b/src/api/java/baritone/api/utils/SettingsUtil.java index da1778b28..4ef401c97 100644 --- a/src/api/java/baritone/api/utils/SettingsUtil.java +++ b/src/api/java/baritone/api/utils/SettingsUtil.java @@ -19,14 +19,13 @@ package baritone.api.utils; import baritone.api.BaritoneAPI; import baritone.api.Settings; -import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.item.Item; -import net.minecraft.util.Direction; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.vector.Vector3i; -import net.minecraft.util.registry.Registry; - +import net.minecraft.core.Direction; +import net.minecraft.core.Registry; +import net.minecraft.core.Vec3i; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; import java.awt.*; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -49,7 +48,7 @@ import java.util.stream.Stream; public class SettingsUtil { - private static final Path SETTINGS_PATH = Minecraft.getInstance().gameDir.toPath().resolve("baritone").resolve("settings.txt"); + private static final Path SETTINGS_PATH = Minecraft.getInstance().gameDirectory.toPath().resolve("baritone").resolve("settings.txt"); private static final Pattern SETTING_PATTERN = Pattern.compile("^(?[^ ]+) +(?.+)"); // key and value split by the first space @@ -225,8 +224,8 @@ public class SettingsUtil { color -> color.getRed() + "," + color.getGreen() + "," + color.getBlue() ), VEC3I( - Vector3i.class, - str -> new Vector3i(Integer.parseInt(str.split(",")[0]), Integer.parseInt(str.split(",")[1]), Integer.parseInt(str.split(",")[2])), + Vec3i.class, + str -> new Vec3i(Integer.parseInt(str.split(",")[0]), Integer.parseInt(str.split(",")[1]), Integer.parseInt(str.split(",")[2])), vec -> vec.getX() + "," + vec.getY() + "," + vec.getZ() ), BLOCK( @@ -236,7 +235,7 @@ public class SettingsUtil { ), ITEM( Item.class, - str -> Registry.ITEM.getOrDefault(new ResourceLocation(str.trim())), // TODO this now returns AIR on failure instead of null, is that an issue? + str -> Registry.ITEM.get(new ResourceLocation(str.trim())), // TODO this now returns AIR on failure instead of null, is that an issue? item -> Registry.ITEM.getKey(item).toString() ), LIST() { diff --git a/src/api/java/baritone/api/utils/VecUtils.java b/src/api/java/baritone/api/utils/VecUtils.java index bd5c9555e..4ea94b95a 100644 --- a/src/api/java/baritone/api/utils/VecUtils.java +++ b/src/api/java/baritone/api/utils/VecUtils.java @@ -17,14 +17,14 @@ package baritone.api.utils; -import net.minecraft.block.AbstractFireBlock; -import net.minecraft.block.BlockState; -import net.minecraft.entity.Entity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.World; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseFireBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.VoxelShape; /** * @author Brady @@ -42,22 +42,22 @@ public final class VecUtils { * @return The center of the block's bounding box * @see #getBlockPosCenter(BlockPos) */ - public static Vector3d calculateBlockCenter(World world, BlockPos pos) { + public static Vec3 calculateBlockCenter(Level world, BlockPos pos) { BlockState b = world.getBlockState(pos); VoxelShape shape = b.getCollisionShape(world, pos); if (shape.isEmpty()) { return getBlockPosCenter(pos); } - double xDiff = (shape.getStart(Direction.Axis.X) + shape.getEnd(Direction.Axis.X)) / 2; - double yDiff = (shape.getStart(Direction.Axis.Y) + shape.getEnd(Direction.Axis.Y)) / 2; - double zDiff = (shape.getStart(Direction.Axis.Z) + shape.getEnd(Direction.Axis.Z)) / 2; + double xDiff = (shape.min(Direction.Axis.X) + shape.max(Direction.Axis.X)) / 2; + double yDiff = (shape.min(Direction.Axis.Y) + shape.max(Direction.Axis.Y)) / 2; + double zDiff = (shape.min(Direction.Axis.Z) + shape.max(Direction.Axis.Z)) / 2; if (Double.isNaN(xDiff) || Double.isNaN(yDiff) || Double.isNaN(zDiff)) { throw new IllegalStateException(b + " " + pos + " " + shape); } - if (b.getBlock() instanceof AbstractFireBlock) {//look at bottom of fire when putting it out + if (b.getBlock() instanceof BaseFireBlock) {//look at bottom of fire when putting it out yDiff = 0; } - return new Vector3d( + return new Vec3( pos.getX() + xDiff, pos.getY() + yDiff, pos.getZ() + zDiff @@ -72,10 +72,10 @@ public final class VecUtils { * * @param pos The block position * @return The assumed center of the position - * @see #calculateBlockCenter(World, BlockPos) + * @see #calculateBlockCenter(Level, BlockPos) */ - public static Vector3d getBlockPosCenter(BlockPos pos) { - return new Vector3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5); + public static Vec3 getBlockPosCenter(BlockPos pos) { + return new Vec3(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5); } /** @@ -105,7 +105,7 @@ public final class VecUtils { * @see #getBlockPosCenter(BlockPos) */ public static double entityDistanceToCenter(Entity entity, BlockPos pos) { - return distanceToCenter(pos, entity.getPositionVec().x, entity.getPositionVec().y, entity.getPositionVec().z); + return distanceToCenter(pos, entity.position().x, entity.position().y, entity.position().z); } /** @@ -118,6 +118,6 @@ public final class VecUtils { * @see #getBlockPosCenter(BlockPos) */ public static double entityFlatDistanceToCenter(Entity entity, BlockPos pos) { - return distanceToCenter(pos, entity.getPositionVec().x, pos.getY() + 0.5, entity.getPositionVec().z); + return distanceToCenter(pos, entity.position().x, pos.getY() + 0.5, entity.position().z); } } diff --git a/src/api/java/baritone/api/utils/gui/BaritoneToast.java b/src/api/java/baritone/api/utils/gui/BaritoneToast.java index 92303aab4..3429aa2df 100644 --- a/src/api/java/baritone/api/utils/gui/BaritoneToast.java +++ b/src/api/java/baritone/api/utils/gui/BaritoneToast.java @@ -17,57 +17,57 @@ package baritone.api.utils.gui; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; -import net.minecraft.client.gui.toasts.IToast; -import net.minecraft.client.gui.toasts.ToastGui; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.text.ITextComponent; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.gui.components.toasts.Toast; +import net.minecraft.client.gui.components.toasts.ToastComponent; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; -public class BaritoneToast implements IToast { +public class BaritoneToast implements Toast { private String title; private String subtitle; private long firstDrawTime; private boolean newDisplay; private long totalShowTime; - public BaritoneToast(ITextComponent titleComponent, ITextComponent subtitleComponent, long totalShowTime) { + public BaritoneToast(Component titleComponent, Component subtitleComponent, long totalShowTime) { this.title = titleComponent.getString(); this.subtitle = subtitleComponent == null ? null : subtitleComponent.getString(); this.totalShowTime = totalShowTime; } - public Visibility func_230444_a_(MatrixStack matrixStack, ToastGui toastGui, long delta) { + public Visibility render(PoseStack matrixStack, ToastComponent toastGui, long delta) { if (this.newDisplay) { this.firstDrawTime = delta; this.newDisplay = false; } - toastGui.getMinecraft().getTextureManager().bindTexture(new ResourceLocation("textures/gui/toasts.png")); - GlStateManager.color4f(1.0F, 1.0F, 1.0F, 255.0f); + toastGui.getMinecraft().getTextureManager().bind(new ResourceLocation("textures/gui/toasts.png")); + GlStateManager._color4f(1.0F, 1.0F, 1.0F, 255.0f); toastGui.blit(matrixStack, 0, 0, 0, 32, 160, 32); if (this.subtitle == null) { - toastGui.getMinecraft().fontRenderer.drawString(matrixStack, this.title, 18, 12, -11534256); + toastGui.getMinecraft().font.draw(matrixStack, this.title, 18, 12, -11534256); } else { - toastGui.getMinecraft().fontRenderer.drawString(matrixStack, this.title, 18, 7, -11534256); - toastGui.getMinecraft().fontRenderer.drawString(matrixStack, this.subtitle, 18, 18, -16777216); + toastGui.getMinecraft().font.draw(matrixStack, this.title, 18, 7, -11534256); + toastGui.getMinecraft().font.draw(matrixStack, this.subtitle, 18, 18, -16777216); } return delta - this.firstDrawTime < totalShowTime ? Visibility.SHOW : Visibility.HIDE; } - public void setDisplayedText(ITextComponent titleComponent, ITextComponent subtitleComponent) { + public void setDisplayedText(Component titleComponent, Component subtitleComponent) { this.title = titleComponent.getString(); this.subtitle = subtitleComponent == null ? null : subtitleComponent.getString(); this.newDisplay = true; } - public static void addOrUpdate(ToastGui toast, ITextComponent title, ITextComponent subtitle, long totalShowTime) { + public static void addOrUpdate(ToastComponent toast, Component title, Component subtitle, long totalShowTime) { BaritoneToast baritonetoast = toast.getToast(BaritoneToast.class, new Object()); if (baritonetoast == null) { - toast.add(new BaritoneToast(title, subtitle, totalShowTime)); + toast.addToast(new BaritoneToast(title, subtitle, totalShowTime)); } else { baritonetoast.setDisplayedText(title, subtitle); } diff --git a/src/api/java/baritone/api/utils/interfaces/IGoalRenderPos.java b/src/api/java/baritone/api/utils/interfaces/IGoalRenderPos.java index 13e7e6860..11742d75b 100644 --- a/src/api/java/baritone/api/utils/interfaces/IGoalRenderPos.java +++ b/src/api/java/baritone/api/utils/interfaces/IGoalRenderPos.java @@ -17,7 +17,7 @@ package baritone.api.utils.interfaces; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; public interface IGoalRenderPos { diff --git a/src/launch/java/baritone/launch/mixins/MixinChunkArray.java b/src/launch/java/baritone/launch/mixins/MixinChunkArray.java index 58ac3418f..f6372c33e 100644 --- a/src/launch/java/baritone/launch/mixins/MixinChunkArray.java +++ b/src/launch/java/baritone/launch/mixins/MixinChunkArray.java @@ -18,17 +18,17 @@ package baritone.launch.mixins; import baritone.utils.accessor.IChunkArray; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.chunk.Chunk; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import java.util.concurrent.atomic.AtomicReferenceArray; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.chunk.LevelChunk; @Mixin(targets = "net.minecraft.client.multiplayer.ClientChunkProvider$ChunkArray") public abstract class MixinChunkArray implements IChunkArray { @Shadow - private AtomicReferenceArray chunks; + private AtomicReferenceArray chunks; @Shadow private int viewDistance; @Shadow @@ -47,7 +47,7 @@ public abstract class MixinChunkArray implements IChunkArray { protected abstract int getIndex(int x, int z); @Shadow - protected abstract void replace(int index, Chunk chunk); + protected abstract void replace(int index, LevelChunk chunk); @Override public int centerX() { @@ -65,7 +65,7 @@ public abstract class MixinChunkArray implements IChunkArray { } @Override - public AtomicReferenceArray getChunks() { + public AtomicReferenceArray getChunks() { return chunks; } @@ -74,9 +74,9 @@ public abstract class MixinChunkArray implements IChunkArray { centerX = other.centerX(); centerZ = other.centerZ(); - AtomicReferenceArray copyingFrom = other.getChunks(); + AtomicReferenceArray copyingFrom = other.getChunks(); for (int k = 0; k < copyingFrom.length(); ++k) { - Chunk chunk = copyingFrom.get(k); + LevelChunk chunk = copyingFrom.get(k); if (chunk != null) { ChunkPos chunkpos = chunk.getPos(); if (inView(chunkpos.x, chunkpos.z)) { diff --git a/src/launch/java/baritone/launch/mixins/MixinClientChunkProvider.java b/src/launch/java/baritone/launch/mixins/MixinClientChunkProvider.java index 700f54ae2..fe89bc4e3 100644 --- a/src/launch/java/baritone/launch/mixins/MixinClientChunkProvider.java +++ b/src/launch/java/baritone/launch/mixins/MixinClientChunkProvider.java @@ -19,24 +19,24 @@ package baritone.launch.mixins; import baritone.utils.accessor.IChunkArray; import baritone.utils.accessor.IClientChunkProvider; -import net.minecraft.client.multiplayer.ClientChunkProvider; -import net.minecraft.client.world.ClientWorld; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import java.lang.reflect.Field; import java.util.Arrays; +import net.minecraft.client.multiplayer.ClientChunkCache; +import net.minecraft.client.multiplayer.ClientLevel; -@Mixin(ClientChunkProvider.class) +@Mixin(ClientChunkCache.class) public class MixinClientChunkProvider implements IClientChunkProvider { @Shadow - private ClientWorld world; + private ClientLevel world; @Override - public ClientChunkProvider createThreadSafeCopy() { + public ClientChunkCache createThreadSafeCopy() { IChunkArray arr = extractReferenceArray(); - ClientChunkProvider result = new ClientChunkProvider(world, arr.viewDistance() - 3); // -3 because its adds 3 for no reason lmao + ClientChunkCache result = new ClientChunkCache(world, arr.viewDistance() - 3); // -3 because its adds 3 for no reason lmao IChunkArray copyArr = ((IClientChunkProvider) result).extractReferenceArray(); copyArr.copyFrom(arr); if (copyArr.viewDistance() != arr.viewDistance()) { @@ -47,7 +47,7 @@ public class MixinClientChunkProvider implements IClientChunkProvider { @Override public IChunkArray extractReferenceArray() { - for (Field f : ClientChunkProvider.class.getDeclaredFields()) { + for (Field f : ClientChunkCache.class.getDeclaredFields()) { if (IChunkArray.class.isAssignableFrom(f.getType())) { try { return (IChunkArray) f.get(this); @@ -56,6 +56,6 @@ public class MixinClientChunkProvider implements IClientChunkProvider { } } } - throw new RuntimeException(Arrays.toString(ClientChunkProvider.class.getDeclaredFields())); + throw new RuntimeException(Arrays.toString(ClientChunkCache.class.getDeclaredFields())); } } diff --git a/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java b/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java index b7520a6b3..b5348eb97 100644 --- a/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java +++ b/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java @@ -23,10 +23,15 @@ import baritone.api.IBaritone; import baritone.api.event.events.ChunkEvent; import baritone.api.event.events.type.EventState; import baritone.cache.CachedChunk; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.network.play.ClientPlayNetHandler; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.player.LocalPlayer; import net.minecraft.network.play.server.*; -import net.minecraft.util.math.ChunkPos; +import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket; +import net.minecraft.network.protocol.game.ClientboundForgetLevelChunkPacket; +import net.minecraft.network.protocol.game.ClientboundLevelChunkPacket; +import net.minecraft.network.protocol.game.ClientboundPlayerCombatPacket; +import net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket; +import net.minecraft.world.level.ChunkPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -36,7 +41,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; * @author Brady * @since 8/3/2018 */ -@Mixin(ClientPlayNetHandler.class) +@Mixin(ClientPacketListener.class) public class MixinClientPlayNetHandler { // unused lol @@ -67,16 +72,16 @@ public class MixinClientPlayNetHandler { method = "handleChunkData", at = @At("RETURN") ) - private void postHandleChunkData(SChunkDataPacket packetIn, CallbackInfo ci) { + private void postHandleChunkData(ClientboundLevelChunkPacket packetIn, CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ClientPlayerEntity player = ibaritone.getPlayerContext().player(); - if (player != null && player.connection == (ClientPlayNetHandler) (Object) this) { + LocalPlayer player = ibaritone.getPlayerContext().player(); + if (player != null && player.connection == (ClientPacketListener) (Object) this) { ibaritone.getGameEventHandler().onChunkEvent( new ChunkEvent( EventState.POST, packetIn.isFullChunk() ? ChunkEvent.Type.POPULATE_FULL : ChunkEvent.Type.POPULATE_PARTIAL, - packetIn.getChunkX(), - packetIn.getChunkZ() + packetIn.getX(), + packetIn.getZ() ) ); } @@ -87,10 +92,10 @@ public class MixinClientPlayNetHandler { method = "processChunkUnload", at = @At("HEAD") ) - private void preChunkUnload(SUnloadChunkPacket packet, CallbackInfo ci) { + private void preChunkUnload(ClientboundForgetLevelChunkPacket packet, CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ClientPlayerEntity player = ibaritone.getPlayerContext().player(); - if (player != null && player.connection == (ClientPlayNetHandler) (Object) this) { + LocalPlayer player = ibaritone.getPlayerContext().player(); + if (player != null && player.connection == (ClientPacketListener) (Object) this) { ibaritone.getGameEventHandler().onChunkEvent( new ChunkEvent(EventState.PRE, ChunkEvent.Type.UNLOAD, packet.getX(), packet.getZ()) ); @@ -102,10 +107,10 @@ public class MixinClientPlayNetHandler { method = "processChunkUnload", at = @At("RETURN") ) - private void postChunkUnload(SUnloadChunkPacket packet, CallbackInfo ci) { + private void postChunkUnload(ClientboundForgetLevelChunkPacket packet, CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ClientPlayerEntity player = ibaritone.getPlayerContext().player(); - if (player != null && player.connection == (ClientPlayNetHandler) (Object) this) { + LocalPlayer player = ibaritone.getPlayerContext().player(); + if (player != null && player.connection == (ClientPacketListener) (Object) this) { ibaritone.getGameEventHandler().onChunkEvent( new ChunkEvent(EventState.POST, ChunkEvent.Type.UNLOAD, packet.getX(), packet.getZ()) ); @@ -117,16 +122,16 @@ public class MixinClientPlayNetHandler { method = "handleBlockChange", at = @At("RETURN") ) - private void postHandleBlockChange(SChangeBlockPacket packetIn, CallbackInfo ci) { + private void postHandleBlockChange(ClientboundBlockUpdatePacket packetIn, CallbackInfo ci) { if (!Baritone.settings().repackOnAnyBlockChange.value) { return; } - if (!CachedChunk.BLOCKS_TO_KEEP_TRACK_OF.contains(packetIn.getState().getBlock())) { + if (!CachedChunk.BLOCKS_TO_KEEP_TRACK_OF.contains(packetIn.getBlockState().getBlock())) { return; } for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ClientPlayerEntity player = ibaritone.getPlayerContext().player(); - if (player != null && player.connection == (ClientPlayNetHandler) (Object) this) { + LocalPlayer player = ibaritone.getPlayerContext().player(); + if (player != null && player.connection == (ClientPacketListener) (Object) this) { ibaritone.getGameEventHandler().onChunkEvent( new ChunkEvent( EventState.POST, @@ -143,12 +148,12 @@ public class MixinClientPlayNetHandler { method = "handleMultiBlockChange", at = @At("RETURN") ) - private void postHandleMultiBlockChange(SMultiBlockChangePacket packetIn, CallbackInfo ci) { + private void postHandleMultiBlockChange(ClientboundSectionBlocksUpdatePacket packetIn, CallbackInfo ci) { if (!Baritone.settings().repackOnAnyBlockChange.value) { return; } ChunkPos[] chunkPos = new ChunkPos[1]; - packetIn.func_244310_a((pos, state) -> { + packetIn.runUpdates((pos, state) -> { if (CachedChunk.BLOCKS_TO_KEEP_TRACK_OF.contains(state.getBlock())) { chunkPos[0] = new ChunkPos(pos); } @@ -157,8 +162,8 @@ public class MixinClientPlayNetHandler { return; } for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ClientPlayerEntity player = ibaritone.getPlayerContext().player(); - if (player != null && player.connection == (ClientPlayNetHandler) (Object) this) { + LocalPlayer player = ibaritone.getPlayerContext().player(); + if (player != null && player.connection == (ClientPacketListener) (Object) this) { ibaritone.getGameEventHandler().onChunkEvent( new ChunkEvent( EventState.POST, @@ -178,10 +183,10 @@ public class MixinClientPlayNetHandler { target = "net/minecraft/client/Minecraft.displayGuiScreen(Lnet/minecraft/client/gui/screen/Screen;)V" ) ) - private void onPlayerDeath(SCombatPacket packetIn, CallbackInfo ci) { + private void onPlayerDeath(ClientboundPlayerCombatPacket packetIn, CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - ClientPlayerEntity player = ibaritone.getPlayerContext().player(); - if (player != null && player.connection == (ClientPlayNetHandler) (Object) this) { + LocalPlayer player = ibaritone.getPlayerContext().player(); + if (player != null && player.connection == (ClientPacketListener) (Object) this) { ibaritone.getGameEventHandler().onPlayerDeath(); } } diff --git a/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java b/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java index c10a4831d..49e875ad8 100644 --- a/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java +++ b/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java @@ -24,9 +24,9 @@ import baritone.api.event.events.PlayerUpdateEvent; import baritone.api.event.events.SprintStateEvent; import baritone.api.event.events.type.EventState; import baritone.behavior.LookBehavior; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.entity.player.PlayerAbilities; +import net.minecraft.client.KeyMapping; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.entity.player.Abilities; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -37,7 +37,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; * @author Brady * @since 8/1/2018 */ -@Mixin(ClientPlayerEntity.class) +@Mixin(LocalPlayer.class) public class MixinClientPlayerEntity { @Inject( @@ -47,7 +47,7 @@ public class MixinClientPlayerEntity { ) private void sendChatMessage(String msg, CallbackInfo ci) { ChatEvent event = new ChatEvent(msg); - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone == null) { return; } @@ -67,7 +67,7 @@ public class MixinClientPlayerEntity { ) ) private void onPreUpdate(CallbackInfo ci) { - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone != null) { baritone.getGameEventHandler().onPlayerUpdate(new PlayerUpdateEvent(EventState.PRE)); } @@ -83,7 +83,7 @@ public class MixinClientPlayerEntity { ) ) private void onPostUpdate(CallbackInfo ci) { - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone != null) { baritone.getGameEventHandler().onPlayerUpdate(new PlayerUpdateEvent(EventState.POST)); } @@ -96,12 +96,12 @@ public class MixinClientPlayerEntity { target = "net/minecraft/entity/player/PlayerAbilities.allowFlying:Z" ) ) - private boolean isAllowFlying(PlayerAbilities capabilities) { - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + private boolean isAllowFlying(Abilities capabilities) { + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone == null) { - return capabilities.allowFlying; + return capabilities.mayfly; } - return !baritone.getPathingBehavior().isPathing() && capabilities.allowFlying; + return !baritone.getPathingBehavior().isPathing() && capabilities.mayfly; } @Redirect( @@ -111,10 +111,10 @@ public class MixinClientPlayerEntity { target = "net/minecraft/client/settings/KeyBinding.isKeyDown()Z" ) ) - private boolean isKeyDown(KeyBinding keyBinding) { - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + private boolean isKeyDown(KeyMapping keyBinding) { + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone == null) { - return keyBinding.isKeyDown(); + return keyBinding.isDown(); } SprintStateEvent event = new SprintStateEvent(); baritone.getGameEventHandler().onPlayerSprintState(event); @@ -125,7 +125,7 @@ public class MixinClientPlayerEntity { // hitting control shouldn't make all bots sprint return false; } - return keyBinding.isKeyDown(); + return keyBinding.isDown(); } @Inject( @@ -135,7 +135,7 @@ public class MixinClientPlayerEntity { ) ) private void updateRidden(CallbackInfo cb) { - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone != null) { ((LookBehavior) baritone.getLookBehavior()).pig(); } diff --git a/src/launch/java/baritone/launch/mixins/MixinCommandSuggestionHelper.java b/src/launch/java/baritone/launch/mixins/MixinCommandSuggestionHelper.java index 00497ab6b..0d3d1a2b4 100644 --- a/src/launch/java/baritone/launch/mixins/MixinCommandSuggestionHelper.java +++ b/src/launch/java/baritone/launch/mixins/MixinCommandSuggestionHelper.java @@ -22,8 +22,6 @@ import baritone.api.event.events.TabCompleteEvent; import com.mojang.brigadier.context.StringRange; import com.mojang.brigadier.suggestion.Suggestion; import com.mojang.brigadier.suggestion.Suggestions; -import net.minecraft.client.gui.CommandSuggestionHelper; -import net.minecraft.client.gui.widget.TextFieldWidget; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -35,17 +33,19 @@ import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import java.util.stream.Stream; +import net.minecraft.client.gui.components.CommandSuggestions; +import net.minecraft.client.gui.components.EditBox; /** * @author Brady * @since 10/9/2019 */ -@Mixin(CommandSuggestionHelper.class) +@Mixin(CommandSuggestions.class) public class MixinCommandSuggestionHelper { @Shadow @Final - private TextFieldWidget inputField; + private EditBox inputField; @Shadow @Final @@ -61,7 +61,7 @@ public class MixinCommandSuggestionHelper { ) private void preUpdateSuggestion(CallbackInfo ci) { // Anything that is present in the input text before the cursor position - String prefix = this.inputField.getText().substring(0, Math.min(this.inputField.getText().length(), this.inputField.getCursorPosition())); + String prefix = this.inputField.getValue().substring(0, Math.min(this.inputField.getValue().length(), this.inputField.getCursorPosition())); TabCompleteEvent event = new TabCompleteEvent(prefix); BaritoneAPI.getProvider().getPrimaryBaritone().getGameEventHandler().onPreTabComplete(event); @@ -80,9 +80,9 @@ public class MixinCommandSuggestionHelper { if (event.completions.length == 0) { this.suggestionsFuture = Suggestions.empty(); } else { - int offset = this.inputField.getText().endsWith(" ") + int offset = this.inputField.getValue().endsWith(" ") ? this.inputField.getCursorPosition() - : this.inputField.getText().lastIndexOf(" ") + 1; // If there is no space this is still 0 haha yes + : this.inputField.getValue().lastIndexOf(" ") + 1; // If there is no space this is still 0 haha yes List suggestionList = Stream.of(event.completions) .map(s -> new Suggestion(StringRange.between(offset, offset + s.length()), s)) diff --git a/src/launch/java/baritone/launch/mixins/MixinEntity.java b/src/launch/java/baritone/launch/mixins/MixinEntity.java index 9cd2a3c96..5e86039f3 100644 --- a/src/launch/java/baritone/launch/mixins/MixinEntity.java +++ b/src/launch/java/baritone/launch/mixins/MixinEntity.java @@ -19,8 +19,8 @@ package baritone.launch.mixins; import baritone.api.BaritoneAPI; import baritone.api.event.events.RotationMoveEvent; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.entity.Entity; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.entity.Entity; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -42,11 +42,11 @@ public class MixinEntity { private void moveRelativeHead(CallbackInfo info) { this.yawRestore = this.rotationYaw; // noinspection ConstantConditions - if (!ClientPlayerEntity.class.isInstance(this) || BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this) == null) { + if (!LocalPlayer.class.isInstance(this) || BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this) == null) { return; } RotationMoveEvent motionUpdateRotationEvent = new RotationMoveEvent(RotationMoveEvent.Type.MOTION_UPDATE, this.rotationYaw); - BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this).getGameEventHandler().onPlayerRotationMove(motionUpdateRotationEvent); + BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this).getGameEventHandler().onPlayerRotationMove(motionUpdateRotationEvent); this.rotationYaw = motionUpdateRotationEvent.getYaw(); } diff --git a/src/launch/java/baritone/launch/mixins/MixinEntityRenderManager.java b/src/launch/java/baritone/launch/mixins/MixinEntityRenderManager.java index d443095c6..32f85593e 100644 --- a/src/launch/java/baritone/launch/mixins/MixinEntityRenderManager.java +++ b/src/launch/java/baritone/launch/mixins/MixinEntityRenderManager.java @@ -18,25 +18,25 @@ package baritone.launch.mixins; import baritone.utils.accessor.IEntityRenderManager; -import net.minecraft.client.renderer.entity.EntityRendererManager; +import net.minecraft.client.renderer.entity.EntityRenderDispatcher; import org.spongepowered.asm.mixin.Mixin; -@Mixin(EntityRendererManager.class) +@Mixin(EntityRenderDispatcher.class) public class MixinEntityRenderManager implements IEntityRenderManager { @Override public double renderPosX() { - return ((EntityRendererManager) (Object) this).info.getProjectedView().x; + return ((EntityRenderDispatcher) (Object) this).camera.getPosition().x; } @Override public double renderPosY() { - return ((EntityRendererManager) (Object) this).info.getProjectedView().y; + return ((EntityRenderDispatcher) (Object) this).camera.getPosition().y; } @Override public double renderPosZ() { - return ((EntityRendererManager) (Object) this).info.getProjectedView().z; + return ((EntityRenderDispatcher) (Object) this).camera.getPosition().z; } } diff --git a/src/launch/java/baritone/launch/mixins/MixinItemStack.java b/src/launch/java/baritone/launch/mixins/MixinItemStack.java index dd6af902a..110196e90 100644 --- a/src/launch/java/baritone/launch/mixins/MixinItemStack.java +++ b/src/launch/java/baritone/launch/mixins/MixinItemStack.java @@ -18,8 +18,8 @@ package baritone.launch.mixins; import baritone.api.utils.accessor.IItemStack; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; diff --git a/src/launch/java/baritone/launch/mixins/MixinLivingEntity.java b/src/launch/java/baritone/launch/mixins/MixinLivingEntity.java index 41f4af731..363a36028 100644 --- a/src/launch/java/baritone/launch/mixins/MixinLivingEntity.java +++ b/src/launch/java/baritone/launch/mixins/MixinLivingEntity.java @@ -20,11 +20,11 @@ package baritone.launch.mixins; import baritone.api.BaritoneAPI; import baritone.api.IBaritone; import baritone.api.event.events.RotationMoveEvent; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.world.World; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -45,7 +45,7 @@ public abstract class MixinLivingEntity extends Entity { */ private RotationMoveEvent jumpRotationEvent; - public MixinLivingEntity(EntityType entityTypeIn, World worldIn) { + public MixinLivingEntity(EntityType entityTypeIn, Level worldIn) { super(entityTypeIn, worldIn); } @@ -55,10 +55,10 @@ public abstract class MixinLivingEntity extends Entity { ) private void preMoveRelative(CallbackInfo ci) { // noinspection ConstantConditions - if (ClientPlayerEntity.class.isInstance(this)) { - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this); + if (LocalPlayer.class.isInstance(this)) { + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); if (baritone != null) { - this.jumpRotationEvent = new RotationMoveEvent(RotationMoveEvent.Type.JUMP, this.rotationYaw); + this.jumpRotationEvent = new RotationMoveEvent(RotationMoveEvent.Type.JUMP, this.yRot); baritone.getGameEventHandler().onPlayerRotationMove(this.jumpRotationEvent); } } @@ -73,10 +73,10 @@ public abstract class MixinLivingEntity extends Entity { ) ) private float overrideYaw(LivingEntity self) { - if (self instanceof ClientPlayerEntity && BaritoneAPI.getProvider().getBaritoneForPlayer((ClientPlayerEntity) (Object) this) != null) { + if (self instanceof LocalPlayer && BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this) != null) { return this.jumpRotationEvent.getYaw(); } - return self.rotationYaw; + return self.yRot; } diff --git a/src/launch/java/baritone/launch/mixins/MixinLootContext.java b/src/launch/java/baritone/launch/mixins/MixinLootContext.java index 88b955173..64d890cf9 100644 --- a/src/launch/java/baritone/launch/mixins/MixinLootContext.java +++ b/src/launch/java/baritone/launch/mixins/MixinLootContext.java @@ -18,11 +18,11 @@ package baritone.launch.mixins; import baritone.api.utils.BlockOptionalMeta; -import net.minecraft.loot.LootContext; -import net.minecraft.loot.LootPredicateManager; -import net.minecraft.loot.LootTableManager; import net.minecraft.server.MinecraftServer; -import net.minecraft.world.server.ServerWorld; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.level.storage.loot.LootContext; +import net.minecraft.world.level.storage.loot.LootTables; +import net.minecraft.world.level.storage.loot.PredicateManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -37,7 +37,7 @@ public class MixinLootContext { target = "net/minecraft/world/server/ServerWorld.getServer()Lnet/minecraft/server/MinecraftServer;" ) ) - private MinecraftServer getServer(ServerWorld world) { + private MinecraftServer getServer(ServerLevel world) { if (world == null) { return null; } @@ -51,11 +51,11 @@ public class MixinLootContext { target = "net/minecraft/server/MinecraftServer.getLootTableManager()Lnet/minecraft/loot/LootTableManager;" ) ) - private LootTableManager getLootTableManager(MinecraftServer server) { + private LootTables getLootTableManager(MinecraftServer server) { if (server == null) { return BlockOptionalMeta.getManager(); } - return server.getLootTableManager(); + return server.getLootTables(); } @Redirect( @@ -65,10 +65,10 @@ public class MixinLootContext { target = "net/minecraft/server/MinecraftServer.func_229736_aP_()Lnet/minecraft/loot/LootPredicateManager;" ) ) - private LootPredicateManager getLootPredicateManager(MinecraftServer server) { + private PredicateManager getLootPredicateManager(MinecraftServer server) { if (server == null) { return BlockOptionalMeta.getPredicateManager(); } - return server.func_229736_aP_(); + return server.getPredicateManager(); } } diff --git a/src/launch/java/baritone/launch/mixins/MixinMinecraft.java b/src/launch/java/baritone/launch/mixins/MixinMinecraft.java index 9acdb614e..b1d2974ac 100644 --- a/src/launch/java/baritone/launch/mixins/MixinMinecraft.java +++ b/src/launch/java/baritone/launch/mixins/MixinMinecraft.java @@ -23,9 +23,9 @@ import baritone.api.event.events.TickEvent; import baritone.api.event.events.WorldEvent; import baritone.api.event.events.type.EventState; import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.world.ClientWorld; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.player.LocalPlayer; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -44,9 +44,9 @@ import java.util.function.BiFunction; public class MixinMinecraft { @Shadow - public ClientPlayerEntity player; + public LocalPlayer player; @Shadow - public ClientWorld world; + public ClientLevel world; @Inject( method = "", @@ -86,7 +86,7 @@ public class MixinMinecraft { method = "loadWorld(Lnet/minecraft/client/world/ClientWorld;)V", at = @At("HEAD") ) - private void preLoadWorld(ClientWorld world, CallbackInfo ci) { + private void preLoadWorld(ClientLevel world, CallbackInfo ci) { // If we're unloading the world but one doesn't exist, ignore it if (this.world == null && world == null) { return; @@ -106,7 +106,7 @@ public class MixinMinecraft { method = "loadWorld(Lnet/minecraft/client/world/ClientWorld;)V", at = @At("RETURN") ) - private void postLoadWorld(ClientWorld world, CallbackInfo ci) { + private void postLoadWorld(ClientLevel world, CallbackInfo ci) { // still fire event for both null, as that means we've just finished exiting a world // mc.world changing is only the primary baritone diff --git a/src/launch/java/baritone/launch/mixins/MixinNetworkManager.java b/src/launch/java/baritone/launch/mixins/MixinNetworkManager.java index dba5df7bd..29cebebab 100644 --- a/src/launch/java/baritone/launch/mixins/MixinNetworkManager.java +++ b/src/launch/java/baritone/launch/mixins/MixinNetworkManager.java @@ -25,9 +25,9 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.GenericFutureListener; -import net.minecraft.network.IPacket; -import net.minecraft.network.NetworkManager; -import net.minecraft.network.PacketDirection; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.PacketFlow; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -39,7 +39,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; * @author Brady * @since 8/6/2018 */ -@Mixin(NetworkManager.class) +@Mixin(Connection.class) public class MixinNetworkManager { @Shadow @@ -47,20 +47,20 @@ public class MixinNetworkManager { @Shadow @Final - private PacketDirection direction; + private PacketFlow direction; @Inject( method = "dispatchPacket", at = @At("HEAD") ) - private void preDispatchPacket(IPacket inPacket, final GenericFutureListener> futureListeners, CallbackInfo ci) { - if (this.direction != PacketDirection.CLIENTBOUND) { + private void preDispatchPacket(Packet inPacket, final GenericFutureListener> futureListeners, CallbackInfo ci) { + if (this.direction != PacketFlow.CLIENTBOUND) { return; } for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (NetworkManager) (Object) this) { - ibaritone.getGameEventHandler().onSendPacket(new PacketEvent((NetworkManager) (Object) this, EventState.PRE, inPacket)); + if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (Connection) (Object) this) { + ibaritone.getGameEventHandler().onSendPacket(new PacketEvent((Connection) (Object) this, EventState.PRE, inPacket)); } } } @@ -69,14 +69,14 @@ public class MixinNetworkManager { method = "dispatchPacket", at = @At("RETURN") ) - private void postDispatchPacket(IPacket inPacket, final GenericFutureListener> futureListeners, CallbackInfo ci) { - if (this.direction != PacketDirection.CLIENTBOUND) { + private void postDispatchPacket(Packet inPacket, final GenericFutureListener> futureListeners, CallbackInfo ci) { + if (this.direction != PacketFlow.CLIENTBOUND) { return; } for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (NetworkManager) (Object) this) { - ibaritone.getGameEventHandler().onSendPacket(new PacketEvent((NetworkManager) (Object) this, EventState.POST, inPacket)); + if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (Connection) (Object) this) { + ibaritone.getGameEventHandler().onSendPacket(new PacketEvent((Connection) (Object) this, EventState.POST, inPacket)); } } } @@ -88,13 +88,13 @@ public class MixinNetworkManager { target = "net/minecraft/network/NetworkManager.processPacket(Lnet/minecraft/network/IPacket;Lnet/minecraft/network/INetHandler;)V" ) ) - private void preProcessPacket(ChannelHandlerContext context, IPacket packet, CallbackInfo ci) { - if (this.direction != PacketDirection.CLIENTBOUND) { + private void preProcessPacket(ChannelHandlerContext context, Packet packet, CallbackInfo ci) { + if (this.direction != PacketFlow.CLIENTBOUND) { return; } for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (NetworkManager) (Object) this) { - ibaritone.getGameEventHandler().onReceivePacket(new PacketEvent((NetworkManager) (Object) this, EventState.PRE, packet)); + if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (Connection) (Object) this) { + ibaritone.getGameEventHandler().onReceivePacket(new PacketEvent((Connection) (Object) this, EventState.PRE, packet)); } } } @@ -103,13 +103,13 @@ public class MixinNetworkManager { method = "channelRead0", at = @At("RETURN") ) - private void postProcessPacket(ChannelHandlerContext context, IPacket packet, CallbackInfo ci) { - if (!this.channel.isOpen() || this.direction != PacketDirection.CLIENTBOUND) { + private void postProcessPacket(ChannelHandlerContext context, Packet packet, CallbackInfo ci) { + if (!this.channel.isOpen() || this.direction != PacketFlow.CLIENTBOUND) { return; } for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { - if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (NetworkManager) (Object) this) { - ibaritone.getGameEventHandler().onReceivePacket(new PacketEvent((NetworkManager) (Object) this, EventState.POST, packet)); + if (ibaritone.getPlayerContext().player() != null && ibaritone.getPlayerContext().player().connection.getNetworkManager() == (Connection) (Object) this) { + ibaritone.getGameEventHandler().onReceivePacket(new PacketEvent((Connection) (Object) this, EventState.POST, packet)); } } } diff --git a/src/launch/java/baritone/launch/mixins/MixinPlayerController.java b/src/launch/java/baritone/launch/mixins/MixinPlayerController.java index 071cbc9a9..18fdd4aec 100644 --- a/src/launch/java/baritone/launch/mixins/MixinPlayerController.java +++ b/src/launch/java/baritone/launch/mixins/MixinPlayerController.java @@ -18,13 +18,13 @@ package baritone.launch.mixins; import baritone.utils.accessor.IPlayerControllerMP; -import net.minecraft.client.multiplayer.PlayerController; -import net.minecraft.util.math.BlockPos; +import net.minecraft.client.multiplayer.MultiPlayerGameMode; +import net.minecraft.core.BlockPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; -@Mixin(PlayerController.class) +@Mixin(MultiPlayerGameMode.class) public abstract class MixinPlayerController implements IPlayerControllerMP { @Accessor diff --git a/src/launch/java/baritone/launch/mixins/MixinScreen.java b/src/launch/java/baritone/launch/mixins/MixinScreen.java index 8d5a801cd..0d7b3ee83 100644 --- a/src/launch/java/baritone/launch/mixins/MixinScreen.java +++ b/src/launch/java/baritone/launch/mixins/MixinScreen.java @@ -18,11 +18,11 @@ package baritone.launch.mixins; import baritone.utils.accessor.IGuiScreen; -import net.minecraft.client.gui.screen.Screen; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Invoker; import java.net.URI; +import net.minecraft.client.gui.screens.Screen; @Mixin(Screen.class) public abstract class MixinScreen implements IGuiScreen { diff --git a/src/launch/java/baritone/launch/mixins/MixinSodiumChunkProvider.java b/src/launch/java/baritone/launch/mixins/MixinSodiumChunkProvider.java index 70137423c..029c8cdaa 100644 --- a/src/launch/java/baritone/launch/mixins/MixinSodiumChunkProvider.java +++ b/src/launch/java/baritone/launch/mixins/MixinSodiumChunkProvider.java @@ -20,8 +20,6 @@ package baritone.launch.mixins; import baritone.utils.accessor.IChunkArray; import baritone.utils.accessor.IClientChunkProvider; import baritone.utils.accessor.ISodiumChunkArray; -import net.minecraft.client.multiplayer.ClientChunkProvider; -import net.minecraft.client.world.ClientWorld; import org.spongepowered.asm.mixin.*; import java.lang.reflect.Constructor; @@ -29,6 +27,8 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.Arrays; import java.util.concurrent.locks.StampedLock; +import net.minecraft.client.multiplayer.ClientChunkCache; +import net.minecraft.client.multiplayer.ClientLevel; @Pseudo @Mixin(targets = "me.jellysquid.mods.sodium.client.world.SodiumChunkManager", remap = false) @@ -40,7 +40,7 @@ public class MixinSodiumChunkProvider implements IClientChunkProvider { @Shadow @Final - private ClientWorld world; + private ClientLevel world; @Shadow private int radius; @@ -52,16 +52,16 @@ public class MixinSodiumChunkProvider implements IClientChunkProvider { private static Field chunkArrayField = null; @Override - public ClientChunkProvider createThreadSafeCopy() { + public ClientChunkCache createThreadSafeCopy() { // similar operation to https://github.com/jellysquid3/sodium-fabric/blob/d3528521d48a130322c910c6f0725cf365ebae6f/src/main/java/me/jellysquid/mods/sodium/client/world/SodiumChunkManager.java#L139 long stamp = this.lock.writeLock(); try { ISodiumChunkArray refArray = extractReferenceArray(); if (thisConstructor == null) { - thisConstructor = this.getClass().getConstructor(ClientWorld.class, int.class); + thisConstructor = this.getClass().getConstructor(ClientLevel.class, int.class); } - ClientChunkProvider result = (ClientChunkProvider) thisConstructor.newInstance(world, radius - 3); // -3 because it adds 3 for no reason here too lmao + ClientChunkCache result = (ClientChunkCache) thisConstructor.newInstance(world, radius - 3); // -3 because it adds 3 for no reason here too lmao IChunkArray copyArr = ((IClientChunkProvider) result).extractReferenceArray(); copyArr.copyFrom(refArray); return result; diff --git a/src/launch/java/baritone/launch/mixins/MixinSodiumFixedLongHashTable.java b/src/launch/java/baritone/launch/mixins/MixinSodiumFixedLongHashTable.java index 06e13b719..31443e77d 100644 --- a/src/launch/java/baritone/launch/mixins/MixinSodiumFixedLongHashTable.java +++ b/src/launch/java/baritone/launch/mixins/MixinSodiumFixedLongHashTable.java @@ -21,12 +21,12 @@ import baritone.utils.accessor.IChunkArray; import baritone.utils.accessor.ISodiumChunkArray; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.objects.ObjectIterator; -import net.minecraft.world.chunk.Chunk; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; import org.spongepowered.asm.mixin.Shadow; import java.util.concurrent.atomic.AtomicReferenceArray; +import net.minecraft.world.level.chunk.LevelChunk; @Pseudo @Mixin(targets = "me.jellysquid.mods.sodium.client.util.collections.FixedLongHashTable", remap = false) @@ -58,7 +58,7 @@ public abstract class MixinSodiumFixedLongHashTable implements ISodiumChunkArray //these are useless here... @Override - public AtomicReferenceArray getChunks() { + public AtomicReferenceArray getChunks() { return null; } diff --git a/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java b/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java index dc98804ef..34dbc9174 100644 --- a/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java +++ b/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java @@ -20,12 +20,12 @@ package baritone.launch.mixins; import baritone.api.BaritoneAPI; import baritone.api.IBaritone; import baritone.api.event.events.RenderEvent; -import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.client.renderer.ActiveRenderInfo; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Matrix4f; +import net.minecraft.client.Camera; import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.WorldRenderer; -import net.minecraft.util.math.vector.Matrix4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -36,7 +36,7 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; * @author Brady * @since 2/13/2020 */ -@Mixin(WorldRenderer.class) +@Mixin(LevelRenderer.class) public class MixinWorldRenderer { @Inject( @@ -44,7 +44,7 @@ public class MixinWorldRenderer { at = @At("RETURN"), locals = LocalCapture.CAPTURE_FAILSOFT ) - private void onStartHand(MatrixStack matrixStackIn, float partialTicks, long finishTimeNano, boolean drawBlockOutline, ActiveRenderInfo activeRenderInfoIn, GameRenderer gameRendererIn, LightTexture lightmapIn, Matrix4f projectionIn, CallbackInfo ci) { + private void onStartHand(PoseStack matrixStackIn, float partialTicks, long finishTimeNano, boolean drawBlockOutline, Camera activeRenderInfoIn, GameRenderer gameRendererIn, LightTexture lightmapIn, Matrix4f projectionIn, CallbackInfo ci) { for (IBaritone ibaritone : BaritoneAPI.getProvider().getAllBaritones()) { ibaritone.getGameEventHandler().onRenderPass(new RenderEvent(partialTicks, matrixStackIn, projectionIn)); } diff --git a/src/main/java/baritone/Baritone.java b/src/main/java/baritone/Baritone.java index f7b44556c..2af9086e7 100755 --- a/src/main/java/baritone/Baritone.java +++ b/src/main/java/baritone/Baritone.java @@ -56,7 +56,7 @@ public class Baritone implements IBaritone { static { threadPool = new ThreadPoolExecutor(4, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<>()); - dir = new File(Minecraft.getInstance().gameDir, "baritone"); + dir = new File(Minecraft.getInstance().gameDirectory, "baritone"); if (!Files.exists(dir.toPath())) { try { Files.createDirectories(dir.toPath()); diff --git a/src/main/java/baritone/behavior/InventoryBehavior.java b/src/main/java/baritone/behavior/InventoryBehavior.java index 8a0054628..9dc47d12b 100644 --- a/src/main/java/baritone/behavior/InventoryBehavior.java +++ b/src/main/java/baritone/behavior/InventoryBehavior.java @@ -20,18 +20,24 @@ package baritone.behavior; import baritone.Baritone; import baritone.api.event.events.TickEvent; import baritone.utils.ToolSet; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.inventory.container.ClickType; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.Direction; +import net.minecraft.core.NonNullList; import net.minecraft.item.*; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.NonNullList; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.vector.Vector3d; - +import net.minecraft.world.InteractionHand; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.DiggerItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.PickaxeItem; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; import java.util.OptionalInt; import java.util.Random; @@ -106,7 +112,7 @@ public final class InventoryBehavior extends Behavior { return -1; } - private int bestToolAgainst(Block against, Class cla$$) { + private int bestToolAgainst(Block against, Class cla$$) { NonNullList invy = ctx.player().inventory.mainInventory; int bestInd = -1; double bestSpeed = -1; @@ -116,7 +122,7 @@ public final class InventoryBehavior extends Behavior { continue; } if (cla$$.isInstance(stack.getItem())) { - double speed = ToolSet.calculateSpeedVsBlock(stack, against.getDefaultState()); // takes into account enchants + double speed = ToolSet.calculateSpeedVsBlock(stack, against.defaultBlockState()); // takes into account enchants if (speed > bestSpeed) { bestSpeed = speed; bestInd = i; @@ -137,7 +143,7 @@ public final class InventoryBehavior extends Behavior { public boolean selectThrowawayForLocation(boolean select, int x, int y, int z) { BlockState maybe = baritone.getBuilderProcess().placeAt(x, y, z, baritone.bsi.get0(x, y, z)); - if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && maybe.equals(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockItemUseContext(new ItemUseContext(ctx.world(), ctx.player(), Hand.MAIN_HAND, stack, new BlockRayTraceResult(new Vector3d(ctx.player().getPositionVec().x, ctx.player().getPositionVec().y, ctx.player().getPositionVec().z), Direction.UP, ctx.playerFeet(), false)) {}))))) { + if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && maybe.equals(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockPlaceContext(new UseOnContext(ctx.world(), ctx.player(), InteractionHand.MAIN_HAND, stack, new BlockHitResult(new Vec3(ctx.player().getPositionVec().x, ctx.player().getPositionVec().y, ctx.player().getPositionVec().z), Direction.UP, ctx.playerFeet(), false)) {}))))) { return true; // gotem } if (maybe != null && throwaway(select, stack -> stack.getItem() instanceof BlockItem && ((BlockItem) stack.getItem()).getBlock().equals(maybe.getBlock()))) { @@ -152,8 +158,8 @@ public final class InventoryBehavior extends Behavior { } public boolean throwaway(boolean select, Predicate desired) { - ClientPlayerEntity p = ctx.player(); - NonNullList inv = p.inventory.mainInventory; + LocalPlayer p = ctx.player(); + NonNullList inv = p.inventory.items; for (int i = 0; i < 9; i++) { ItemStack item = inv.get(i); // this usage of settings() is okay because it's only called once during pathing @@ -163,12 +169,12 @@ public final class InventoryBehavior extends Behavior { // acceptableThrowawayItems to the CalculationContext if (desired.test(item)) { if (select) { - p.inventory.currentItem = i; + p.inventory.selected = i; } return true; } } - if (desired.test(p.inventory.offHandInventory.get(0))) { + if (desired.test(p.inventory.offhand.get(0))) { // main hand takes precedence over off hand // that means that if we have block A selected in main hand and block B in off hand, right clicking places block B // we've already checked above ^ and the main hand can't possible have an acceptablethrowawayitem @@ -178,7 +184,7 @@ public final class InventoryBehavior extends Behavior { ItemStack item = inv.get(i); if (item.isEmpty() || item.getItem() instanceof PickaxeItem) { if (select) { - p.inventory.currentItem = i; + p.inventory.selected = i; } return true; } diff --git a/src/main/java/baritone/behavior/MemoryBehavior.java b/src/main/java/baritone/behavior/MemoryBehavior.java index de1dace42..48b9cdbb3 100644 --- a/src/main/java/baritone/behavior/MemoryBehavior.java +++ b/src/main/java/baritone/behavior/MemoryBehavior.java @@ -23,9 +23,6 @@ import baritone.api.event.events.BlockInteractEvent; import baritone.api.utils.BetterBlockPos; import baritone.cache.ContainerMemory; import baritone.utils.BlockStateInterface; -import net.minecraft.block.BedBlock; -import net.minecraft.item.ItemStack; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -33,6 +30,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.BedBlock; /** diff --git a/src/main/java/baritone/behavior/PathingBehavior.java b/src/main/java/baritone/behavior/PathingBehavior.java index 8db5a7416..1c089df57 100644 --- a/src/main/java/baritone/behavior/PathingBehavior.java +++ b/src/main/java/baritone/behavior/PathingBehavior.java @@ -36,13 +36,12 @@ import baritone.pathing.path.PathExecutor; import baritone.utils.PathRenderer; import baritone.utils.PathingCommandContext; import baritone.utils.pathing.Favoring; -import net.minecraft.util.math.BlockPos; - 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 { diff --git a/src/main/java/baritone/cache/CachedChunk.java b/src/main/java/baritone/cache/CachedChunk.java index 556a7e3c4..2e9aba140 100644 --- a/src/main/java/baritone/cache/CachedChunk.java +++ b/src/main/java/baritone/cache/CachedChunk.java @@ -21,17 +21,16 @@ import baritone.api.utils.BlockUtils; import baritone.utils.pathing.PathingBlockType; import com.google.common.collect.ImmutableSet; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - import java.util.ArrayList; import java.util.BitSet; import java.util.List; import java.util.Map; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; /** * @author Brady @@ -180,7 +179,7 @@ public final class CachedChunk { } } - public final BlockState getBlock(int x, int y, int z, RegistryKey dimension) { + public final BlockState getBlock(int x, int y, int z, ResourceKey dimension) { int index = getPositionIndex(x, y, z); PathingBlockType type = getType(index); int internalPos = z << 4 | x; @@ -202,15 +201,15 @@ public final class CachedChunk { } if (type == PathingBlockType.SOLID) { - if (y == 127 && dimension == World.THE_NETHER) { + if (y == 127 && dimension == Level.NETHER) { // nether roof is always unbreakable - return Blocks.BEDROCK.getDefaultState(); + return Blocks.BEDROCK.defaultBlockState(); } - if (y < 5 && dimension == World.OVERWORLD) { + if (y < 5 && dimension == Level.OVERWORLD) { // solid blocks below 5 are commonly bedrock // however, returning bedrock always would be a little yikes // discourage paths that include breaking blocks below 5 a little more heavily just so that it takes paths breaking what's known to be stone (at 5 or above) instead of what could maybe be bedrock (below 5) - return Blocks.OBSIDIAN.getDefaultState(); + return Blocks.OBSIDIAN.defaultBlockState(); } } return ChunkPacker.pathingTypeToBlock(type, dimension); diff --git a/src/main/java/baritone/cache/CachedRegion.java b/src/main/java/baritone/cache/CachedRegion.java index bdbe43a6e..4e8597fbc 100644 --- a/src/main/java/baritone/cache/CachedRegion.java +++ b/src/main/java/baritone/cache/CachedRegion.java @@ -20,11 +20,6 @@ package baritone.cache; import baritone.Baritone; import baritone.api.cache.ICachedRegion; import baritone.api.utils.BlockUtils; -import net.minecraft.block.BlockState; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - import java.io.*; import java.nio.file.Files; import java.nio.file.Path; @@ -32,6 +27,10 @@ import java.nio.file.Paths; import java.util.*; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; /** * @author Brady @@ -62,14 +61,14 @@ public final class CachedRegion implements ICachedRegion { */ private final int z; - private final RegistryKey dimension; + private final ResourceKey dimension; /** * Has this region been modified since its most recent load or save */ private boolean hasUnsavedChanges; - CachedRegion(int x, int z, RegistryKey dimension) { + CachedRegion(int x, int z, ResourceKey dimension) { this.x = x; this.z = z; this.hasUnsavedChanges = false; diff --git a/src/main/java/baritone/cache/CachedWorld.java b/src/main/java/baritone/cache/CachedWorld.java index 20f554e6c..4d9ff16df 100644 --- a/src/main/java/baritone/cache/CachedWorld.java +++ b/src/main/java/baritone/cache/CachedWorld.java @@ -25,12 +25,6 @@ import baritone.api.cache.IWorldData; import baritone.api.utils.Helper; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; @@ -39,6 +33,11 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingQueue; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.chunk.LevelChunk; /** * @author Brady @@ -71,11 +70,11 @@ public final class CachedWorld implements ICachedWorld, Helper { * All chunk positions pending packing. This map will be updated in-place if a new update to the chunk occurs * while waiting in the queue for the packer thread to get to it. */ - private final Map toPackMap = new ConcurrentHashMap<>(); + private final Map toPackMap = new ConcurrentHashMap<>(); - private final RegistryKey dimension; + private final ResourceKey dimension; - CachedWorld(Path directory, RegistryKey dimension) { + CachedWorld(Path directory, ResourceKey dimension) { if (!Files.exists(directory)) { try { Files.createDirectories(directory); @@ -103,7 +102,7 @@ public final class CachedWorld implements ICachedWorld, Helper { } @Override - public final void queueForPacking(Chunk chunk) { + public final void queueForPacking(LevelChunk chunk) { if (toPackMap.put(chunk.getPos(), chunk) == null) { toPackQueue.add(chunk.getPos()); } @@ -308,7 +307,7 @@ public final class CachedWorld implements ICachedWorld, Helper { while (true) { try { ChunkPos pos = toPackQueue.take(); - Chunk chunk = toPackMap.remove(pos); + LevelChunk chunk = toPackMap.remove(pos); CachedChunk cached = ChunkPacker.pack(chunk); CachedWorld.this.updateCachedChunk(cached); //System.out.println("Processed chunk at " + chunk.x + "," + chunk.z); diff --git a/src/main/java/baritone/cache/ChunkPacker.java b/src/main/java/baritone/cache/ChunkPacker.java index 4791ad781..12507ffcb 100644 --- a/src/main/java/baritone/cache/ChunkPacker.java +++ b/src/main/java/baritone/cache/ChunkPacker.java @@ -21,14 +21,20 @@ import baritone.api.utils.BlockUtils; import baritone.pathing.movement.MovementHelper; import baritone.utils.pathing.PathingBlockType; import net.minecraft.block.*; -import net.minecraft.util.RegistryKey; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.palette.PalettedContainer; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.ChunkSection; - +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.DoublePlantBlock; +import net.minecraft.world.level.block.FlowerBlock; +import net.minecraft.world.level.block.TallGrassBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.world.level.chunk.LevelChunkSection; +import net.minecraft.world.level.chunk.PalettedContainer; +import net.minecraft.world.phys.Vec3; import java.util.*; import static baritone.utils.BlockStateInterface.getFromChunk; @@ -41,15 +47,15 @@ public final class ChunkPacker { private ChunkPacker() {} - public static CachedChunk pack(Chunk chunk) { + public static CachedChunk pack(LevelChunk chunk) { //long start = System.nanoTime() / 1000000L; Map> specialBlocks = new HashMap<>(); BitSet bitSet = new BitSet(CachedChunk.SIZE); try { - ChunkSection[] chunkInternalStorageArray = chunk.getSections(); + LevelChunkSection[] chunkInternalStorageArray = chunk.getSections(); for (int y0 = 0; y0 < 16; y0++) { - ChunkSection extendedblockstorage = chunkInternalStorageArray[y0]; + LevelChunkSection extendedblockstorage = chunkInternalStorageArray[y0]; if (extendedblockstorage == null) { // any 16x16x16 area that's all air will have null storage // for example, in an ocean biome, with air from y=64 to y=256 @@ -61,7 +67,7 @@ public final class ChunkPacker { // since a bitset is initialized to all zero, and air is saved as zeros continue; } - PalettedContainer bsc = extendedblockstorage.getData(); + PalettedContainer bsc = extendedblockstorage.getStates(); int yReal = y0 << 4; // the mapping of BlockStateContainer.getIndex from xyz to index is y << 8 | z << 4 | x; // for better cache locality, iterate in that order @@ -101,14 +107,14 @@ public final class ChunkPacker { continue https; } } - blocks[z << 4 | x] = Blocks.AIR.getDefaultState(); + blocks[z << 4 | x] = Blocks.AIR.defaultBlockState(); } } // @formatter:on return new CachedChunk(chunk.getPos().x, chunk.getPos().z, bitSet, blocks, specialBlocks, System.currentTimeMillis()); } - private static PathingBlockType getPathingBlockType(BlockState state, Chunk chunk, int x, int y, int z) { + private static PathingBlockType getPathingBlockType(BlockState state, LevelChunk chunk, int x, int y, int z) { Block block = state.getBlock(); if (MovementHelper.isWater(state)) { // only water source blocks are plausibly usable, flowing water should be avoid @@ -125,7 +131,7 @@ public final class ChunkPacker { return PathingBlockType.AVOID; } if (x == 0 || x == 15 || z == 0 || z == 15) { - Vector3d flow = state.getFluidState().getFlow(chunk.getWorld(), new BlockPos(x + chunk.getPos().x << 4, y, z + chunk.getPos().z << 4)); + Vec3 flow = state.getFluidState().getFlow(chunk.getLevel(), new BlockPos(x + chunk.getPos().x << 4, y, z + chunk.getPos().z << 4)); if (flow.x != 0.0 || flow.z != 0.0) { return PathingBlockType.WATER; } @@ -148,24 +154,24 @@ public final class ChunkPacker { return PathingBlockType.SOLID; } - public static BlockState pathingTypeToBlock(PathingBlockType type, RegistryKey dimension) { + public static BlockState pathingTypeToBlock(PathingBlockType type, ResourceKey dimension) { switch (type) { case AIR: - return Blocks.AIR.getDefaultState(); + return Blocks.AIR.defaultBlockState(); case WATER: - return Blocks.WATER.getDefaultState(); + return Blocks.WATER.defaultBlockState(); case AVOID: - return Blocks.LAVA.getDefaultState(); + return Blocks.LAVA.defaultBlockState(); case SOLID: // Dimension solid types - if (dimension == World.OVERWORLD) { - return Blocks.STONE.getDefaultState(); + if (dimension == Level.OVERWORLD) { + return Blocks.STONE.defaultBlockState(); } - if (dimension == World.THE_NETHER) { - return Blocks.NETHERRACK.getDefaultState(); + if (dimension == Level.NETHER) { + return Blocks.NETHERRACK.defaultBlockState(); } - if (dimension == World.THE_END) { - return Blocks.END_STONE.getDefaultState(); + if (dimension == Level.END) { + return Blocks.END_STONE.defaultBlockState(); } default: return null; diff --git a/src/main/java/baritone/cache/ContainerMemory.java b/src/main/java/baritone/cache/ContainerMemory.java index e79435e3a..0fa1b8f2f 100644 --- a/src/main/java/baritone/cache/ContainerMemory.java +++ b/src/main/java/baritone/cache/ContainerMemory.java @@ -23,15 +23,14 @@ import baritone.api.cache.IRememberedInventory; import baritone.api.utils.IPlayerContext; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import net.minecraft.item.ItemStack; -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.math.BlockPos; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.nio.file.Path; import java.util.*; +import net.minecraft.core.BlockPos; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.world.item.ItemStack; public class ContainerMemory implements IContainerMemory { @@ -55,7 +54,7 @@ public class ContainerMemory implements IContainerMemory { } private void read(byte[] bytes) throws IOException { - PacketBuffer in = new PacketBuffer(Unpooled.wrappedBuffer(bytes)); + FriendlyByteBuf in = new FriendlyByteBuf(Unpooled.wrappedBuffer(bytes)); int chests = in.readInt(); for (int i = 0; i < chests; i++) { int x = in.readInt(); @@ -77,12 +76,12 @@ public class ContainerMemory implements IContainerMemory { return; } ByteBuf buf = Unpooled.buffer(0, Integer.MAX_VALUE); - PacketBuffer out = new PacketBuffer(buf); + FriendlyByteBuf out = new FriendlyByteBuf(buf); out.writeInt(inventories.size()); for (Map.Entry entry : inventories.entrySet()) { - out = new PacketBuffer(out.writeInt(entry.getKey().getX())); - out = new PacketBuffer(out.writeInt(entry.getKey().getY())); - out = new PacketBuffer(out.writeInt(entry.getKey().getZ())); + out = new FriendlyByteBuf(out.writeInt(entry.getKey().getX())); + out = new FriendlyByteBuf(out.writeInt(entry.getKey().getY())); + out = new FriendlyByteBuf(out.writeInt(entry.getKey().getZ())); out = writeItemStacks(entry.getValue().getContents(), out); } Files.write(saveTo, out.array()); @@ -110,31 +109,31 @@ public class ContainerMemory implements IContainerMemory { } public static List readItemStacks(byte[] bytes) throws IOException { - PacketBuffer in = new PacketBuffer(Unpooled.wrappedBuffer(bytes)); + FriendlyByteBuf in = new FriendlyByteBuf(Unpooled.wrappedBuffer(bytes)); return readItemStacks(in); } - public static List readItemStacks(PacketBuffer in) throws IOException { + public static List readItemStacks(FriendlyByteBuf in) throws IOException { int count = in.readInt(); List result = new ArrayList<>(); for (int i = 0; i < count; i++) { - result.add(in.readItemStack()); + result.add(in.readItem()); } return result; } public static byte[] writeItemStacks(List write) { ByteBuf buf = Unpooled.buffer(0, Integer.MAX_VALUE); - PacketBuffer out = new PacketBuffer(buf); + FriendlyByteBuf out = new FriendlyByteBuf(buf); out = writeItemStacks(write, out); return out.array(); } - public static PacketBuffer writeItemStacks(List write, PacketBuffer out2) { - PacketBuffer out = out2; // avoid reassigning an argument LOL - out = new PacketBuffer(out.writeInt(write.size())); + public static FriendlyByteBuf writeItemStacks(List write, FriendlyByteBuf out2) { + FriendlyByteBuf out = out2; // avoid reassigning an argument LOL + out = new FriendlyByteBuf(out.writeInt(write.size())); for (ItemStack stack : write) { - out = out.writeItemStack(stack); + out = out.writeItem(stack); } return out; } diff --git a/src/main/java/baritone/cache/WorldData.java b/src/main/java/baritone/cache/WorldData.java index 29d321017..31b1964b0 100644 --- a/src/main/java/baritone/cache/WorldData.java +++ b/src/main/java/baritone/cache/WorldData.java @@ -22,11 +22,10 @@ import baritone.api.cache.ICachedWorld; import baritone.api.cache.IContainerMemory; import baritone.api.cache.IWaypointCollection; import baritone.api.cache.IWorldData; -import net.minecraft.util.RegistryKey; -import net.minecraft.world.World; - import java.io.IOException; import java.nio.file.Path; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.Level; /** * Data about a world, from baritone's point of view. Includes cached chunks, waypoints, and map data. @@ -40,9 +39,9 @@ public class WorldData implements IWorldData { private final ContainerMemory containerMemory; //public final MapData map; public final Path directory; - public final RegistryKey dimension; + public final ResourceKey dimension; - WorldData(Path directory, RegistryKey dimension) { + WorldData(Path directory, ResourceKey dimension) { this.directory = directory; this.cache = new CachedWorld(directory.resolve("cache"), dimension); this.waypoints = new WaypointCollection(directory.resolve("waypoints")); diff --git a/src/main/java/baritone/cache/WorldProvider.java b/src/main/java/baritone/cache/WorldProvider.java index b4e43964d..221ca4a51 100644 --- a/src/main/java/baritone/cache/WorldProvider.java +++ b/src/main/java/baritone/cache/WorldProvider.java @@ -20,11 +20,6 @@ package baritone.cache; import baritone.Baritone; import baritone.api.cache.IWorldProvider; import baritone.api.utils.Helper; -import net.minecraft.server.integrated.IntegratedServer; -import net.minecraft.util.RegistryKey; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; -import net.minecraft.world.storage.FolderName; import org.apache.commons.lang3.SystemUtils; import java.io.File; @@ -35,6 +30,11 @@ import java.nio.file.Path; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; +import net.minecraft.client.server.IntegratedServer; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.level.storage.LevelResource; /** * @author Brady @@ -56,7 +56,7 @@ public class WorldProvider implements IWorldProvider, Helper { * * @param world The world's Registry Data */ - public final void initWorld(RegistryKey world) { + public final void initWorld(ResourceKey world) { File directory; File readme; @@ -64,7 +64,7 @@ public class WorldProvider implements IWorldProvider, Helper { // If there is an integrated server running (Aka Singleplayer) then do magic to find the world save file if (mc.isSingleplayer()) { - directory = DimensionType.getDimensionFolder(world, integratedServer.func_240776_a_(FolderName.DOT).toFile()); + directory = DimensionType.getStorageFolder(world, integratedServer.getWorldPath(LevelResource.ROOT).toFile()); // Gets the "depth" of this directory relative the the game's run directory, 2 is the location of the world if (directory.toPath().relativize(mc.gameDir.toPath()).getNameCount() != 2) { @@ -90,7 +90,7 @@ public class WorldProvider implements IWorldProvider, Helper { } catch (IOException ignored) {} // We will actually store the world data in a subfolder: "DIM" - Path dir = DimensionType.getDimensionFolder(world, directory).toPath(); + Path dir = DimensionType.getStorageFolder(world, directory).toPath(); if (!Files.exists(dir)) { try { Files.createDirectories(dir); diff --git a/src/main/java/baritone/cache/WorldScanner.java b/src/main/java/baritone/cache/WorldScanner.java index 402e4844b..3459f086d 100644 --- a/src/main/java/baritone/cache/WorldScanner.java +++ b/src/main/java/baritone/cache/WorldScanner.java @@ -22,17 +22,16 @@ import baritone.api.cache.IWorldScanner; import baritone.api.utils.BetterBlockPos; import baritone.api.utils.BlockOptionalMetaLookup; import baritone.api.utils.IPlayerContext; -import net.minecraft.block.BlockState; -import net.minecraft.client.multiplayer.ClientChunkProvider; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.palette.PalettedContainer; -import net.minecraft.world.chunk.AbstractChunkProvider; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.ChunkSection; - import java.util.*; import java.util.stream.IntStream; +import net.minecraft.client.multiplayer.ClientChunkCache; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkSource; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.world.level.chunk.LevelChunkSection; +import net.minecraft.world.level.chunk.PalettedContainer; public enum WorldScanner implements IWorldScanner { @@ -47,7 +46,7 @@ public enum WorldScanner implements IWorldScanner { if (filter.blocks().isEmpty()) { return res; } - ClientChunkProvider chunkProvider = (ClientChunkProvider) ctx.world().getChunkProvider(); + ClientChunkCache chunkProvider = (ClientChunkCache) ctx.world().getChunkProvider(); int maxSearchRadiusSq = maxSearchRadius * maxSearchRadius; int playerChunkX = ctx.playerFeet().getX() >> 4; @@ -71,7 +70,7 @@ public enum WorldScanner implements IWorldScanner { foundChunks = true; int chunkX = xoff + playerChunkX; int chunkZ = zoff + playerChunkZ; - Chunk chunk = chunkProvider.getChunk(chunkX, chunkZ, null, false); + LevelChunk chunk = chunkProvider.getChunk(chunkX, chunkZ, null, false); if (chunk == null) { continue; } @@ -97,8 +96,8 @@ public enum WorldScanner implements IWorldScanner { return Collections.emptyList(); } - ClientChunkProvider chunkProvider = (ClientChunkProvider) ctx.world().getChunkProvider(); - Chunk chunk = chunkProvider.getChunk(pos.x, pos.z, null, false); + ClientChunkCache chunkProvider = (ClientChunkCache) ctx.world().getChunkProvider(); + LevelChunk chunk = chunkProvider.getChunk(pos.x, pos.z, null, false); int playerY = ctx.playerFeet().getY(); if (chunk == null || chunk.isEmpty()) { @@ -117,7 +116,7 @@ public enum WorldScanner implements IWorldScanner { @Override public int repack(IPlayerContext ctx, int range) { - AbstractChunkProvider chunkProvider = ctx.world().getChunkProvider(); + ChunkSource chunkProvider = ctx.world().getChunkProvider(); ICachedWorld cachedWorld = ctx.worldData().getCachedWorld(); BetterBlockPos playerPos = ctx.playerFeet(); @@ -133,7 +132,7 @@ public enum WorldScanner implements IWorldScanner { int queued = 0; for (int x = minX; x <= maxX; x++) { for (int z = minZ; z <= maxZ; z++) { - Chunk chunk = chunkProvider.getChunk(x, z, false); + LevelChunk chunk = chunkProvider.getChunk(x, z, false); if (chunk != null && !chunk.isEmpty()) { queued++; @@ -145,17 +144,17 @@ public enum WorldScanner implements IWorldScanner { return queued; } - private boolean scanChunkInto(int chunkX, int chunkZ, Chunk chunk, BlockOptionalMetaLookup filter, Collection result, int max, int yLevelThreshold, int playerY, int[] coordinateIterationOrder) { - ChunkSection[] chunkInternalStorageArray = chunk.getSections(); + private boolean scanChunkInto(int chunkX, int chunkZ, LevelChunk chunk, BlockOptionalMetaLookup filter, Collection result, int max, int yLevelThreshold, int playerY, int[] coordinateIterationOrder) { + LevelChunkSection[] chunkInternalStorageArray = chunk.getSections(); boolean foundWithinY = false; for (int yIndex = 0; yIndex < 16; yIndex++) { int y0 = coordinateIterationOrder[yIndex]; - ChunkSection section = chunkInternalStorageArray[y0]; - if (section == null || ChunkSection.isEmpty(section)) { + LevelChunkSection section = chunkInternalStorageArray[y0]; + if (section == null || LevelChunkSection.isEmpty(section)) { continue; } int yReal = y0 << 4; - PalettedContainer bsc = section.getData(); + PalettedContainer bsc = section.getStates(); for (int yy = 0; yy < 16; yy++) { for (int z = 0; z < 16; z++) { for (int x = 0; x < 16; x++) { diff --git a/src/main/java/baritone/command/ExampleBaritoneControl.java b/src/main/java/baritone/command/ExampleBaritoneControl.java index ed25d789b..81ea02e50 100644 --- a/src/main/java/baritone/command/ExampleBaritoneControl.java +++ b/src/main/java/baritone/command/ExampleBaritoneControl.java @@ -34,13 +34,12 @@ import baritone.command.argument.ArgConsumer; import baritone.command.argument.CommandArguments; import baritone.command.manager.CommandManager; import baritone.utils.accessor.IGuiScreen; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.TextComponent; import net.minecraft.util.Tuple; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.event.ClickEvent; -import net.minecraft.util.text.event.HoverEvent; - import java.net.URI; import java.net.URISyntaxException; import java.util.List; @@ -79,14 +78,14 @@ public class ExampleBaritoneControl implements Helper, AbstractGameEventListener if (settings.echoCommands.value) { String msg = command + rest; String toDisplay = settings.censorRanCommands.value ? command + " ..." : msg; - TextComponent component = new StringTextComponent(String.format("> %s", toDisplay)); + BaseComponent component = new TextComponent(String.format("> %s", toDisplay)); component.setStyle(component.getStyle() - .setFormatting(TextFormatting.WHITE) - .setHoverEvent(new HoverEvent( + .withColor(ChatFormatting.WHITE) + .withHoverEvent(new HoverEvent( HoverEvent.Action.SHOW_TEXT, - new StringTextComponent("Click to rerun command") + new TextComponent("Click to rerun command") )) - .setClickEvent(new ClickEvent( + .withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, FORCE_COMMAND_PREFIX + msg ))); diff --git a/src/main/java/baritone/command/defaults/ChestsCommand.java b/src/main/java/baritone/command/defaults/ChestsCommand.java index 88ea32f42..f1b7c733d 100644 --- a/src/main/java/baritone/command/defaults/ChestsCommand.java +++ b/src/main/java/baritone/command/defaults/ChestsCommand.java @@ -24,15 +24,14 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.exception.CommandException; import baritone.api.command.exception.CommandInvalidStateException; import baritone.api.utils.BetterBlockPos; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.text.IFormattableTextComponent; - import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; import java.util.stream.Stream; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.world.item.ItemStack; public class ChestsCommand extends Command { @@ -54,8 +53,8 @@ public class ChestsCommand extends Command { IRememberedInventory inv = entry.getValue(); logDirect(pos.toString()); for (ItemStack item : inv.getContents()) { - IFormattableTextComponent component = (IFormattableTextComponent) item.getTextComponent(); - component.appendString(String.format(" x %d", item.getCount())); + MutableComponent component = (MutableComponent) item.getDisplayName(); + component.append(String.format(" x %d", item.getCount())); logDirect(component); } } diff --git a/src/main/java/baritone/command/defaults/ComeCommand.java b/src/main/java/baritone/command/defaults/ComeCommand.java index 5a76c0296..eb06e4ff0 100644 --- a/src/main/java/baritone/command/defaults/ComeCommand.java +++ b/src/main/java/baritone/command/defaults/ComeCommand.java @@ -23,11 +23,10 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.exception.CommandException; import baritone.api.command.exception.CommandInvalidStateException; import baritone.api.pathing.goals.GoalBlock; -import net.minecraft.entity.Entity; - import java.util.Arrays; import java.util.List; import java.util.stream.Stream; +import net.minecraft.world.entity.Entity; public class ComeCommand extends Command { @@ -42,7 +41,7 @@ public class ComeCommand extends Command { if (entity == null) { throw new CommandInvalidStateException("render view entity is null"); } - baritone.getCustomGoalProcess().setGoalAndPath(new GoalBlock(entity.getPosition())); + baritone.getCustomGoalProcess().setGoalAndPath(new GoalBlock(entity.blockPosition())); logDirect("Coming"); } diff --git a/src/main/java/baritone/command/defaults/FindCommand.java b/src/main/java/baritone/command/defaults/FindCommand.java index a415b9b15..d5b62b4dc 100644 --- a/src/main/java/baritone/command/defaults/FindCommand.java +++ b/src/main/java/baritone/command/defaults/FindCommand.java @@ -23,13 +23,12 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.datatypes.BlockById; import baritone.api.command.exception.CommandException; import baritone.api.utils.BetterBlockPos; -import net.minecraft.block.Block; -import net.minecraft.util.registry.Registry; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; +import net.minecraft.core.Registry; +import net.minecraft.world.level.block.Block; public class FindCommand extends Command { diff --git a/src/main/java/baritone/command/defaults/FollowCommand.java b/src/main/java/baritone/command/defaults/FollowCommand.java index 50844165e..2c797449d 100644 --- a/src/main/java/baritone/command/defaults/FollowCommand.java +++ b/src/main/java/baritone/command/defaults/FollowCommand.java @@ -26,16 +26,15 @@ import baritone.api.command.datatypes.IDatatypeFor; import baritone.api.command.datatypes.NearbyPlayer; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import net.minecraft.entity.Entity; -import net.minecraft.entity.EntityType; -import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; - import java.util.*; import java.util.function.Predicate; import java.util.stream.Stream; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; public class FollowCommand extends Command { @@ -136,7 +135,7 @@ public class FollowCommand extends Command { @KeepName private enum FollowGroup { ENTITIES(LivingEntity.class::isInstance), - PLAYERS(PlayerEntity.class::isInstance); /* , + PLAYERS(Player.class::isInstance); /* , FRIENDLY(entity -> entity.getAttackTarget() != HELPER.mc.player), HOSTILE(FRIENDLY.filter.negate()); */ final Predicate filter; diff --git a/src/main/java/baritone/command/defaults/HelpCommand.java b/src/main/java/baritone/command/defaults/HelpCommand.java index 9320271c6..b1c9783d5 100644 --- a/src/main/java/baritone/command/defaults/HelpCommand.java +++ b/src/main/java/baritone/command/defaults/HelpCommand.java @@ -25,16 +25,13 @@ import baritone.api.command.exception.CommandException; import baritone.api.command.exception.CommandNotFoundException; import baritone.api.command.helpers.Paginator; import baritone.api.command.helpers.TabCompleteHelper; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.event.ClickEvent; -import net.minecraft.util.text.event.HoverEvent; - import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.TextComponent; import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX; @@ -88,8 +85,8 @@ public class HelpCommand extends Command { logDirect(""); command.getLongDesc().forEach(this::logDirect); logDirect(""); - TextComponent returnComponent = new StringTextComponent("Click to return to the help menu"); - returnComponent.setStyle(returnComponent.getStyle().setClickEvent(new ClickEvent( + BaseComponent returnComponent = new TextComponent("Click to return to the help menu"); + returnComponent.setStyle(returnComponent.getStyle().withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, FORCE_COMMAND_PREFIX + label ))); diff --git a/src/main/java/baritone/command/defaults/SelCommand.java b/src/main/java/baritone/command/defaults/SelCommand.java index 86e5ec663..e2f94ccf4 100644 --- a/src/main/java/baritone/command/defaults/SelCommand.java +++ b/src/main/java/baritone/command/defaults/SelCommand.java @@ -37,16 +37,14 @@ import baritone.api.utils.BetterBlockPos; import baritone.api.utils.BlockOptionalMeta; import baritone.api.utils.BlockOptionalMetaLookup; import baritone.utils.IRenderer; -import net.minecraft.block.Blocks; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.vector.Vector3i; - import java.awt.*; -import java.util.List; import java.util.*; import java.util.function.Function; import java.util.stream.Stream; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.phys.AABB; public class SelCommand extends Command { @@ -66,7 +64,7 @@ public class SelCommand extends Command { float lineWidth = Baritone.settings().selectionLineWidth.value; boolean ignoreDepth = Baritone.settings().renderSelectionIgnoreDepth.value; IRenderer.startLines(color, opacity, lineWidth, ignoreDepth); - IRenderer.drawAABB(event.getModelViewStack(), new AxisAlignedBB(pos1, pos1.add(1, 1, 1))); + IRenderer.drawAABB(event.getModelViewStack(), new AABB(pos1, pos1.add(1, 1, 1))); IRenderer.endLines(ignoreDepth); } }); @@ -143,7 +141,7 @@ public class SelCommand extends Command { ); } for (ISelection selection : selections) { - Vector3i size = selection.size(); + Vec3i size = selection.size(); BetterBlockPos min = selection.min(); ISchematic schematic = new FillSchematic(size.getX(), size.getY(), size.getZ(), type); if (action == Action.WALLS) { diff --git a/src/main/java/baritone/command/defaults/SetCommand.java b/src/main/java/baritone/command/defaults/SetCommand.java index 3ebe0b192..b9ddc7a79 100644 --- a/src/main/java/baritone/command/defaults/SetCommand.java +++ b/src/main/java/baritone/command/defaults/SetCommand.java @@ -27,17 +27,16 @@ import baritone.api.command.exception.CommandInvalidTypeException; import baritone.api.command.helpers.Paginator; import baritone.api.command.helpers.TabCompleteHelper; import baritone.api.utils.SettingsUtil; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.event.ClickEvent; -import net.minecraft.util.text.event.HoverEvent; - import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.stream.Collectors; import java.util.stream.Stream; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.TextComponent; import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX; import static baritone.api.utils.SettingsUtil.settingTypeToString; @@ -163,23 +162,23 @@ public class SetCommand extends Command { settingValueToString(setting) )); } - TextComponent oldValueComponent = new StringTextComponent(String.format("Old value: %s", oldValue)); + BaseComponent oldValueComponent = new TextComponent(String.format("Old value: %s", oldValue)); oldValueComponent.setStyle(oldValueComponent.getStyle() - .setFormatting(TextFormatting.GRAY) - .setHoverEvent(new HoverEvent( + .withColor(ChatFormatting.GRAY) + .withHoverEvent(new HoverEvent( HoverEvent.Action.SHOW_TEXT, - new StringTextComponent("Click to set the setting back to this value") + new TextComponent("Click to set the setting back to this value") )) - .setClickEvent(new ClickEvent( + .withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, FORCE_COMMAND_PREFIX + String.format("set %s %s", setting.getName(), oldValue) ))); logDirect(oldValueComponent); if ((setting.getName().equals("chatControl") && !(Boolean) setting.value && !Baritone.settings().chatControlAnyway.value) || setting.getName().equals("chatControlAnyway") && !(Boolean) setting.value && !Baritone.settings().chatControl.value) { - logDirect("Warning: Chat commands will no longer work. If you want to revert this change, use prefix control (if enabled) or click the old value listed above.", TextFormatting.RED); + logDirect("Warning: Chat commands will no longer work. If you want to revert this change, use prefix control (if enabled) or click the old value listed above.", ChatFormatting.RED); } else if (setting.getName().equals("prefixControl") && !(Boolean) setting.value) { - logDirect("Warning: Prefixed commands will no longer work. If you want to revert this change, use chat control (if enabled) or click the old value listed above.", TextFormatting.RED); + logDirect("Warning: Prefixed commands will no longer work. If you want to revert this change, use chat control (if enabled) or click the old value listed above.", ChatFormatting.RED); } } SettingsUtil.save(Baritone.settings()); diff --git a/src/main/java/baritone/command/defaults/SurfaceCommand.java b/src/main/java/baritone/command/defaults/SurfaceCommand.java index 509c9ca0e..9eeacc742 100644 --- a/src/main/java/baritone/command/defaults/SurfaceCommand.java +++ b/src/main/java/baritone/command/defaults/SurfaceCommand.java @@ -24,11 +24,10 @@ import baritone.api.command.exception.CommandException; import baritone.api.pathing.goals.Goal; import baritone.api.pathing.goals.GoalBlock; import baritone.api.utils.BetterBlockPos; -import net.minecraft.block.AirBlock; - import java.util.Arrays; import java.util.List; import java.util.stream.Stream; +import net.minecraft.world.level.block.AirBlock; public class SurfaceCommand extends Command { diff --git a/src/main/java/baritone/command/defaults/TunnelCommand.java b/src/main/java/baritone/command/defaults/TunnelCommand.java index e7852dd05..f958c9d20 100644 --- a/src/main/java/baritone/command/defaults/TunnelCommand.java +++ b/src/main/java/baritone/command/defaults/TunnelCommand.java @@ -23,12 +23,11 @@ import baritone.api.command.argument.IArgConsumer; import baritone.api.command.exception.CommandException; import baritone.api.pathing.goals.Goal; import baritone.api.pathing.goals.GoalStrictDirection; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; - import java.util.Arrays; import java.util.List; import java.util.stream.Stream; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; public class TunnelCommand extends Command { diff --git a/src/main/java/baritone/command/defaults/WaypointsCommand.java b/src/main/java/baritone/command/defaults/WaypointsCommand.java index 1dabe5446..32b7610b1 100644 --- a/src/main/java/baritone/command/defaults/WaypointsCommand.java +++ b/src/main/java/baritone/command/defaults/WaypointsCommand.java @@ -32,17 +32,16 @@ import baritone.api.command.helpers.TabCompleteHelper; import baritone.api.pathing.goals.Goal; import baritone.api.pathing.goals.GoalBlock; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.event.ClickEvent; -import net.minecraft.util.text.event.HoverEvent; - import java.util.*; import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Stream; +import net.minecraft.ChatFormatting; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.HoverEvent; +import net.minecraft.network.chat.TextComponent; import static baritone.api.command.IBaritoneChatControl.FORCE_COMMAND_PREFIX; @@ -58,24 +57,24 @@ public class WaypointsCommand extends Command { if (action == null) { throw new CommandInvalidTypeException(args.consumed(), "an action"); } - BiFunction toComponent = (waypoint, _action) -> { - TextComponent component = new StringTextComponent(""); - TextComponent tagComponent = new StringTextComponent(waypoint.getTag().name() + " "); - tagComponent.setStyle(tagComponent.getStyle().setFormatting(TextFormatting.GRAY)); + BiFunction toComponent = (waypoint, _action) -> { + BaseComponent component = new TextComponent(""); + BaseComponent tagComponent = new TextComponent(waypoint.getTag().name() + " "); + tagComponent.setStyle(tagComponent.getStyle().withColor(ChatFormatting.GRAY)); String name = waypoint.getName(); - TextComponent nameComponent = new StringTextComponent(!name.isEmpty() ? name : ""); - nameComponent.setStyle(nameComponent.getStyle().setFormatting(!name.isEmpty() ? TextFormatting.GRAY : TextFormatting.DARK_GRAY)); - TextComponent timestamp = new StringTextComponent(" @ " + new Date(waypoint.getCreationTimestamp())); - timestamp.setStyle(timestamp.getStyle().setFormatting(TextFormatting.DARK_GRAY)); + BaseComponent nameComponent = new TextComponent(!name.isEmpty() ? name : ""); + nameComponent.setStyle(nameComponent.getStyle().withColor(!name.isEmpty() ? ChatFormatting.GRAY : ChatFormatting.DARK_GRAY)); + BaseComponent timestamp = new TextComponent(" @ " + new Date(waypoint.getCreationTimestamp())); + timestamp.setStyle(timestamp.getStyle().withColor(ChatFormatting.DARK_GRAY)); component.append(tagComponent); component.append(nameComponent); component.append(timestamp); component.setStyle(component.getStyle() - .setHoverEvent(new HoverEvent( + .withHoverEvent(new HoverEvent( HoverEvent.Action.SHOW_TEXT, - new StringTextComponent("Click to select") + new TextComponent("Click to select") )) - .setClickEvent(new ClickEvent( + .withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, String.format( "%s%s %s %s @ %d", @@ -88,7 +87,7 @@ public class WaypointsCommand extends Command { )); return component; }; - Function transform = waypoint -> + Function transform = waypoint -> toComponent.apply(waypoint, action == Action.LIST ? Action.INFO : action); if (action == Action.LIST) { IWaypoint.Tag tag = args.hasAny() ? IWaypoint.Tag.getByName(args.peekString()) : null; @@ -137,8 +136,8 @@ public class WaypointsCommand extends Command { args.requireMax(0); IWaypoint waypoint = new Waypoint(name, tag, pos); ForWaypoints.waypoints(this.baritone).addWaypoint(waypoint); - TextComponent component = new StringTextComponent("Waypoint added: "); - component.setStyle(component.getStyle().setFormatting(TextFormatting.GRAY)); + BaseComponent component = new TextComponent("Waypoint added: "); + component.setStyle(component.getStyle().withColor(ChatFormatting.GRAY)); component.append(toComponent.apply(waypoint, Action.INFO)); logDirect(component); } else if (action == Action.CLEAR) { @@ -195,8 +194,8 @@ public class WaypointsCommand extends Command { if (action == Action.INFO) { logDirect(transform.apply(waypoint)); logDirect(String.format("Position: %s", waypoint.getLocation())); - TextComponent deleteComponent = new StringTextComponent("Click to delete this waypoint"); - deleteComponent.setStyle(deleteComponent.getStyle().setClickEvent(new ClickEvent( + BaseComponent deleteComponent = new TextComponent("Click to delete this waypoint"); + deleteComponent.setStyle(deleteComponent.getStyle().withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, String.format( "%s%s delete %s @ %d", @@ -206,8 +205,8 @@ public class WaypointsCommand extends Command { waypoint.getCreationTimestamp() ) ))); - TextComponent goalComponent = new StringTextComponent("Click to set goal to this waypoint"); - goalComponent.setStyle(goalComponent.getStyle().setClickEvent(new ClickEvent( + BaseComponent goalComponent = new TextComponent("Click to set goal to this waypoint"); + goalComponent.setStyle(goalComponent.getStyle().withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, String.format( "%s%s goal %s @ %d", @@ -217,8 +216,8 @@ public class WaypointsCommand extends Command { waypoint.getCreationTimestamp() ) ))); - TextComponent backComponent = new StringTextComponent("Click to return to the waypoints list"); - backComponent.setStyle(backComponent.getStyle().setClickEvent(new ClickEvent( + BaseComponent backComponent = new TextComponent("Click to return to the waypoints list"); + backComponent.setStyle(backComponent.getStyle().withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, String.format( "%s%s list", diff --git a/src/main/java/baritone/event/GameEventHandler.java b/src/main/java/baritone/event/GameEventHandler.java index eff8689b5..0f36fb444 100644 --- a/src/main/java/baritone/event/GameEventHandler.java +++ b/src/main/java/baritone/event/GameEventHandler.java @@ -25,11 +25,10 @@ import baritone.api.event.listener.IGameEventListener; import baritone.api.utils.Helper; import baritone.cache.WorldProvider; import baritone.utils.BlockStateInterface; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.chunk.LevelChunk; /** * @author Brady @@ -83,18 +82,18 @@ public final class GameEventHandler implements IEventBus, Helper { boolean isPostPopulate = state == EventState.POST && (type == ChunkEvent.Type.POPULATE_FULL || type == ChunkEvent.Type.POPULATE_PARTIAL); - World world = baritone.getPlayerContext().world(); + Level world = baritone.getPlayerContext().world(); // Whenever the server sends us to another dimension, chunks are unloaded // technically after the new world has been loaded, so we perform a check // to make sure the chunk being unloaded is already loaded. boolean isPreUnload = state == EventState.PRE && type == ChunkEvent.Type.UNLOAD - && world.getChunkProvider().getChunk(event.getX(), event.getZ(), null, false) != null; + && world.getChunkSource().getChunk(event.getX(), event.getZ(), null, false) != null; if (isPostPopulate || isPreUnload) { baritone.getWorldProvider().ifWorldLoaded(worldData -> { - Chunk chunk = world.getChunk(event.getX(), event.getZ()); + LevelChunk chunk = world.getChunk(event.getX(), event.getZ()); worldData.getCachedWorld().queueForPacking(chunk); }); } diff --git a/src/main/java/baritone/pathing/movement/CalculationContext.java b/src/main/java/baritone/pathing/movement/CalculationContext.java index d47569b47..9792238ce 100644 --- a/src/main/java/baritone/pathing/movement/CalculationContext.java +++ b/src/main/java/baritone/pathing/movement/CalculationContext.java @@ -24,15 +24,15 @@ import baritone.cache.WorldData; import baritone.utils.BlockStateInterface; import baritone.utils.ToolSet; import baritone.utils.pathing.BetterWorldBorder; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; import static baritone.api.pathing.movement.ActionCosts.COST_INF; @@ -46,7 +46,7 @@ public class CalculationContext { public final boolean safeForThreadedUse; public final IBaritone baritone; - public final World world; + public final Level world; public final WorldData worldData; public final BlockStateInterface bsi; public final ToolSet toolSet; @@ -79,14 +79,14 @@ public class CalculationContext { public CalculationContext(IBaritone baritone, boolean forUseOnAnotherThread) { this.safeForThreadedUse = forUseOnAnotherThread; this.baritone = baritone; - ClientPlayerEntity player = baritone.getPlayerContext().player(); + LocalPlayer player = baritone.getPlayerContext().player(); this.world = baritone.getPlayerContext().world(); this.worldData = (WorldData) baritone.getWorldProvider().getCurrentWorld(); this.bsi = new BlockStateInterface(world, worldData, forUseOnAnotherThread); this.toolSet = new ToolSet(player); this.hasThrowaway = Baritone.settings().allowPlace.value && ((Baritone) baritone).getInventoryBehavior().hasGenericThrowaway(); - this.hasWaterBucket = Baritone.settings().allowWaterBucketFall.value && PlayerInventory.isHotbar(player.inventory.getSlotFor(STACK_BUCKET_WATER)) && world.getDimensionKey() != World.THE_NETHER; - this.canSprint = Baritone.settings().allowSprint.value && player.getFoodStats().getFoodLevel() > 6; + this.hasWaterBucket = Baritone.settings().allowWaterBucketFall.value && Inventory.isHotbarSlot(player.inventory.findSlotMatchingItem(STACK_BUCKET_WATER)) && world.dimension() != Level.NETHER; + this.canSprint = Baritone.settings().allowSprint.value && player.getFoodData().getFoodLevel() > 6; this.placeBlockCost = Baritone.settings().blockPlacementPenalty.value; this.allowBreak = Baritone.settings().allowBreak.value; this.allowParkour = Baritone.settings().allowParkour.value; @@ -99,7 +99,7 @@ public class CalculationContext { this.allowDownward = Baritone.settings().allowDownward.value; this.maxFallHeightNoWater = Baritone.settings().maxFallHeightNoWater.value; this.maxFallHeightBucket = Baritone.settings().maxFallHeightBucket.value; - int depth = EnchantmentHelper.getDepthStriderModifier(player); + int depth = EnchantmentHelper.getDepthStrider(player); if (depth > 3) { depth = 3; } diff --git a/src/main/java/baritone/pathing/movement/Movement.java b/src/main/java/baritone/pathing/movement/Movement.java index 395c2de00..312bb0f28 100644 --- a/src/main/java/baritone/pathing/movement/Movement.java +++ b/src/main/java/baritone/pathing/movement/Movement.java @@ -17,6 +17,8 @@ package baritone.pathing.movement; +import BetterBlockPos; +import IPlayerContext; import baritone.Baritone; import baritone.api.IBaritone; import baritone.api.pathing.movement.IMovement; @@ -25,12 +27,11 @@ import baritone.api.utils.*; import baritone.api.utils.input.Input; import baritone.behavior.PathingBehavior; import baritone.utils.BlockStateInterface; -import net.minecraft.entity.item.FallingBlockEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; - import java.util.*; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.item.FallingBlockEntity; +import net.minecraft.world.phys.AABB; public abstract class Movement implements IMovement, MovementHelper { @@ -157,7 +158,7 @@ public abstract class Movement implements IMovement, MovementHelper { } boolean somethingInTheWay = false; for (BetterBlockPos blockPos : positionsToBreak) { - if (!ctx.world().getEntitiesWithinAABB(FallingBlockEntity.class, new AxisAlignedBB(0, 0, 0, 1, 1.1, 1).offset(blockPos)).isEmpty() && Baritone.settings().pauseMiningForFallingBlocks.value) { + if (!ctx.world().getEntitiesWithinAABB(FallingBlockEntity.class, new AABB(0, 0, 0, 1, 1.1, 1).move(blockPos)).isEmpty() && Baritone.settings().pauseMiningForFallingBlocks.value) { return false; } if (!MovementHelper.canWalkThrough(ctx, blockPos)) { // can't break air, so don't try diff --git a/src/main/java/baritone/pathing/movement/MovementHelper.java b/src/main/java/baritone/pathing/movement/MovementHelper.java index 9f9f1d286..f27c4d62b 100644 --- a/src/main/java/baritone/pathing/movement/MovementHelper.java +++ b/src/main/java/baritone/pathing/movement/MovementHelper.java @@ -28,17 +28,45 @@ import baritone.pathing.movement.MovementState.MovementTarget; import baritone.utils.BlockStateInterface; import baritone.utils.ToolSet; import net.minecraft.block.*; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import net.minecraft.fluid.*; -import net.minecraft.pathfinding.PathType; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.properties.SlabType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.IBlockReader; - +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.AbstractSkullBlock; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.BambooBlock; +import net.minecraft.world.level.block.BaseFireBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.DoorBlock; +import net.minecraft.world.level.block.EndPortalBlock; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.FenceGateBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.InfestedBlock; +import net.minecraft.world.level.block.ScaffoldingBlock; +import net.minecraft.world.level.block.ShulkerBoxBlock; +import net.minecraft.world.level.block.SkullBlock; +import net.minecraft.world.level.block.SlabBlock; +import net.minecraft.world.level.block.SnowLayerBlock; +import net.minecraft.world.level.block.StainedGlassBlock; +import net.minecraft.world.level.block.StairBlock; +import net.minecraft.world.level.block.TrapDoorBlock; +import net.minecraft.world.level.block.WaterlilyBlock; +import net.minecraft.world.level.block.WoolCarpetBlock; +import net.minecraft.world.level.block.piston.MovingPistonBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.SlabType; +import net.minecraft.world.level.material.FlowingFluid; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.material.WaterFluid; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; import java.util.Optional; import static baritone.pathing.movement.Movement.HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP; @@ -53,7 +81,7 @@ public interface MovementHelper extends ActionCosts, Helper { static boolean avoidBreaking(BlockStateInterface bsi, int x, int y, int z, BlockState state) { Block b = state.getBlock(); return b == Blocks.ICE // ice becomes water, and water can mess up the path - || b instanceof SilverfishBlock // obvious reasons + || b instanceof InfestedBlock // obvious reasons // call context.get directly with x,y,z. no need to make 5 new BlockPos for no reason || avoidAdjacentBreaking(bsi, x, y + 1, z, true) || avoidAdjacentBreaking(bsi, x + 1, y, z, false) @@ -72,7 +100,7 @@ public interface MovementHelper extends ActionCosts, Helper { // therefore if directlyAbove is true, we will actually ignore if this is falling && block instanceof FallingBlock // obviously, this check is only valid for falling blocks && Baritone.settings().avoidUpdatingFallingBlocks.value // and if the setting is enabled - && FallingBlock.canFallThrough(bsi.get0(x, y - 1, z))) { // and if it would fall (i.e. it's unsupported) + && FallingBlock.isFree(bsi.get0(x, y - 1, z))) { // and if it would fall (i.e. it's unsupported) return true; // dont break a block that is adjacent to unsupported gravel because it can cause really weird stuff } return !state.getFluidState().isEmpty(); @@ -91,7 +119,7 @@ public interface MovementHelper extends ActionCosts, Helper { if (block instanceof AirBlock) { // early return for most common case return true; } - if (block instanceof AbstractFireBlock || block == Blocks.TRIPWIRE || block == Blocks.COBWEB || block == Blocks.END_PORTAL || block == Blocks.COCOA || block instanceof AbstractSkullBlock || block == Blocks.BUBBLE_COLUMN || block instanceof ShulkerBoxBlock || block instanceof SlabBlock || block instanceof TrapDoorBlock || block == Blocks.HONEY_BLOCK || block == Blocks.END_ROD) { + if (block instanceof BaseFireBlock || block == Blocks.TRIPWIRE || block == Blocks.COBWEB || block == Blocks.END_PORTAL || block == Blocks.COCOA || block instanceof AbstractSkullBlock || block == Blocks.BUBBLE_COLUMN || block instanceof ShulkerBoxBlock || block instanceof SlabBlock || block instanceof TrapDoorBlock || block == Blocks.HONEY_BLOCK || block == Blocks.END_ROD) { return false; } if (Baritone.settings().blocksToAvoid.value.contains(block)) { @@ -103,10 +131,10 @@ public interface MovementHelper extends ActionCosts, Helper { // be opened by just interacting. return block != Blocks.IRON_DOOR; } - if (block instanceof CarpetBlock) { + if (block instanceof WoolCarpetBlock) { return canWalkOn(bsi, x, y - 1, z); } - if (block instanceof SnowBlock) { + if (block instanceof SnowLayerBlock) { // we've already checked doors and fence gates // so the only remaining dynamic isPassables are snow and trapdoor // if they're cached as a top block, we don't know their metadata @@ -116,7 +144,7 @@ public interface MovementHelper extends ActionCosts, Helper { } // the check in BlockSnow.isPassable is layers < 5 // while actually, we want < 3 because 3 or greater makes it impassable in a 2 high ceiling - if (state.get(SnowBlock.LAYERS) >= 3) { + if (state.getValue(SnowLayerBlock.LAYERS) >= 3) { return false; } // ok, it's low enough we could walk through it, but is it supported? @@ -126,12 +154,12 @@ public interface MovementHelper extends ActionCosts, Helper { return false; // Don't walk through flowing liquids } FluidState fluidState = state.getFluidState(); - if (fluidState.getFluid() instanceof WaterFluid) { + if (fluidState.getType() instanceof WaterFluid) { if (Baritone.settings().assumeWalkOnWater.value) { return false; } BlockState up = bsi.get0(x, y + 1, z); - if (!up.getFluidState().isEmpty() || up.getBlock() instanceof LilyPadBlock) { + if (!up.getFluidState().isEmpty() || up.getBlock() instanceof WaterlilyBlock) { return false; } return true; @@ -139,7 +167,7 @@ public interface MovementHelper extends ActionCosts, Helper { // every block that overrides isPassable with anything more complicated than a "return true;" or "return false;" // has already been accounted for above // therefore it's safe to not construct a blockpos from our x, y, z ints and instead just pass null - return state.allowsMovement(bsi.access, BlockPos.ZERO, PathType.LAND); // workaround for future compatibility =P + return state.isPathfindable(bsi.access, BlockPos.ZERO, PathComputationType.LAND); // workaround for future compatibility =P } /** @@ -155,7 +183,7 @@ public interface MovementHelper extends ActionCosts, Helper { static boolean fullyPassable(CalculationContext context, int x, int y, int z) { return fullyPassable( context.bsi.access, - context.bsi.isPassableBlockPos.setPos(x, y, z), + context.bsi.isPassableBlockPos.set(x, y, z), context.bsi.get0(x, y, z) ); } @@ -164,13 +192,13 @@ public interface MovementHelper extends ActionCosts, Helper { return fullyPassable(ctx.world(), pos, ctx.world().getBlockState(pos)); } - static boolean fullyPassable(IBlockReader access, BlockPos pos, BlockState state) { + static boolean fullyPassable(BlockGetter access, BlockPos pos, BlockState state) { Block block = state.getBlock(); if (block instanceof AirBlock) { // early return for most common case return true; } // exceptions - blocks that are isPassable true, but we can't actually jump through - if (block instanceof AbstractFireBlock + if (block instanceof BaseFireBlock || block == Blocks.TRIPWIRE || block == Blocks.COBWEB || block == Blocks.VINE @@ -178,7 +206,7 @@ public interface MovementHelper extends ActionCosts, Helper { || block == Blocks.COCOA || block instanceof DoorBlock || block instanceof FenceGateBlock - || block instanceof SnowBlock + || block instanceof SnowLayerBlock || !state.getFluidState().isEmpty() || block instanceof TrapDoorBlock || block instanceof EndPortalBlock @@ -187,7 +215,7 @@ public interface MovementHelper extends ActionCosts, Helper { return false; } // door, fence gate, liquid, trapdoor have been accounted for, nothing else uses the world or pos parameters - return state.allowsMovement(access, pos, PathType.LAND); + return state.isPathfindable(access, pos, PathComputationType.LAND); } static boolean isReplaceable(int x, int y, int z, BlockState state, BlockStateInterface bsi) { @@ -206,12 +234,12 @@ public interface MovementHelper extends ActionCosts, Helper { // early return for common cases hehe return true; } - if (block instanceof SnowBlock) { + if (block instanceof SnowLayerBlock) { // as before, default to true (mostly because it would otherwise make long distance pathing through snowy biomes impossible) if (!bsi.worldContainsLoadedChunk(x, z)) { return true; } - return state.get(SnowBlock.LAYERS) == 1; + return state.getValue(SnowLayerBlock.LAYERS) == 1; } if (block == Blocks.LARGE_FERN || block == Blocks.TALL_GRASS) { return true; @@ -247,7 +275,7 @@ public interface MovementHelper extends ActionCosts, Helper { return true; } - return state.get(FenceGateBlock.OPEN); + return state.getValue(FenceGateBlock.OPEN); } static boolean isHorizontalBlockPassable(BlockPos blockPos, BlockState blockState, BlockPos playerPos, BooleanProperty propertyOpen) { @@ -255,8 +283,8 @@ public interface MovementHelper extends ActionCosts, Helper { return false; } - Direction.Axis facing = blockState.get(HorizontalBlock.HORIZONTAL_FACING).getAxis(); - boolean open = blockState.get(propertyOpen); + Direction.Axis facing = blockState.getValue(HorizontalDirectionalBlock.FACING).getAxis(); + boolean open = blockState.getValue(propertyOpen); Direction.Axis playerFacing; if (playerPos.north().equals(blockPos) || playerPos.south().equals(blockPos)) { @@ -275,7 +303,7 @@ public interface MovementHelper extends ActionCosts, Helper { return !state.getFluidState().isEmpty() || block == Blocks.MAGMA_BLOCK || block == Blocks.CACTUS - || block instanceof AbstractFireBlock + || block instanceof BaseFireBlock || block == Blocks.END_PORTAL || block == Blocks.COBWEB || block == Blocks.BUBBLE_COLUMN; @@ -317,10 +345,10 @@ public interface MovementHelper extends ActionCosts, Helper { // BlockPos s that we'd just garbage collect immediately is actually noticeable. I don't even think its a decrease in readability BlockState upState = bsi.get0(x, y + 1, z); Block up = upState.getBlock(); - if (up == Blocks.LILY_PAD || up instanceof CarpetBlock) { + if (up == Blocks.LILY_PAD || up instanceof WoolCarpetBlock) { return true; } - if (isFlowing(x, y, z, state, bsi) || upState.getFluidState().getFluid() == Fluids.FLOWING_WATER) { + if (isFlowing(x, y, z, state, bsi) || upState.getFluidState().getType() == Fluids.FLOWING_WATER) { // the only scenario in which we can walk on flowing water is if it's under still water with jesus off return isWater(upState) && !Baritone.settings().assumeWalkOnWater.value; } @@ -336,11 +364,11 @@ public interface MovementHelper extends ActionCosts, Helper { } if (block instanceof SlabBlock) { if (!Baritone.settings().allowWalkOnBottomSlab.value) { - return state.get(SlabBlock.TYPE) != SlabType.BOTTOM; + return state.getValue(SlabBlock.TYPE) != SlabType.BOTTOM; } return true; } - return block instanceof StairsBlock; + return block instanceof StairBlock; } static boolean canWalkOn(IPlayerContext ctx, BetterBlockPos pos, BlockState state) { @@ -415,7 +443,7 @@ public interface MovementHelper extends ActionCosts, Helper { static boolean isBottomSlab(BlockState state) { return state.getBlock() instanceof SlabBlock - && state.get(SlabBlock.TYPE) == SlabType.BOTTOM; + && state.getValue(SlabBlock.TYPE) == SlabType.BOTTOM; } /** @@ -458,7 +486,7 @@ public interface MovementHelper extends ActionCosts, Helper { * @return Whether or not the block is water */ static boolean isWater(BlockState state) { - Fluid f = state.getFluidState().getFluid(); + Fluid f = state.getFluidState().getType(); return f == Fluids.WATER || f == Fluids.FLOWING_WATER; } @@ -475,7 +503,7 @@ public interface MovementHelper extends ActionCosts, Helper { } static boolean isLava(BlockState state) { - Fluid f = state.getFluidState().getFluid(); + Fluid f = state.getFluidState().getType(); return f == Fluids.LAVA || f == Fluids.FLOWING_LAVA; } @@ -496,16 +524,16 @@ public interface MovementHelper extends ActionCosts, Helper { static boolean possiblyFlowing(BlockState state) { FluidState fluidState = state.getFluidState(); - return fluidState.getFluid() instanceof FlowingFluid - && fluidState.getFluid().getLevel(fluidState) != 8; + return fluidState.getType() instanceof FlowingFluid + && fluidState.getType().getAmount(fluidState) != 8; } static boolean isFlowing(int x, int y, int z, BlockState state, BlockStateInterface bsi) { FluidState fluidState = state.getFluidState(); - if (!(fluidState.getFluid() instanceof FlowingFluid)) { + if (!(fluidState.getType() instanceof FlowingFluid)) { return false; } - if (fluidState.getFluid().getLevel(fluidState) != 8) { + if (fluidState.getType().getAmount(fluidState) != 8) { return true; } return possiblyFlowing(bsi.get0(x + 1, y, z)) @@ -522,7 +550,7 @@ public interface MovementHelper extends ActionCosts, Helper { || block instanceof ShulkerBoxBlock) { return false; } - return Block.isOpaque(state.getCollisionShape(null, null)); + return Block.isShapeFullBlock(state.getCollisionShape(null, null)); } static PlaceResult attemptToPlaceABlock(MovementState state, IBaritone baritone, BlockPos placeAt, boolean preferDown, boolean wouldSneak) { @@ -530,11 +558,11 @@ public interface MovementHelper extends ActionCosts, Helper { Optional direct = RotationUtils.reachable(ctx, placeAt, wouldSneak); // we assume that if there is a block there, it must be replacable boolean found = false; if (direct.isPresent()) { - state.setTarget(new MovementState.MovementTarget(direct.get(), true)); + state.setTarget(new MovementTarget(direct.get(), true)); found = true; } for (int i = 0; i < 5; i++) { - BlockPos against1 = placeAt.offset(HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i]); + BlockPos against1 = placeAt.relative(HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i]); if (MovementHelper.canPlaceAgainst(ctx, against1)) { if (!((Baritone) baritone).getInventoryBehavior().selectThrowawayForLocation(false, placeAt.getX(), placeAt.getY(), placeAt.getZ())) { // get ready to place a throwaway block Helper.HELPER.logDebug("bb pls get me some blocks. dirt, netherrack, cobble"); @@ -544,10 +572,10 @@ public interface MovementHelper extends ActionCosts, Helper { double faceX = (placeAt.getX() + against1.getX() + 1.0D) * 0.5D; double faceY = (placeAt.getY() + against1.getY() + 0.5D) * 0.5D; double faceZ = (placeAt.getZ() + against1.getZ() + 1.0D) * 0.5D; - Rotation place = RotationUtils.calcRotationFromVec3d(wouldSneak ? RayTraceUtils.inferSneakingEyePosition(ctx.player()) : ctx.playerHead(), new Vector3d(faceX, faceY, faceZ), ctx.playerRotations()); - RayTraceResult res = RayTraceUtils.rayTraceTowards(ctx.player(), place, ctx.playerController().getBlockReachDistance(), wouldSneak); - if (res != null && res.getType() == RayTraceResult.Type.BLOCK && ((BlockRayTraceResult) res).getPos().equals(against1) && ((BlockRayTraceResult) res).getPos().offset(((BlockRayTraceResult) res).getFace()).equals(placeAt)) { - state.setTarget(new MovementState.MovementTarget(place, true)); + Rotation place = RotationUtils.calcRotationFromVec3d(wouldSneak ? RayTraceUtils.inferSneakingEyePosition(ctx.player()) : ctx.playerHead(), new Vec3(faceX, faceY, faceZ), ctx.playerRotations()); + HitResult res = RayTraceUtils.rayTraceTowards(ctx.player(), place, ctx.playerController().getBlockReachDistance(), wouldSneak); + if (res != null && res.getType() == HitResult.Type.BLOCK && ((BlockHitResult) res).getBlockPos().equals(against1) && ((BlockHitResult) res).getBlockPos().relative(((BlockHitResult) res).getDirection()).equals(placeAt)) { + state.setTarget(new MovementTarget(place, true)); found = true; if (!preferDown) { @@ -560,9 +588,9 @@ public interface MovementHelper extends ActionCosts, Helper { } if (ctx.getSelectedBlock().isPresent()) { BlockPos selectedBlock = ctx.getSelectedBlock().get(); - Direction side = ((BlockRayTraceResult) ctx.objectMouseOver()).getFace(); + Direction side = ((BlockHitResult) ctx.objectMouseOver()).getDirection(); // only way for selectedBlock.equals(placeAt) to be true is if it's replacable - if (selectedBlock.equals(placeAt) || (MovementHelper.canPlaceAgainst(ctx, selectedBlock) && selectedBlock.offset(side).equals(placeAt))) { + if (selectedBlock.equals(placeAt) || (MovementHelper.canPlaceAgainst(ctx, selectedBlock) && selectedBlock.relative(side).equals(placeAt))) { if (wouldSneak) { state.setInput(Input.SNEAK, true); } diff --git a/src/main/java/baritone/pathing/movement/Moves.java b/src/main/java/baritone/pathing/movement/Moves.java index 6441ce033..a76bf81fd 100644 --- a/src/main/java/baritone/pathing/movement/Moves.java +++ b/src/main/java/baritone/pathing/movement/Moves.java @@ -20,7 +20,7 @@ package baritone.pathing.movement; import baritone.api.utils.BetterBlockPos; import baritone.pathing.movement.movements.*; import baritone.utils.pathing.MutableMoveResult; -import net.minecraft.util.Direction; +import net.minecraft.core.Direction; /** * An enum of all possible movements attached to all possible directions they could be taken in diff --git a/src/main/java/baritone/pathing/movement/movements/MovementAscend.java b/src/main/java/baritone/pathing/movement/movements/MovementAscend.java index df75acb6f..a735f0f7a 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementAscend.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementAscend.java @@ -28,12 +28,11 @@ import baritone.pathing.movement.MovementHelper; import baritone.pathing.movement.MovementState; import baritone.utils.BlockStateInterface; import com.google.common.collect.ImmutableSet; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.FallingBlock; -import net.minecraft.util.Direction; - import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.state.BlockState; public class MovementAscend extends Movement { @@ -78,9 +77,9 @@ public class MovementAscend extends Movement { } boolean foundPlaceOption = false; for (int i = 0; i < 5; i++) { - int againstX = destX + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getXOffset(); - int againstY = y + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getYOffset(); - int againstZ = destZ + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getZOffset(); + int againstX = destX + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepX(); + int againstY = y + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepY(); + int againstZ = destZ + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepZ(); if (againstX == x && againstZ == z) { // we might be able to backplace now, but it doesn't matter because it will have been broken by the time we'd need to use it continue; } @@ -168,7 +167,7 @@ public class MovementAscend extends Movement { return state; } - if (ctx.playerFeet().equals(dest) || ctx.playerFeet().equals(dest.add(getDirection().down()))) { + if (ctx.playerFeet().equals(dest) || ctx.playerFeet().equals(dest.add(getDirection().below()))) { return state.setStatus(MovementStatus.SUCCESS); } @@ -225,7 +224,7 @@ public class MovementAscend extends Movement { public boolean headBonkClear() { BetterBlockPos startUp = src.up(2); for (int i = 0; i < 4; i++) { - BetterBlockPos check = startUp.offset(Direction.byHorizontalIndex(i)); + BetterBlockPos check = startUp.offset(Direction.from2DDataValue(i)); if (!MovementHelper.canWalkThrough(ctx, check)) { // We might bonk our head return false; diff --git a/src/main/java/baritone/pathing/movement/movements/MovementDescend.java b/src/main/java/baritone/pathing/movement/movements/MovementDescend.java index 67bb091f2..a4639cdab 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementDescend.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementDescend.java @@ -30,15 +30,14 @@ import baritone.pathing.movement.MovementState; import baritone.utils.BlockStateInterface; import baritone.utils.pathing.MutableMoveResult; import com.google.common.collect.ImmutableSet; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.FallingBlock; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; - import java.util.Set; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.Vec3; public class MovementDescend extends Movement { @@ -222,11 +221,11 @@ public class MovementDescend extends Movement { if (safeMode()) { double destX = (src.getX() + 0.5) * 0.17 + (dest.getX() + 0.5) * 0.83; double destZ = (src.getZ() + 0.5) * 0.17 + (dest.getZ() + 0.5) * 0.83; - ClientPlayerEntity player = ctx.player(); + LocalPlayer player = ctx.player(); state.setTarget(new MovementState.MovementTarget( new Rotation(RotationUtils.calcRotationFromVec3d(ctx.playerHead(), - new Vector3d(destX, dest.getY(), destZ), - new Rotation(player.rotationYaw, player.rotationPitch)).getYaw(), player.rotationPitch), + new Vec3(destX, dest.getY(), destZ), + new Rotation(player.yRot, player.xRot)).getYaw(), player.xRot), false )).setInput(Input.MOVE_FORWARD, true); return state; @@ -256,7 +255,7 @@ public class MovementDescend extends Movement { return true; } for (int y = 0; y <= 2; y++) { // we could hit any of the three blocks - if (MovementHelper.avoidWalkingInto(BlockStateInterface.get(ctx, into.up(y)))) { + if (MovementHelper.avoidWalkingInto(BlockStateInterface.get(ctx, into.above(y)))) { return true; } } diff --git a/src/main/java/baritone/pathing/movement/movements/MovementDiagonal.java b/src/main/java/baritone/pathing/movement/movements/MovementDiagonal.java index 9ec5bd570..f5947c639 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementDiagonal.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementDiagonal.java @@ -29,16 +29,15 @@ import baritone.pathing.movement.MovementState; import baritone.utils.BlockStateInterface; import baritone.utils.pathing.MutableMoveResult; import com.google.common.collect.ImmutableSet; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; - import java.util.ArrayList; import java.util.List; import java.util.Set; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; public class MovementDiagonal extends Movement { @@ -61,11 +60,11 @@ public class MovementDiagonal extends Movement { protected boolean safeToCancel(MovementState state) { //too simple. backfill does not work after cornering with this //return MovementHelper.canWalkOn(ctx, ctx.playerFeet().down()); - ClientPlayerEntity player = ctx.player(); + LocalPlayer player = ctx.player(); double offset = 0.25; - double x = player.getPositionVec().x; - double y = player.getPositionVec().y - 1; - double z = player.getPositionVec().z; + double x = player.position().x; + double y = player.position().y - 1; + double z = player.position().z; //standard if (ctx.playerFeet().equals(src)) { return true; diff --git a/src/main/java/baritone/pathing/movement/movements/MovementDownward.java b/src/main/java/baritone/pathing/movement/movements/MovementDownward.java index 44afbb763..7e32cd4f2 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementDownward.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementDownward.java @@ -25,11 +25,10 @@ import baritone.pathing.movement.Movement; import baritone.pathing.movement.MovementHelper; import baritone.pathing.movement.MovementState; import com.google.common.collect.ImmutableSet; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; - import java.util.Set; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; public class MovementDownward extends Movement { diff --git a/src/main/java/baritone/pathing/movement/movements/MovementFall.java b/src/main/java/baritone/pathing/movement/movements/MovementFall.java index 9d36c4b5a..ed230dc6c 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementFall.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementFall.java @@ -30,23 +30,22 @@ import baritone.pathing.movement.MovementHelper; import baritone.pathing.movement.MovementState; import baritone.pathing.movement.MovementState.MovementTarget; import baritone.utils.pathing.MutableMoveResult; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.LadderBlock; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.fluid.WaterFluid; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.math.vector.Vector3i; -import net.minecraft.world.World; - import java.util.HashSet; import java.util.Optional; import java.util.Set; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LadderBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.WaterFluid; +import net.minecraft.world.phys.Vec3; public class MovementFall extends Movement { @@ -95,9 +94,9 @@ public class MovementFall extends Movement { Rotation targetRotation = null; BlockState destState = ctx.world().getBlockState(dest); Block destBlock = destState.getBlock(); - boolean isWater = destState.getFluidState().getFluid() instanceof WaterFluid; + boolean isWater = destState.getFluidState().getType() instanceof WaterFluid; if (!isWater && willPlaceBucket() && !playerFeet.equals(dest)) { - if (!PlayerInventory.isHotbar(ctx.player().inventory.getSlotFor(STACK_BUCKET_WATER)) || ctx.world().getDimensionKey() == World.THE_NETHER) { + if (!Inventory.isHotbarSlot(ctx.player().inventory.getSlotFor(STACK_BUCKET_WATER)) || ctx.world().getDimensionKey() == Level.NETHER) { return state.setStatus(MovementStatus.UNREACHABLE); } @@ -118,7 +117,7 @@ public class MovementFall extends Movement { } if (playerFeet.equals(dest) && (ctx.player().getPositionVec().y - playerFeet.getY() < 0.094 || isWater)) { // 0.094 because lilypads if (isWater) { // only match water, not flowing water (which we cannot pick up with a bucket) - if (PlayerInventory.isHotbar(ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY))) { + if (Inventory.isHotbarSlot(ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY))) { ctx.player().inventory.currentItem = ctx.player().inventory.getSlotFor(STACK_BUCKET_EMPTY); if (ctx.player().getMotion().y >= 0) { return state.setInput(Input.CLICK_RIGHT, true); @@ -134,14 +133,14 @@ public class MovementFall extends Movement { return state.setStatus(MovementStatus.SUCCESS); } } - Vector3d destCenter = VecUtils.getBlockPosCenter(dest); // we are moving to the 0.5 center not the edge (like if we were falling on a ladder) + Vec3 destCenter = VecUtils.getBlockPosCenter(dest); // we are moving to the 0.5 center not the edge (like if we were falling on a ladder) if (Math.abs(ctx.player().getPositionVec().x + ctx.player().getMotion().x - destCenter.x) > 0.1 || Math.abs(ctx.player().getPositionVec().z + ctx.player().getMotion().z - destCenter.z) > 0.1) { if (!ctx.player().isOnGround() && Math.abs(ctx.player().getMotion().y) > 0.4) { state.setInput(Input.SNEAK, true); } state.setInput(Input.MOVE_FORWARD, true); } - Vector3i avoid = Optional.ofNullable(avoid()).map(Direction::getDirectionVec).orElse(null); + Vec3i avoid = Optional.ofNullable(avoid()).map(Direction::getNormal).orElse(null); if (avoid == null) { avoid = src.subtract(dest); } else { @@ -153,7 +152,7 @@ public class MovementFall extends Movement { } } if (targetRotation == null) { - Vector3d destCenterOffset = new Vector3d(destCenter.x + 0.125 * avoid.getX(), destCenter.y, destCenter.z + 0.125 * avoid.getZ()); + Vec3 destCenterOffset = new Vec3(destCenter.x + 0.125 * avoid.getX(), destCenter.y, destCenter.z + 0.125 * avoid.getZ()); state.setTarget(new MovementTarget(RotationUtils.calcRotationFromVec3d(ctx.playerHead(), destCenterOffset, ctx.playerRotations()), false)); } return state; @@ -163,7 +162,7 @@ public class MovementFall extends Movement { for (int i = 0; i < 15; i++) { BlockState state = ctx.world().getBlockState(ctx.playerFeet().down(i)); if (state.getBlock() == Blocks.LADDER) { - return state.get(LadderBlock.FACING); + return state.getValue(LadderBlock.FACING); } } return null; diff --git a/src/main/java/baritone/pathing/movement/movements/MovementParkour.java b/src/main/java/baritone/pathing/movement/movements/MovementParkour.java index a2afb1996..845e96b22 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementParkour.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementParkour.java @@ -27,16 +27,15 @@ import baritone.pathing.movement.MovementHelper; import baritone.pathing.movement.MovementState; import baritone.utils.BlockStateInterface; import baritone.utils.pathing.MutableMoveResult; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.StairsBlock; -import net.minecraft.fluid.Fluids; -import net.minecraft.fluid.WaterFluid; -import net.minecraft.util.Direction; - import java.util.HashSet; import java.util.Set; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.StairBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.material.WaterFluid; public class MovementParkour extends Movement { @@ -68,8 +67,8 @@ public class MovementParkour extends Movement { return; } - int xDiff = dir.getXOffset(); - int zDiff = dir.getZOffset(); + int xDiff = dir.getStepX(); + int zDiff = dir.getStepZ(); if (!MovementHelper.fullyPassable(context, x + xDiff, y, z + zDiff)) { // most common case at the top -- the adjacent block isn't air return; @@ -79,7 +78,7 @@ public class MovementParkour extends Movement { // second most common case -- we could just traverse not parkour return; } - if (MovementHelper.avoidWalkingInto(adj) && !(adj.getFluidState().getFluid() instanceof WaterFluid)) { // magma sucks + if (MovementHelper.avoidWalkingInto(adj) && !(adj.getFluidState().getType() instanceof WaterFluid)) { // magma sucks return; } if (!MovementHelper.fullyPassable(context, x + xDiff, y + 1, z + zDiff)) { @@ -92,7 +91,7 @@ public class MovementParkour extends Movement { return; } BlockState standingOn = context.get(x, y - 1, z); - if (standingOn.getBlock() == Blocks.VINE || standingOn.getBlock() == Blocks.LADDER || standingOn.getBlock() instanceof StairsBlock || MovementHelper.isBottomSlab(standingOn) || standingOn.getFluidState().getFluid() != Fluids.EMPTY) { + if (standingOn.getBlock() == Blocks.VINE || standingOn.getBlock() == Blocks.LADDER || standingOn.getBlock() instanceof StairBlock || MovementHelper.isBottomSlab(standingOn) || standingOn.getFluidState().getType() != Fluids.EMPTY) { return; } int maxJump; @@ -115,7 +114,7 @@ public class MovementParkour extends Movement { return; } BlockState destInto = context.bsi.get0(destX, y, destZ); - if (!MovementHelper.fullyPassable(context.bsi.access, context.bsi.isPassableBlockPos.setPos(destX, y, destZ), destInto)) { + if (!MovementHelper.fullyPassable(context.bsi.access, context.bsi.isPassableBlockPos.set(destX, y, destZ), destInto)) { if (i <= 3 && context.allowParkourAscend && context.canSprint && MovementHelper.canWalkOn(context.bsi, destX, y, destZ, destInto) && checkOvershootSafety(context.bsi, destX + xDiff, y + 1, destZ + zDiff)) { res.x = destX; res.y = y + 1; @@ -160,9 +159,9 @@ public class MovementParkour extends Movement { return; } for (int i = 0; i < 5; i++) { - int againstX = destX + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getXOffset(); - int againstY = y - 1 + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getYOffset(); - int againstZ = destZ + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getZOffset(); + int againstX = destX + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepX(); + int againstY = y - 1 + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepY(); + int againstZ = destZ + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepZ(); if (againstX == x + xDiff * 3 && againstZ == z + zDiff * 3) { // we can't turn around that fast continue; } diff --git a/src/main/java/baritone/pathing/movement/movements/MovementPillar.java b/src/main/java/baritone/pathing/movement/movements/MovementPillar.java index b5d7daec0..e84f851d8 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementPillar.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementPillar.java @@ -32,10 +32,17 @@ import baritone.pathing.movement.MovementState; import baritone.utils.BlockStateInterface; import com.google.common.collect.ImmutableSet; import net.minecraft.block.*; -import net.minecraft.state.properties.SlabType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; - +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.FenceGateBlock; +import net.minecraft.world.level.block.LadderBlock; +import net.minecraft.world.level.block.SlabBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.SlabType; +import net.minecraft.world.phys.Vec3; import java.util.Set; public class MovementPillar extends Movement { @@ -63,7 +70,7 @@ public class MovementPillar extends Movement { if (fromDown.getBlock() == Blocks.LADDER || fromDown.getBlock() == Blocks.VINE) { return COST_INF; // can't pillar from a ladder or vine onto something that isn't also climbable } - if (fromDown.getBlock() instanceof SlabBlock && fromDown.get(SlabBlock.TYPE) == SlabType.BOTTOM) { + if (fromDown.getBlock() instanceof SlabBlock && fromDown.getValue(SlabBlock.TYPE) == SlabType.BOTTOM) { return COST_INF; // can't pillar up from a bottom slab onto a non ladder } } @@ -171,7 +178,7 @@ public class MovementPillar extends Movement { if (MovementHelper.isWater(fromDown) && MovementHelper.isWater(ctx, dest)) { // stay centered while swimming up a water column state.setTarget(new MovementState.MovementTarget(RotationUtils.calcRotationFromVec3d(ctx.playerHead(), VecUtils.getBlockPosCenter(dest), ctx.playerRotations()), false)); - Vector3d destCenter = VecUtils.getBlockPosCenter(dest); + Vec3 destCenter = VecUtils.getBlockPosCenter(dest); if (Math.abs(ctx.player().getPositionVec().x - destCenter.x) > 0.2 || Math.abs(ctx.player().getPositionVec().z - destCenter.z) > 0.2) { state.setInput(Input.MOVE_FORWARD, true); } @@ -191,13 +198,13 @@ public class MovementPillar extends Movement { boolean blockIsThere = MovementHelper.canWalkOn(ctx, src) || ladder; if (ladder) { - BlockPos against = vine ? getAgainst(new CalculationContext(baritone), src) : src.offset(fromDown.get(LadderBlock.FACING).getOpposite()); + BlockPos against = vine ? getAgainst(new CalculationContext(baritone), src) : src.offset(fromDown.getValue(LadderBlock.FACING).getOpposite()); if (against == null) { logDirect("Unable to climb vines. Consider disabling allowVines."); return state.setStatus(MovementStatus.UNREACHABLE); } - if (ctx.playerFeet().equals(against.up()) || ctx.playerFeet().equals(dest)) { + if (ctx.playerFeet().equals(against.above()) || ctx.playerFeet().equals(dest)) { return state.setStatus(MovementStatus.SUCCESS); } if (MovementHelper.isBottomSlab(BlockStateInterface.get(ctx, src.down()))) { diff --git a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java index 73649a445..e79b8ba5e 100644 --- a/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java +++ b/src/main/java/baritone/pathing/movement/movements/MovementTraverse.java @@ -32,11 +32,18 @@ import baritone.pathing.movement.MovementState; import baritone.utils.BlockStateInterface; import com.google.common.collect.ImmutableSet; import net.minecraft.block.*; -import net.minecraft.fluid.WaterFluid; -import net.minecraft.state.properties.SlabType; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; - +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.DoorBlock; +import net.minecraft.world.level.block.FenceGateBlock; +import net.minecraft.world.level.block.LadderBlock; +import net.minecraft.world.level.block.SlabBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.SlabType; +import net.minecraft.world.level.material.WaterFluid; +import net.minecraft.world.phys.Vec3; import java.util.Optional; import java.util.Set; @@ -129,9 +136,9 @@ public class MovementTraverse extends Movement { double hardness2 = MovementHelper.getMiningDurationTicks(context, destX, y + 1, destZ, pb0, true); // only include falling on the upper block to break double WC = throughWater ? context.waterWalkSpeed : WALK_ONE_BLOCK_COST; for (int i = 0; i < 5; i++) { - int againstX = destX + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getXOffset(); - int againstY = y - 1 + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getYOffset(); - int againstZ = destZ + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getZOffset(); + int againstX = destX + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepX(); + int againstY = y - 1 + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepY(); + int againstZ = destZ + HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP[i].getStepZ(); if (againstX == x && againstZ == z) { // this would be a backplace continue; } @@ -140,10 +147,10 @@ public class MovementTraverse extends Movement { } } // now that we've checked all possible directions to side place, we actually need to backplace - if (srcDown == Blocks.SOUL_SAND || (srcDown instanceof SlabBlock && down.get(SlabBlock.TYPE) != SlabType.DOUBLE)) { + if (srcDown == Blocks.SOUL_SAND || (srcDown instanceof SlabBlock && down.getValue(SlabBlock.TYPE) != SlabType.DOUBLE)) { return COST_INF; // can't sneak and backplace against soul sand or half slabs (regardless of whether it's top half or bottom half) =/ } - if (down.getFluidState().getFluid() instanceof WaterFluid) { + if (down.getFluidState().getType() instanceof WaterFluid) { return COST_INF; // this is obviously impossible } WC = WC * (SNEAK_ONE_BLOCK_COST / WALK_ONE_BLOCK_COST);//since we are sneak backplacing, we are sneaking lol @@ -252,7 +259,7 @@ public class MovementTraverse extends Movement { } BlockPos into = dest.subtract(src).add(dest); BlockState intoBelow = BlockStateInterface.get(ctx, into); - BlockState intoAbove = BlockStateInterface.get(ctx, into.up()); + BlockState intoAbove = BlockStateInterface.get(ctx, into.above()); if (wasTheBridgeBlockAlwaysThere && (!MovementHelper.isLiquid(ctx, feet) || Baritone.settings().sprintInWater.value) && (!MovementHelper.avoidWalkingInto(intoBelow) || MovementHelper.isWater(intoBelow)) && !MovementHelper.avoidWalkingInto(intoAbove)) { state.setInput(Input.SPRINT, true); } @@ -260,7 +267,7 @@ public class MovementTraverse extends Movement { BlockState destDown = BlockStateInterface.get(ctx, dest.down()); BlockPos against = positionsToBreak[0]; if (feet.getY() != dest.getY() && ladder && (destDown.getBlock() == Blocks.VINE || destDown.getBlock() == Blocks.LADDER)) { - against = destDown.getBlock() == Blocks.VINE ? MovementPillar.getAgainst(new CalculationContext(baritone), dest.down()) : dest.offset(destDown.get(LadderBlock.FACING).getOpposite()); + against = destDown.getBlock() == Blocks.VINE ? MovementPillar.getAgainst(new CalculationContext(baritone), dest.down()) : dest.offset(destDown.getValue(LadderBlock.FACING).getOpposite()); if (against == null) { logDirect("Unable to climb vines. Consider disabling allowVines."); return state.setStatus(MovementStatus.UNREACHABLE); @@ -270,7 +277,7 @@ public class MovementTraverse extends Movement { return state; } else { wasTheBridgeBlockAlwaysThere = false; - Block standingOn = BlockStateInterface.get(ctx, feet.down()).getBlock(); + Block standingOn = BlockStateInterface.get(ctx, feet.below()).getBlock(); if (standingOn.equals(Blocks.SOUL_SAND) || standingOn instanceof SlabBlock) { // see issue #118 double dist = Math.max(Math.abs(dest.getX() + 0.5 - ctx.player().getPositionVec().x), Math.abs(dest.getZ() + 0.5 - ctx.player().getPositionVec().z)); if (dist < 0.85) { // 0.5 + 0.3 + epsilon @@ -317,7 +324,7 @@ public class MovementTraverse extends Movement { // faceX, faceY, faceZ is the middle of the face between from and to BlockPos goalLook = src.down(); // this is the block we were just standing on, and the one we want to place against - Rotation backToFace = RotationUtils.calcRotationFromVec3d(ctx.playerHead(), new Vector3d(faceX, faceY, faceZ), ctx.playerRotations()); + Rotation backToFace = RotationUtils.calcRotationFromVec3d(ctx.playerHead(), new Vec3(faceX, faceY, faceZ), ctx.playerRotations()); float pitch = backToFace.getPitch(); double dist2 = Math.max(Math.abs(ctx.player().getPositionVec().x - faceX), Math.abs(ctx.player().getPositionVec().z - faceZ)); if (dist2 < 0.29) { // see issue #208 diff --git a/src/main/java/baritone/pathing/path/PathExecutor.java b/src/main/java/baritone/pathing/path/PathExecutor.java index 4d524870b..524163a45 100644 --- a/src/main/java/baritone/pathing/path/PathExecutor.java +++ b/src/main/java/baritone/pathing/path/PathExecutor.java @@ -32,15 +32,16 @@ import baritone.pathing.movement.Movement; import baritone.pathing.movement.MovementHelper; import baritone.pathing.movement.movements.*; import baritone.utils.BlockStateInterface; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Vec3i; import net.minecraft.util.Tuple; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.math.vector.Vector3i; - +import net.minecraft.world.phys.Vec3; import java.util.*; import static baritone.api.pathing.movement.MovementStatus.*; +import IPlayerContext; + /** * Behavior to execute a precomputed path * @@ -423,7 +424,7 @@ public class PathExecutor implements IPathExecutor, Helper { } } if (current instanceof MovementFall) { - Tuple data = overrideFall((MovementFall) current); + Tuple data = overrideFall((MovementFall) current); if (data != null) { BetterBlockPos fallDest = new BetterBlockPos(data.getB()); if (!path.positions().contains(fallDest)) { @@ -444,15 +445,15 @@ public class PathExecutor implements IPathExecutor, Helper { return false; } - private Tuple overrideFall(MovementFall movement) { - Vector3i dir = movement.getDirection(); + private Tuple overrideFall(MovementFall movement) { + Vec3i dir = movement.getDirection(); if (dir.getY() < -3) { return null; } if (!movement.toBreakCached.isEmpty()) { return null; // it's breaking } - Vector3i flatDir = new Vector3i(dir.getX(), 0, dir.getZ()); + Vec3i flatDir = new Vec3i(dir.getX(), 0, dir.getZ()); int i; outer: for (i = pathPosition + 1; i < path.length() - 1 && i < pathPosition + 3; i++) { @@ -479,7 +480,7 @@ public class PathExecutor implements IPathExecutor, Helper { } double len = i - pathPosition - 0.4; return new Tuple<>( - new Vector3d(flatDir.getX() * len + movement.getDest().x + 0.5, movement.getDest().y, flatDir.getZ() * len + movement.getDest().z + 0.5), + new Vec3(flatDir.getX() * len + movement.getDest().x + 0.5, movement.getDest().y, flatDir.getZ() * len + movement.getDest().z + 0.5), movement.getDest().add(flatDir.getX() * (i - pathPosition), 0, flatDir.getZ() * (i - pathPosition))); } @@ -502,7 +503,7 @@ public class PathExecutor implements IPathExecutor, Helper { if (!Baritone.settings().sprintAscends.value) { return false; } - if (!current.getDirection().equals(next.getDirection().down())) { + if (!current.getDirection().equals(next.getDirection().below())) { return false; } if (nextnext.getDirection().getX() != next.getDirection().getX() || nextnext.getDirection().getZ() != next.getDirection().getZ()) { @@ -521,7 +522,7 @@ public class PathExecutor implements IPathExecutor, Helper { for (int y = 0; y < 3; y++) { BlockPos chk = current.getSrc().up(y); if (x == 1) { - chk = chk.add(current.getDirection()); + chk = chk.offset(current.getDirection()); } if (!MovementHelper.fullyPassable(ctx, chk)) { return false; diff --git a/src/main/java/baritone/process/BackfillProcess.java b/src/main/java/baritone/process/BackfillProcess.java index 490dc8745..5d245c2eb 100644 --- a/src/main/java/baritone/process/BackfillProcess.java +++ b/src/main/java/baritone/process/BackfillProcess.java @@ -26,13 +26,12 @@ import baritone.pathing.movement.MovementHelper; import baritone.pathing.movement.MovementState; import baritone.pathing.path.PathExecutor; import baritone.utils.BaritoneProcessHelper; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.chunk.EmptyChunk; - import java.util.*; import java.util.stream.Collectors; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.EmptyLevelChunk; public final class BackfillProcess extends BaritoneProcessHelper { @@ -57,7 +56,7 @@ public final class BackfillProcess extends BaritoneProcessHelper { } amIBreakingABlockHMMMMMMM(); for (BlockPos pos : new ArrayList<>(blocksToReplace.keySet())) { - if (ctx.world().getChunk(pos) instanceof EmptyChunk) { + if (ctx.world().getChunk(pos) instanceof EmptyLevelChunk) { blocksToReplace.remove(pos); } } @@ -103,7 +102,7 @@ public final class BackfillProcess extends BaritoneProcessHelper { .keySet() .stream() .filter(pos -> ctx.world().getBlockState(pos).getBlock() == Blocks.AIR) - .filter(pos -> baritone.getBuilderProcess().placementPlausible(pos, Blocks.DIRT.getDefaultState())) + .filter(pos -> baritone.getBuilderProcess().placementPlausible(pos, Blocks.DIRT.defaultBlockState())) .filter(pos -> !partOfCurrentMovement(pos)) .sorted(Comparator.comparingDouble(ctx.playerFeet()::distanceSq).reversed()) .collect(Collectors.toList()); diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java index 8d7088016..98e6db93f 100644 --- a/src/main/java/baritone/process/BuilderProcess.java +++ b/src/main/java/baritone/process/BuilderProcess.java @@ -45,25 +45,24 @@ import baritone.utils.schematic.MapArtSchematic; import baritone.utils.schematic.SchematicSystem; import baritone.utils.schematic.schematica.SchematicaHelper; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -import net.minecraft.block.AirBlock; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; -import net.minecraft.block.FlowingFluidBlock; -import net.minecraft.item.BlockItem; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; import net.minecraft.util.Tuple; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.math.vector.Vector3i; - +import net.minecraft.world.InteractionHand; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.VoxelShape; import java.io.File; import java.io.FileInputStream; import java.util.*; @@ -78,7 +77,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil private String name; private ISchematic realSchematic; private ISchematic schematic; - private Vector3i origin; + private Vec3i origin; private int ticks; private boolean paused; private int layer; @@ -90,7 +89,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil } @Override - public void build(String name, ISchematic schematic, Vector3i origin) { + public void build(String name, ISchematic schematic, Vec3i origin) { this.name = name; this.schematic = schematic; this.realSchematic = null; @@ -106,7 +105,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil if (Baritone.settings().schematicOrientationZ.value) { z += schematic.lengthZ(); } - this.origin = new Vector3i(x, y, z); + this.origin = new Vec3i(x, y, z); this.paused = false; this.layer = Baritone.settings().startAtLayer.value; this.numRepeats = 0; @@ -127,7 +126,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil } @Override - public boolean build(String name, File schematic, Vector3i origin) { + public boolean build(String name, File schematic, Vec3i origin) { Optional format = SchematicSystem.INSTANCE.getByFile(schematic); if (!format.isPresent()) { return false; @@ -173,7 +172,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil int widthX = Math.abs(corner1.getX() - corner2.getX()) + 1; int heightY = Math.abs(corner1.getY() - corner2.getY()) + 1; int lengthZ = Math.abs(corner1.getZ() - corner2.getZ()) + 1; - build("clear area", new FillSchematic(widthX, heightY, lengthZ, Blocks.AIR.getDefaultState()), origin); + build("clear area", new FillSchematic(widthX, heightY, lengthZ, Blocks.AIR.defaultBlockState()), origin); } @Override @@ -276,7 +275,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil public boolean placementPlausible(BlockPos pos, BlockState state) { VoxelShape voxelshape = state.getCollisionShape(ctx.world(), pos); - return voxelshape.isEmpty() || ctx.world().checkNoEntityCollision(null, voxelshape.withOffset(pos.getX(), pos.getY(), pos.getZ())); + return voxelshape.isEmpty() || ctx.world().checkNoEntityCollision(null, voxelshape.move(pos.getX(), pos.getY(), pos.getZ())); } private Optional possibleToPlace(BlockState toPlace, int x, int y, int z, BlockStateInterface bsi) { @@ -286,20 +285,20 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil if (MovementHelper.isReplaceable(placeAgainstPos.x, placeAgainstPos.y, placeAgainstPos.z, placeAgainstState, bsi)) { continue; } - if (!toPlace.isValidPosition(ctx.world(), new BetterBlockPos(x, y, z))) { + if (!toPlace.canSurvive(ctx.world(), new BetterBlockPos(x, y, z))) { continue; } if (!placementPlausible(new BetterBlockPos(x, y, z), toPlace)) { continue; } - AxisAlignedBB aabb = placeAgainstState.getShape(ctx.world(), placeAgainstPos).getBoundingBox(); - for (Vector3d placementMultiplier : aabbSideMultipliers(against)) { + AABB aabb = placeAgainstState.getShape(ctx.world(), placeAgainstPos).getBoundingBox(); + for (Vec3 placementMultiplier : aabbSideMultipliers(against)) { double placeX = placeAgainstPos.x + aabb.minX * placementMultiplier.x + aabb.maxX * (1 - placementMultiplier.x); double placeY = placeAgainstPos.y + aabb.minY * placementMultiplier.y + aabb.maxY * (1 - placementMultiplier.y); double placeZ = placeAgainstPos.z + aabb.minZ * placementMultiplier.z + aabb.maxZ * (1 - placementMultiplier.z); - Rotation rot = RotationUtils.calcRotationFromVec3d(RayTraceUtils.inferSneakingEyePosition(ctx.player()), new Vector3d(placeX, placeY, placeZ), ctx.playerRotations()); - RayTraceResult result = RayTraceUtils.rayTraceTowards(ctx.player(), rot, ctx.playerController().getBlockReachDistance(), true); - if (result != null && result.getType() == RayTraceResult.Type.BLOCK && ((BlockRayTraceResult) result).getPos().equals(placeAgainstPos) && ((BlockRayTraceResult) result).getFace() == against.getOpposite()) { + Rotation rot = RotationUtils.calcRotationFromVec3d(RayTraceUtils.inferSneakingEyePosition(ctx.player()), new Vec3(placeX, placeY, placeZ), ctx.playerRotations()); + HitResult result = RayTraceUtils.rayTraceTowards(ctx.player(), rot, ctx.playerController().getBlockReachDistance(), true); + if (result != null && result.getType() == HitResult.Type.BLOCK && ((BlockHitResult) result).getBlockPos().equals(placeAgainstPos) && ((BlockHitResult) result).getDirection() == against.getOpposite()) { OptionalInt hotbar = hasAnyItemThatWouldPlace(toPlace, result, rot); if (hotbar.isPresent()) { return Optional.of(new Placement(hotbar.getAsInt(), placeAgainstPos, against.getOpposite(), rot)); @@ -310,7 +309,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil return Optional.empty(); } - private OptionalInt hasAnyItemThatWouldPlace(BlockState desired, RayTraceResult result, Rotation rot) { + private OptionalInt hasAnyItemThatWouldPlace(BlockState desired, HitResult result, Rotation rot) { for (int i = 0; i < 9; i++) { ItemStack stack = ctx.player().inventory.mainInventory.get(i); if (stack.isEmpty() || !(stack.getItem() instanceof BlockItem)) { @@ -321,12 +320,12 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil // the state depends on the facing of the player sometimes ctx.player().rotationYaw = rot.getYaw(); ctx.player().rotationPitch = rot.getPitch(); - BlockItemUseContext meme = new BlockItemUseContext(new ItemUseContext( + BlockPlaceContext meme = new BlockPlaceContext(new UseOnContext( ctx.world(), ctx.player(), - Hand.MAIN_HAND, + InteractionHand.MAIN_HAND, stack, - (BlockRayTraceResult) result + (BlockHitResult) result ) {}); // that {} gives us access to a protected constructor lmfao BlockState wouldBePlaced = ((BlockItem) stack.getItem()).getBlock().getStateForPlacement(meme); ctx.player().rotationYaw = originalYaw; @@ -344,19 +343,19 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil return OptionalInt.empty(); } - private static Vector3d[] aabbSideMultipliers(Direction side) { + private static Vec3[] aabbSideMultipliers(Direction side) { switch (side) { case UP: - return new Vector3d[]{new Vector3d(0.5, 1, 0.5), new Vector3d(0.1, 1, 0.5), new Vector3d(0.9, 1, 0.5), new Vector3d(0.5, 1, 0.1), new Vector3d(0.5, 1, 0.9)}; + return new Vec3[]{new Vec3(0.5, 1, 0.5), new Vec3(0.1, 1, 0.5), new Vec3(0.9, 1, 0.5), new Vec3(0.5, 1, 0.1), new Vec3(0.5, 1, 0.9)}; case DOWN: - return new Vector3d[]{new Vector3d(0.5, 0, 0.5), new Vector3d(0.1, 0, 0.5), new Vector3d(0.9, 0, 0.5), new Vector3d(0.5, 0, 0.1), new Vector3d(0.5, 0, 0.9)}; + return new Vec3[]{new Vec3(0.5, 0, 0.5), new Vec3(0.1, 0, 0.5), new Vec3(0.9, 0, 0.5), new Vec3(0.5, 0, 0.1), new Vec3(0.5, 0, 0.9)}; case NORTH: case SOUTH: case EAST: case WEST: - double x = side.getXOffset() == 0 ? 0.5 : (1 + side.getXOffset()) / 2D; - double z = side.getZOffset() == 0 ? 0.5 : (1 + side.getZOffset()) / 2D; - return new Vector3d[]{new Vector3d(x, 0.25, z), new Vector3d(x, 0.75, z)}; + double x = side.getStepX() == 0 ? 0.5 : (1 + side.getStepX()) / 2D; + double z = side.getStepZ() == 0 ? 0.5 : (1 + side.getStepZ()) / 2D; + return new Vec3[]{new Vec3(x, 0.25, z), new Vec3(x, 0.75, z)}; default: // null throw new IllegalStateException(); } @@ -424,10 +423,10 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil layer++; return onTick(calcFailed, isSafeToCancel); } - Vector3i repeat = Baritone.settings().buildRepeat.value; + Vec3i repeat = Baritone.settings().buildRepeat.value; int max = Baritone.settings().buildRepeatCount.value; numRepeats++; - if (repeat.equals(new Vector3i(0, 0, 0)) || (max != -1 && numRepeats >= max)) { + if (repeat.equals(new Vec3i(0, 0, 0)) || (max != -1 && numRepeats >= max)) { logDirect("Done building"); if (Baritone.settings().desktopNotifications.value && Baritone.settings().notificationOnBuildFinished.value) { NotificationHelper.notify("Done building", false); @@ -437,7 +436,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil } // build repeat time layer = 0; - origin = new BlockPos(origin).add(repeat); + origin = new BlockPos(origin).offset(repeat); logDirect("Repeating build in vector " + repeat + ", new origin is " + origin); return onTick(calcFailed, isSafeToCancel); } @@ -471,7 +470,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil baritone.getLookBehavior().updateTarget(rot, true); ctx.player().inventory.currentItem = toPlace.get().hotbarSelection; baritone.getInputOverrideHandler().setInputForceState(Input.SNEAK, true); - if ((ctx.isLookingAt(toPlace.get().placeAgainst) && ((BlockRayTraceResult) ctx.objectMouseOver()).getFace().equals(toPlace.get().side)) || ctx.playerRotations().isReallyCloseTo(rot)) { + if ((ctx.isLookingAt(toPlace.get().placeAgainst) && ((BlockHitResult) ctx.objectMouseOver()).getDirection().equals(toPlace.get().side)) || ctx.playerRotations().isReallyCloseTo(rot)) { baritone.getInputOverrideHandler().setInputForceState(Input.CLICK_RIGHT, true); } return new PathingCommand(null, PathingCommandType.CANCEL_AND_SET_GOAL); @@ -720,20 +719,20 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil if (!(ctx.world().getBlockState(pos).getBlock() instanceof AirBlock)) { // TODO can this even happen? return new GoalPlace(pos); } - boolean allowSameLevel = !(ctx.world().getBlockState(pos.up()).getBlock() instanceof AirBlock); + boolean allowSameLevel = !(ctx.world().getBlockState(pos.above()).getBlock() instanceof AirBlock); BlockState current = ctx.world().getBlockState(pos); for (Direction facing : Movement.HORIZONTALS_BUT_ALSO_DOWN_____SO_EVERY_DIRECTION_EXCEPT_UP) { //noinspection ConstantConditions - if (MovementHelper.canPlaceAgainst(ctx, pos.offset(facing)) && placementPlausible(pos, bcc.getSchematic(pos.getX(), pos.getY(), pos.getZ(), current))) { - return new GoalAdjacent(pos, pos.offset(facing), allowSameLevel); + if (MovementHelper.canPlaceAgainst(ctx, pos.relative(facing)) && placementPlausible(pos, bcc.getSchematic(pos.getX(), pos.getY(), pos.getZ(), current))) { + return new GoalAdjacent(pos, pos.relative(facing), allowSameLevel); } } return new GoalPlace(pos); } private Goal breakGoal(BlockPos pos, BuilderCalculationContext bcc) { - if (Baritone.settings().goalBreakFromAbove.value && bcc.bsi.get0(pos.up()).getBlock() instanceof AirBlock && bcc.bsi.get0(pos.up(2)).getBlock() instanceof AirBlock) { // TODO maybe possible without the up(2) check? - return new JankyGoalComposite(new GoalBreak(pos), new GoalGetToBlock(pos.up()) { + if (Baritone.settings().goalBreakFromAbove.value && bcc.bsi.get0(pos.above()).getBlock() instanceof AirBlock && bcc.bsi.get0(pos.above(2)).getBlock() instanceof AirBlock) { // TODO maybe possible without the up(2) check? + return new JankyGoalComposite(new GoalBreak(pos), new GoalGetToBlock(pos.above()) { @Override public boolean isInGoal(int x, int y, int z) { if (y > this.y || (x == this.x && y == this.y && z == this.z)) { @@ -782,7 +781,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil public static class GoalPlace extends GoalBlock { public GoalPlace(BlockPos placeAt) { - super(placeAt.up()); + super(placeAt.above()); } public double heuristic(int x, int y, int z) { @@ -813,11 +812,11 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil for (int i = 0; i < size; i++) { ItemStack stack = ctx.player().inventory.mainInventory.get(i); if (stack.isEmpty() || !(stack.getItem() instanceof BlockItem)) { - result.add(Blocks.AIR.getDefaultState()); + result.add(Blocks.AIR.defaultBlockState()); continue; } // - result.add(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockItemUseContext(new ItemUseContext(ctx.world(), ctx.player(), Hand.MAIN_HAND, stack, new BlockRayTraceResult(new Vector3d(ctx.player().getPositionVec().x, ctx.player().getPositionVec().y, ctx.player().getPositionVec().z), Direction.UP, ctx.playerFeet(), false)) {}))); + result.add(((BlockItem) stack.getItem()).getBlock().getStateForPlacement(new BlockPlaceContext(new UseOnContext(ctx.world(), ctx.player(), InteractionHand.MAIN_HAND, stack, new BlockHitResult(new Vec3(ctx.player().getPositionVec().x, ctx.player().getPositionVec().y, ctx.player().getPositionVec().z), Direction.UP, ctx.playerFeet(), false)) {}))); // } return result; @@ -827,7 +826,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil if (desired == null) { return true; } - if (current.getBlock() instanceof FlowingFluidBlock && Baritone.settings().okIfWater.value) { + if (current.getBlock() instanceof LiquidBlock && Baritone.settings().okIfWater.value) { return true; } if (current.getBlock() instanceof AirBlock && desired.getBlock() instanceof AirBlock) { diff --git a/src/main/java/baritone/process/ExploreProcess.java b/src/main/java/baritone/process/ExploreProcess.java index c42ece0e5..f86f5ed48 100644 --- a/src/main/java/baritone/process/ExploreProcess.java +++ b/src/main/java/baritone/process/ExploreProcess.java @@ -33,14 +33,13 @@ import baritone.utils.NotificationHelper; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import it.unimi.dsi.fastutil.longs.LongOpenHashSet; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; - import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.ChunkPos; public final class ExploreProcess extends BaritoneProcessHelper implements IExploreProcess { diff --git a/src/main/java/baritone/process/FarmProcess.java b/src/main/java/baritone/process/FarmProcess.java index 3b1f8f28a..243e29cc6 100644 --- a/src/main/java/baritone/process/FarmProcess.java +++ b/src/main/java/baritone/process/FarmProcess.java @@ -33,18 +33,26 @@ import baritone.pathing.movement.MovementHelper; import baritone.utils.BaritoneProcessHelper; import baritone.utils.NotificationHelper; import net.minecraft.block.*; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.World; - +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.Item; +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.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.CropBlock; +import net.minecraft.world.level.block.NetherWartBlock; +import net.minecraft.world.level.block.SugarCaneBlock; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -109,27 +117,27 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro } private enum Harvest { - WHEAT((CropsBlock) Blocks.WHEAT), - CARROTS((CropsBlock) Blocks.CARROTS), - POTATOES((CropsBlock) Blocks.POTATOES), - BEETROOT((CropsBlock) Blocks.BEETROOTS), + WHEAT((CropBlock) Blocks.WHEAT), + CARROTS((CropBlock) Blocks.CARROTS), + POTATOES((CropBlock) Blocks.POTATOES), + BEETROOT((CropBlock) Blocks.BEETROOTS), PUMPKIN(Blocks.PUMPKIN, state -> true), MELON(Blocks.MELON, state -> true), - NETHERWART(Blocks.NETHER_WART, state -> state.get(NetherWartBlock.AGE) >= 3), + NETHERWART(Blocks.NETHER_WART, state -> state.getValue(NetherWartBlock.AGE) >= 3), SUGARCANE(Blocks.SUGAR_CANE, null) { @Override - public boolean readyToHarvest(World world, BlockPos pos, BlockState state) { + public boolean readyToHarvest(Level world, BlockPos pos, BlockState state) { if (Baritone.settings().replantCrops.value) { - return world.getBlockState(pos.down()).getBlock() instanceof SugarCaneBlock; + return world.getBlockState(pos.below()).getBlock() instanceof SugarCaneBlock; } return true; } }, CACTUS(Blocks.CACTUS, null) { @Override - public boolean readyToHarvest(World world, BlockPos pos, BlockState state) { + public boolean readyToHarvest(Level world, BlockPos pos, BlockState state) { if (Baritone.settings().replantCrops.value) { - return world.getBlockState(pos.down()).getBlock() instanceof CactusBlock; + return world.getBlockState(pos.below()).getBlock() instanceof CactusBlock; } return true; } @@ -137,7 +145,7 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro public final Block block; public final Predicate readyToHarvest; - Harvest(CropsBlock blockCrops) { + Harvest(CropBlock blockCrops) { this(blockCrops, blockCrops::isMaxAge); // max age is 7 for wheat, carrots, and potatoes, but 3 for beetroot } @@ -147,12 +155,12 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro this.readyToHarvest = readyToHarvest; } - public boolean readyToHarvest(World world, BlockPos pos, BlockState state) { + public boolean readyToHarvest(Level world, BlockPos pos, BlockState state) { return readyToHarvest.test(state); } } - private boolean readyForHarvest(World world, BlockPos pos, BlockState state) { + private boolean readyForHarvest(Level world, BlockPos pos, BlockState state) { for (Harvest harvest : Harvest.values()) { if (harvest.block == state.getBlock()) { return harvest.readyToHarvest(world, pos, state); @@ -198,12 +206,12 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro List openSoulsand = new ArrayList<>(); for (BlockPos pos : locations) { //check if the target block is out of range. - if (range != 0 && pos.distanceSq(center) > range * range) { + if (range != 0 && pos.distSqr(center) > range * range) { continue; } BlockState state = ctx.world().getBlockState(pos); - boolean airAbove = ctx.world().getBlockState(pos.up()).getBlock() instanceof AirBlock; + boolean airAbove = ctx.world().getBlockState(pos.above()).getBlock() instanceof AirBlock; if (state.getBlock() == Blocks.FARMLAND) { if (airAbove) { openFarmland.add(pos); @@ -220,9 +228,9 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro toBreak.add(pos); continue; } - if (state.getBlock() instanceof IGrowable) { - IGrowable ig = (IGrowable) state.getBlock(); - if (ig.canGrow(ctx.world(), pos, state, true) && ig.canUseBonemeal(ctx.world(), ctx.world().rand, pos, state)) { + if (state.getBlock() instanceof BonemealableBlock) { + BonemealableBlock ig = (BonemealableBlock) state.getBlock(); + if (ig.isValidBonemealTarget(ctx.world(), pos, state, true) && ig.isBonemealSuccess(ctx.world(), ctx.world().rand, pos, state)) { bonemealable.add(pos); } } @@ -244,10 +252,10 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro both.addAll(openSoulsand); for (BlockPos pos : both) { boolean soulsand = openSoulsand.contains(pos); - Optional rot = RotationUtils.reachableOffset(ctx.player(), pos, new Vector3d(pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5), ctx.playerController().getBlockReachDistance(), false); + Optional rot = RotationUtils.reachableOffset(ctx.player(), pos, new Vec3(pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5), ctx.playerController().getBlockReachDistance(), false); if (rot.isPresent() && isSafeToCancel && baritone.getInventoryBehavior().throwaway(true, soulsand ? this::isNetherWart : this::isPlantable)) { - RayTraceResult result = RayTraceUtils.rayTraceTowards(ctx.player(), rot.get(), ctx.playerController().getBlockReachDistance()); - if (result instanceof BlockRayTraceResult && ((BlockRayTraceResult) result).getFace() == Direction.UP) { + HitResult result = RayTraceUtils.rayTraceTowards(ctx.player(), rot.get(), ctx.playerController().getBlockReachDistance()); + if (result instanceof BlockHitResult && ((BlockHitResult) result).getDirection() == Direction.UP) { baritone.getLookBehavior().updateTarget(rot.get(), true); if (ctx.isLookingAt(pos)) { baritone.getInputOverrideHandler().setInputForceState(Input.CLICK_RIGHT, true); @@ -282,12 +290,12 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro } if (baritone.getInventoryBehavior().throwaway(false, this::isPlantable)) { for (BlockPos pos : openFarmland) { - goalz.add(new GoalBlock(pos.up())); + goalz.add(new GoalBlock(pos.above())); } } if (baritone.getInventoryBehavior().throwaway(false, this::isNetherWart)) { for (BlockPos pos : openSoulsand) { - goalz.add(new GoalBlock(pos.up())); + goalz.add(new GoalBlock(pos.above())); } } if (baritone.getInventoryBehavior().throwaway(false, this::isBoneMeal)) { @@ -300,7 +308,7 @@ public final class FarmProcess extends BaritoneProcessHelper implements IFarmPro ItemEntity ei = (ItemEntity) entity; if (PICKUP_DROPPED.contains(ei.getItem().getItem())) { // +0.1 because of farmland's 0.9375 dummy height lol - goalz.add(new GoalBlock(new BlockPos(entity.getPositionVec().x, entity.getPositionVec().y + 0.1, entity.getPositionVec().z))); + goalz.add(new GoalBlock(new BlockPos(entity.position().x, entity.position().y + 0.1, entity.position().z))); } } } diff --git a/src/main/java/baritone/process/FollowProcess.java b/src/main/java/baritone/process/FollowProcess.java index 85a273e75..085b17ae5 100644 --- a/src/main/java/baritone/process/FollowProcess.java +++ b/src/main/java/baritone/process/FollowProcess.java @@ -26,12 +26,11 @@ import baritone.api.process.IFollowProcess; import baritone.api.process.PathingCommand; import baritone.api.process.PathingCommandType; import baritone.utils.BaritoneProcessHelper; -import net.minecraft.entity.Entity; -import net.minecraft.util.math.BlockPos; - import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; /** * Follow an entity @@ -57,10 +56,10 @@ public final class FollowProcess extends BaritoneProcessHelper implements IFollo private Goal towards(Entity following) { BlockPos pos; if (Baritone.settings().followOffsetDistance.value == 0) { - pos = following.getPosition(); + pos = following.blockPosition(); } else { - GoalXZ g = GoalXZ.fromDirection(following.getPositionVec(), Baritone.settings().followOffsetDirection.value, Baritone.settings().followOffsetDistance.value); - pos = new BlockPos(g.getX(), following.getPositionVec().y, g.getZ()); + GoalXZ g = GoalXZ.fromDirection(following.position(), Baritone.settings().followOffsetDirection.value, Baritone.settings().followOffsetDistance.value); + pos = new BlockPos(g.getX(), following.position().y, g.getZ()); } return new GoalNear(pos, Baritone.settings().followRadius.value); } diff --git a/src/main/java/baritone/process/GetToBlockProcess.java b/src/main/java/baritone/process/GetToBlockProcess.java index 444b7f9d0..21bbaf4e0 100644 --- a/src/main/java/baritone/process/GetToBlockProcess.java +++ b/src/main/java/baritone/process/GetToBlockProcess.java @@ -17,6 +17,7 @@ package baritone.process; +import Goal; import baritone.Baritone; import baritone.api.pathing.goals.*; import baritone.api.process.IGetToBlockProcess; @@ -30,12 +31,11 @@ import baritone.api.utils.input.Input; import baritone.pathing.movement.CalculationContext; import baritone.pathing.movement.MovementHelper; import baritone.utils.BaritoneProcessHelper; -import net.minecraft.block.Block; -import net.minecraft.block.Blocks; -import net.minecraft.inventory.container.PlayerContainer; -import net.minecraft.util.math.BlockPos; - import java.util.*; +import net.minecraft.core.BlockPos; +import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; public final class GetToBlockProcess extends BaritoneProcessHelper implements IGetToBlockProcess { @@ -183,8 +183,8 @@ public final class GetToBlockProcess extends BaritoneProcessHelper implements IG if (walkIntoInsteadOfAdjacent(gettingTo.getBlock())) { return new GoalTwoBlocks(pos); } - if (blockOnTopMustBeRemoved(gettingTo.getBlock()) && MovementHelper.isBlockNormalCube(baritone.bsi.get0(pos.up()))) { // TODO this should be the check for chest openability - return new GoalBlock(pos.up()); + if (blockOnTopMustBeRemoved(gettingTo.getBlock()) && MovementHelper.isBlockNormalCube(baritone.bsi.get0(pos.above()))) { // TODO this should be the check for chest openability + return new GoalBlock(pos.above()); } return new GoalGetToBlock(pos); } @@ -197,7 +197,7 @@ public final class GetToBlockProcess extends BaritoneProcessHelper implements IG if (knownLocations.contains(ctx.getSelectedBlock().orElse(null))) { baritone.getInputOverrideHandler().setInputForceState(Input.CLICK_RIGHT, true); // TODO find some way to right click even if we're in an ESC menu System.out.println(ctx.player().openContainer); - if (!(ctx.player().openContainer instanceof PlayerContainer)) { + if (!(ctx.player().openContainer instanceof InventoryMenu)) { return true; } } diff --git a/src/main/java/baritone/process/MineProcess.java b/src/main/java/baritone/process/MineProcess.java index 0772452f7..2222ed134 100644 --- a/src/main/java/baritone/process/MineProcess.java +++ b/src/main/java/baritone/process/MineProcess.java @@ -32,17 +32,25 @@ import baritone.utils.BaritoneProcessHelper; import baritone.utils.BlockStateInterface; import baritone.utils.NotificationHelper; import net.minecraft.block.*; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.math.BlockPos; - +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.FallingBlock; +import net.minecraft.world.level.block.state.BlockState; import java.util.*; import java.util.stream.Collectors; import static baritone.api.pathing.movement.ActionCosts.COST_INF; +import BlockOptionalMetaLookup; +import Goal; +import GoalRunAway; + /** * Mine blocks of a certain type * @@ -248,7 +256,7 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro } private Goal coalesce(BlockPos loc, List locs, CalculationContext context) { - boolean assumeVerticalShaftMine = !(baritone.bsi.get0(loc.up()).getBlock() instanceof FallingBlock); + boolean assumeVerticalShaftMine = !(baritone.bsi.get0(loc.above()).getBlock() instanceof FallingBlock); if (!Baritone.settings().forceInternalMining.value) { if (assumeVerticalShaftMine) { // we can get directly below the block @@ -258,9 +266,9 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro return new GoalTwoBlocks(loc); } } - boolean upwardGoal = internalMiningGoal(loc.up(), context, locs); - boolean downwardGoal = internalMiningGoal(loc.down(), context, locs); - boolean doubleDownwardGoal = internalMiningGoal(loc.down(2), context, locs); + boolean upwardGoal = internalMiningGoal(loc.above(), context, locs); + boolean downwardGoal = internalMiningGoal(loc.below(), context, locs); + boolean doubleDownwardGoal = internalMiningGoal(loc.below(2), context, locs); if (upwardGoal == downwardGoal) { // symmetric if (doubleDownwardGoal && assumeVerticalShaftMine) { // we have a checkerboard like pattern @@ -282,11 +290,11 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro if (doubleDownwardGoal && assumeVerticalShaftMine) { // this block and two below it are goals // path into the center of the one below, because that includes directly below this one - return new GoalTwoBlocks(loc.down()); + return new GoalTwoBlocks(loc.below()); } // upwardGoal false, downwardGoal true, doubleDownwardGoal false // just this block and the one immediately below, no others - return new GoalBlock(loc.down()); + return new GoalBlock(loc.below()); } private static class GoalThreeBlocks extends GoalTwoBlocks { @@ -314,11 +322,11 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro return Collections.emptyList(); } List ret = new ArrayList<>(); - for (Entity entity : ((ClientWorld) ctx.world()).getAllEntities()) { + for (Entity entity : ((ClientLevel) ctx.world()).entitiesForRendering()) { if (entity instanceof ItemEntity) { ItemEntity ei = (ItemEntity) entity; if (filter.has(ei.getItem())) { - ret.add(entity.getPosition()); + ret.add(entity.blockPosition()); } } } @@ -378,7 +386,7 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro // is an x-ray and it'll get caught if (filter.has(bsi.get0(x, y, z))) { BlockPos pos = new BlockPos(x, y, z); - if ((Baritone.settings().legitMineIncludeDiagonals.value && knownOreLocations.stream().anyMatch(ore -> ore.distanceSq(pos) <= 2 /* sq means this is pytha dist <= sqrt(2) */)) || RotationUtils.reachable(ctx.player(), pos, fakedBlockReachDistance).isPresent()) { + if ((Baritone.settings().legitMineIncludeDiagonals.value && knownOreLocations.stream().anyMatch(ore -> ore.distSqr(pos) <= 2 /* sq means this is pytha dist <= sqrt(2) */)) || RotationUtils.reachable(ctx.player(), pos, fakedBlockReachDistance).isPresent()) { knownOreLocations.add(pos); } } @@ -391,7 +399,7 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro private static List prune(CalculationContext ctx, List locs2, BlockOptionalMetaLookup filter, int max, List blacklist, List dropped) { dropped.removeIf(drop -> { for (BlockPos pos : locs2) { - if (pos.distanceSq(drop) <= 9 && filter.has(ctx.get(pos.getX(), pos.getY(), pos.getZ())) && MineProcess.plausibleToBreak(ctx, pos)) { // TODO maybe drop also has to be supported? no lava below? + if (pos.distSqr(drop) <= 9 && filter.has(ctx.get(pos.getX(), pos.getY(), pos.getZ())) && MineProcess.plausibleToBreak(ctx, pos)) { // TODO maybe drop also has to be supported? no lava below? return true; } } @@ -450,7 +458,7 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro } // bedrock above and below makes it implausible, otherwise we're good - return !(ctx.bsi.get0(pos.up()).getBlock() == Blocks.BEDROCK && ctx.bsi.get0(pos.down()).getBlock() == Blocks.BEDROCK); + return !(ctx.bsi.get0(pos.above()).getBlock() == Blocks.BEDROCK && ctx.bsi.get0(pos.below()).getBlock() == Blocks.BEDROCK); } @Override diff --git a/src/main/java/baritone/selection/Selection.java b/src/main/java/baritone/selection/Selection.java index df8e06c11..730856943 100644 --- a/src/main/java/baritone/selection/Selection.java +++ b/src/main/java/baritone/selection/Selection.java @@ -2,9 +2,9 @@ package baritone.selection; import baritone.api.selection.ISelection; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.Direction; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.vector.Vector3i; +import net.minecraft.core.Direction; +import net.minecraft.core.Vec3i; +import net.minecraft.world.phys.AABB; public class Selection implements ISelection { @@ -12,8 +12,8 @@ public class Selection implements ISelection { private final BetterBlockPos pos2; private final BetterBlockPos min; private final BetterBlockPos max; - private final Vector3i size; - private final AxisAlignedBB aabb; + private final Vec3i size; + private final AABB aabb; public Selection(BetterBlockPos pos1, BetterBlockPos pos2) { this.pos1 = pos1; @@ -31,13 +31,13 @@ public class Selection implements ISelection { Math.max(pos1.z, pos2.z) ); - this.size = new Vector3i( + this.size = new Vec3i( max.x - min.x + 1, max.y - min.y + 1, max.z - min.z + 1 ); - this.aabb = new AxisAlignedBB(this.min, this.max.add(1, 1, 1)); + this.aabb = new AABB(this.min, this.max.add(1, 1, 1)); } @Override @@ -61,12 +61,12 @@ public class Selection implements ISelection { } @Override - public Vector3i size() { + public Vec3i size() { return size; } @Override - public AxisAlignedBB aabb() { + public AABB aabb() { return aabb; } @@ -91,7 +91,7 @@ public class Selection implements ISelection { * else if they're both at the same position on that axis (it really doesn't matter) */ private boolean isPos2(Direction facing) { - boolean negative = facing.getAxisDirection().getOffset() < 0; + boolean negative = facing.getAxisDirection().getStep() < 0; switch (facing.getAxis()) { case X: diff --git a/src/main/java/baritone/selection/SelectionManager.java b/src/main/java/baritone/selection/SelectionManager.java index 14e6d0c93..150bd9d17 100644 --- a/src/main/java/baritone/selection/SelectionManager.java +++ b/src/main/java/baritone/selection/SelectionManager.java @@ -4,10 +4,9 @@ import baritone.Baritone; import baritone.api.selection.ISelection; import baritone.api.selection.ISelectionManager; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.Direction; - import java.util.LinkedList; import java.util.ListIterator; +import net.minecraft.core.Direction; public class SelectionManager implements ISelectionManager { diff --git a/src/main/java/baritone/selection/SelectionRenderer.java b/src/main/java/baritone/selection/SelectionRenderer.java index e5493a7ea..d0be61e64 100644 --- a/src/main/java/baritone/selection/SelectionRenderer.java +++ b/src/main/java/baritone/selection/SelectionRenderer.java @@ -5,8 +5,8 @@ import baritone.api.event.events.RenderEvent; import baritone.api.event.listener.AbstractGameEventListener; import baritone.api.selection.ISelection; import baritone.utils.IRenderer; -import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.util.math.AxisAlignedBB; +import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.world.phys.AABB; public class SelectionRenderer implements IRenderer, AbstractGameEventListener { @@ -19,7 +19,7 @@ public class SelectionRenderer implements IRenderer, AbstractGameEventListener { baritone.getGameEventHandler().registerEventListener(this); } - public static void renderSelections(MatrixStack stack, ISelection[] selections) { + public static void renderSelections(PoseStack stack, ISelection[] selections) { float opacity = settings.selectionOpacity.value; boolean ignoreDepth = settings.renderSelectionIgnoreDepth.value; float lineWidth = settings.selectionLineWidth.value; @@ -38,13 +38,13 @@ public class SelectionRenderer implements IRenderer, AbstractGameEventListener { IRenderer.glColor(settings.colorSelectionPos1.value, opacity); for (ISelection selection : selections) { - IRenderer.drawAABB(stack, new AxisAlignedBB(selection.pos1(), selection.pos1().add(1, 1, 1))); + IRenderer.drawAABB(stack, new AABB(selection.pos1(), selection.pos1().add(1, 1, 1))); } IRenderer.glColor(settings.colorSelectionPos2.value, opacity); for (ISelection selection : selections) { - IRenderer.drawAABB(stack, new AxisAlignedBB(selection.pos2(), selection.pos2().add(1, 1, 1))); + IRenderer.drawAABB(stack, new AABB(selection.pos2(), selection.pos2().add(1, 1, 1))); } } diff --git a/src/main/java/baritone/utils/BlockBreakHelper.java b/src/main/java/baritone/utils/BlockBreakHelper.java index ad3deda07..62262d5a8 100644 --- a/src/main/java/baritone/utils/BlockBreakHelper.java +++ b/src/main/java/baritone/utils/BlockBreakHelper.java @@ -19,9 +19,9 @@ package baritone.utils; import baritone.api.utils.Helper; import baritone.api.utils.IPlayerContext; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; /** * @author Brady @@ -49,19 +49,19 @@ public final class BlockBreakHelper implements Helper { } public void tick(boolean isLeftClick) { - RayTraceResult trace = ctx.objectMouseOver(); - boolean isBlockTrace = trace != null && trace.getType() == RayTraceResult.Type.BLOCK; + HitResult trace = ctx.objectMouseOver(); + boolean isBlockTrace = trace != null && trace.getType() == HitResult.Type.BLOCK; if (isLeftClick && isBlockTrace) { if (!didBreakLastTick) { ctx.playerController().syncHeldItem(); - ctx.playerController().clickBlock(((BlockRayTraceResult) trace).getPos(), ((BlockRayTraceResult) trace).getFace()); - ctx.player().swingArm(Hand.MAIN_HAND); + ctx.playerController().clickBlock(((BlockHitResult) trace).getBlockPos(), ((BlockHitResult) trace).getDirection()); + ctx.player().swingArm(InteractionHand.MAIN_HAND); } // Attempt to break the block - if (ctx.playerController().onPlayerDamageBlock(((BlockRayTraceResult) trace).getPos(), ((BlockRayTraceResult) trace).getFace())) { - ctx.player().swingArm(Hand.MAIN_HAND); + if (ctx.playerController().onPlayerDamageBlock(((BlockHitResult) trace).getBlockPos(), ((BlockHitResult) trace).getDirection())) { + ctx.player().swingArm(InteractionHand.MAIN_HAND); } ctx.playerController().setHittingBlock(false); diff --git a/src/main/java/baritone/utils/BlockPlaceHelper.java b/src/main/java/baritone/utils/BlockPlaceHelper.java index a0cc2d2d7..2374bdd0c 100644 --- a/src/main/java/baritone/utils/BlockPlaceHelper.java +++ b/src/main/java/baritone/utils/BlockPlaceHelper.java @@ -20,10 +20,10 @@ package baritone.utils; import baritone.Baritone; import baritone.api.utils.Helper; import baritone.api.utils.IPlayerContext; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.util.math.RayTraceResult; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; public class BlockPlaceHelper implements Helper { @@ -39,17 +39,17 @@ public class BlockPlaceHelper implements Helper { rightClickTimer--; return; } - RayTraceResult mouseOver = ctx.objectMouseOver(); - if (!rightClickRequested || ctx.player().isRowingBoat() || mouseOver == null || mouseOver.getType() != RayTraceResult.Type.BLOCK) { + HitResult mouseOver = ctx.objectMouseOver(); + if (!rightClickRequested || ctx.player().isRowingBoat() || mouseOver == null || mouseOver.getType() != HitResult.Type.BLOCK) { return; } rightClickTimer = Baritone.settings().rightClickSpeed.value; - for (Hand hand : Hand.values()) { - if (ctx.playerController().processRightClickBlock(ctx.player(), ctx.world(), hand, (BlockRayTraceResult) mouseOver) == ActionResultType.SUCCESS) { + for (InteractionHand hand : InteractionHand.values()) { + if (ctx.playerController().processRightClickBlock(ctx.player(), ctx.world(), hand, (BlockHitResult) mouseOver) == InteractionResult.SUCCESS) { ctx.player().swingArm(hand); return; } - if (!ctx.player().getHeldItem(hand).isEmpty() && ctx.playerController().processRightClick(ctx.player(), ctx.world(), hand) == ActionResultType.SUCCESS) { + if (!ctx.player().getHeldItem(hand).isEmpty() && ctx.playerController().processRightClick(ctx.player(), ctx.world(), hand) == InteractionResult.SUCCESS) { return; } } diff --git a/src/main/java/baritone/utils/BlockStateInterface.java b/src/main/java/baritone/utils/BlockStateInterface.java index 60159f322..c37d898ef 100644 --- a/src/main/java/baritone/utils/BlockStateInterface.java +++ b/src/main/java/baritone/utils/BlockStateInterface.java @@ -22,17 +22,17 @@ import baritone.api.utils.IPlayerContext; import baritone.cache.CachedRegion; import baritone.cache.WorldData; import baritone.utils.accessor.IClientChunkProvider; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.client.Minecraft; -import net.minecraft.client.multiplayer.ClientChunkProvider; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.chunk.ChunkSection; -import net.minecraft.world.chunk.ChunkStatus; +import net.minecraft.client.multiplayer.ClientChunkCache; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.chunk.ChunkStatus; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.world.level.chunk.LevelChunkSection; /** * Wraps get for chuck caching capability @@ -41,18 +41,18 @@ import net.minecraft.world.chunk.ChunkStatus; */ public class BlockStateInterface { - private final ClientChunkProvider provider; + private final ClientChunkCache provider; private final WorldData worldData; - protected final IBlockReader world; - public final BlockPos.Mutable isPassableBlockPos; - public final IBlockReader access; + protected final BlockGetter world; + public final BlockPos.MutableBlockPos isPassableBlockPos; + public final BlockGetter access; - private Chunk prev = null; + private LevelChunk prev = null; private CachedRegion prevCached = null; private final boolean useTheRealWorld; - private static final BlockState AIR = Blocks.AIR.getDefaultState(); + private static final BlockState AIR = Blocks.AIR.defaultBlockState(); public BlockStateInterface(IPlayerContext ctx) { this(ctx, false); @@ -62,24 +62,24 @@ public class BlockStateInterface { this(ctx.world(), (WorldData) ctx.worldData(), copyLoadedChunks); } - public BlockStateInterface(World world, WorldData worldData, boolean copyLoadedChunks) { + public BlockStateInterface(Level world, WorldData worldData, boolean copyLoadedChunks) { this.world = world; this.worldData = worldData; if (copyLoadedChunks) { - this.provider = ((IClientChunkProvider) world.getChunkProvider()).createThreadSafeCopy(); + this.provider = ((IClientChunkProvider) world.getChunkSource()).createThreadSafeCopy(); } else { - this.provider = (ClientChunkProvider) world.getChunkProvider(); + this.provider = (ClientChunkCache) world.getChunkSource(); } this.useTheRealWorld = !Baritone.settings().pathThroughCachedOnly.value; - if (!Minecraft.getInstance().isOnExecutionThread()) { + if (!Minecraft.getInstance().isSameThread()) { throw new IllegalStateException(); } - this.isPassableBlockPos = new BlockPos.Mutable(); + this.isPassableBlockPos = new BlockPos.MutableBlockPos(); this.access = new BlockStateInterfaceAccessWrapper(this); } public boolean worldContainsLoadedChunk(int blockX, int blockZ) { - return provider.chunkExists(blockX >> 4, blockZ >> 4); + return provider.hasChunk(blockX >> 4, blockZ >> 4); } public static Block getBlock(IPlayerContext ctx, BlockPos pos) { // won't be called from the pathing thread because the pathing thread doesn't make a single blockpos pog @@ -104,7 +104,7 @@ public class BlockStateInterface { } if (useTheRealWorld) { - Chunk cached = prev; + LevelChunk cached = prev; // there's great cache locality in block state lookups // generally it's within each movement // if it's the same chunk as last time @@ -114,7 +114,7 @@ public class BlockStateInterface { if (cached != null && cached.getPos().x == x >> 4 && cached.getPos().z == z >> 4) { return getFromChunk(cached, x, y, z); } - Chunk chunk = provider.getChunk(x >> 4, z >> 4, ChunkStatus.FULL, false); + LevelChunk chunk = provider.getChunk(x >> 4, z >> 4, ChunkStatus.FULL, false); if (chunk != null && !chunk.isEmpty()) { prev = chunk; return getFromChunk(chunk, x, y, z); @@ -142,7 +142,7 @@ public class BlockStateInterface { } public boolean isLoaded(int x, int z) { - Chunk prevChunk = prev; + LevelChunk prevChunk = prev; if (prevChunk != null && prevChunk.getPos().x == x >> 4 && prevChunk.getPos().z == z >> 4) { return true; } @@ -167,9 +167,9 @@ public class BlockStateInterface { } // get the block at x,y,z from this chunk WITHOUT creating a single blockpos object - public static BlockState getFromChunk(Chunk chunk, int x, int y, int z) { - ChunkSection section = chunk.getSections()[y >> 4]; - if (ChunkSection.isEmpty(section)) { + public static BlockState getFromChunk(LevelChunk chunk, int x, int y, int z) { + LevelChunkSection section = chunk.getSections()[y >> 4]; + if (LevelChunkSection.isEmpty(section)) { return AIR; } return section.getBlockState(x & 15, y & 15, z & 15); diff --git a/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java b/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java index cc0aef236..29fbb07ba 100644 --- a/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java +++ b/src/main/java/baritone/utils/BlockStateInterfaceAccessWrapper.java @@ -17,20 +17,19 @@ package baritone.utils; -import net.minecraft.block.BlockState; -import net.minecraft.fluid.FluidState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockReader; - import javax.annotation.Nullable; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.material.FluidState; /** * @author Brady * @since 11/5/2019 */ @SuppressWarnings("NullableProblems") -public final class BlockStateInterfaceAccessWrapper implements IBlockReader { +public final class BlockStateInterfaceAccessWrapper implements BlockGetter { private final BlockStateInterface bsi; @@ -40,7 +39,7 @@ public final class BlockStateInterfaceAccessWrapper implements IBlockReader { @Nullable @Override - public TileEntity getTileEntity(BlockPos pos) { + public BlockEntity getBlockEntity(BlockPos pos) { return null; } diff --git a/src/main/java/baritone/utils/GuiClick.java b/src/main/java/baritone/utils/GuiClick.java index 07b4093e7..70a97b077 100644 --- a/src/main/java/baritone/utils/GuiClick.java +++ b/src/main/java/baritone/utils/GuiClick.java @@ -22,20 +22,24 @@ import baritone.api.BaritoneAPI; import baritone.api.pathing.goals.GoalBlock; import baritone.api.utils.BetterBlockPos; import baritone.api.utils.Helper; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.entity.Entity; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Matrix4f; +import com.mojang.math.Vector4f; +import net.minecraft.ChatFormatting; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.ClickEvent; +import net.minecraft.network.chat.TextComponent; import net.minecraft.util.math.*; -import net.minecraft.util.math.vector.Matrix4f; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.math.vector.Vector4f; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TextFormatting; -import net.minecraft.util.text.event.ClickEvent; - +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.ClipContext; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; import java.awt.*; import java.util.Collections; @@ -50,7 +54,7 @@ public class GuiClick extends Screen implements Helper { private BlockPos currentMouseOver; public GuiClick() { - super(new StringTextComponent("CLICK")); + super(new TextComponent("CLICK")); } @Override @@ -59,23 +63,23 @@ public class GuiClick extends Screen implements Helper { } @Override - public void render(MatrixStack stack, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack stack, int mouseX, int mouseY, float partialTicks) { double mx = mc.mouseHelper.getMouseX(); double my = mc.mouseHelper.getMouseY(); my = mc.getMainWindow().getHeight() - my; my *= mc.getMainWindow().getFramebufferHeight() / (double) mc.getMainWindow().getHeight(); mx *= mc.getMainWindow().getFramebufferWidth() / (double) mc.getMainWindow().getWidth(); - Vector3d near = toWorld(mx, my, 0); - Vector3d far = toWorld(mx, my, 1); // "Use 0.945 that's what stack overflow says" - leijurv + Vec3 near = toWorld(mx, my, 0); + Vec3 far = toWorld(mx, my, 1); // "Use 0.945 that's what stack overflow says" - leijurv if (near != null && far != null) { /// - Vector3d viewerPos = new Vector3d(PathRenderer.posX(), PathRenderer.posY(), PathRenderer.posZ()); - ClientPlayerEntity player = BaritoneAPI.getProvider().getPrimaryBaritone().getPlayerContext().player(); - RayTraceResult result = player.world.rayTraceBlocks(new RayTraceContext(near.add(viewerPos), far.add(viewerPos), RayTraceContext.BlockMode.OUTLINE, RayTraceContext.FluidMode.NONE, player)); - if (result != null && result.getType() == RayTraceResult.Type.BLOCK) { - currentMouseOver = ((BlockRayTraceResult) result).getPos(); + Vec3 viewerPos = new Vec3(PathRenderer.posX(), PathRenderer.posY(), PathRenderer.posZ()); + LocalPlayer player = BaritoneAPI.getProvider().getPrimaryBaritone().getPlayerContext().player(); + HitResult result = player.level.clip(new ClipContext(near.add(viewerPos), far.add(viewerPos), ClipContext.Block.OUTLINE, ClipContext.Fluid.NONE, player)); + if (result != null && result.getType() == HitResult.Type.BLOCK) { + currentMouseOver = ((BlockHitResult) result).getBlockPos(); } } } @@ -87,10 +91,10 @@ public class GuiClick extends Screen implements Helper { if (clickStart != null && !clickStart.equals(currentMouseOver)) { BaritoneAPI.getProvider().getPrimaryBaritone().getSelectionManager().removeAllSelections(); BaritoneAPI.getProvider().getPrimaryBaritone().getSelectionManager().addSelection(BetterBlockPos.from(clickStart), BetterBlockPos.from(currentMouseOver)); - TextComponent component = new StringTextComponent("Selection made! For usage: " + Baritone.settings().prefix.value + "help sel"); + BaseComponent component = new TextComponent("Selection made! For usage: " + Baritone.settings().prefix.value + "help sel"); component.getStyle() - .setFormatting(TextFormatting.WHITE) - .setClickEvent(new ClickEvent( + .withColor(ChatFormatting.WHITE) + .withClickEvent(new ClickEvent( ClickEvent.Action.RUN_COMMAND, FORCE_COMMAND_PREFIX + "help sel" )); @@ -100,7 +104,7 @@ public class GuiClick extends Screen implements Helper { BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(new GoalBlock(currentMouseOver)); } } else if (mouseButton == 1) { - BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(new GoalBlock(currentMouseOver.up())); + BaritoneAPI.getProvider().getPrimaryBaritone().getCustomGoalProcess().setGoalAndPath(new GoalBlock(currentMouseOver.above())); } } clickStart = null; @@ -113,9 +117,9 @@ public class GuiClick extends Screen implements Helper { return super.mouseClicked(mouseX, mouseY, mouseButton); } - public void onRender(MatrixStack modelViewStack, Matrix4f projectionMatrix) { + public void onRender(PoseStack modelViewStack, Matrix4f projectionMatrix) { this.projectionViewMatrix = projectionMatrix.copy(); - this.projectionViewMatrix.mul(modelViewStack.getLast().getMatrix()); + this.projectionViewMatrix.multiply(modelViewStack.last().pose()); this.projectionViewMatrix.invert(); if (currentMouseOver != null) { @@ -132,7 +136,7 @@ public class GuiClick extends Screen implements Helper { RenderSystem.disableDepthTest(); BetterBlockPos a = new BetterBlockPos(currentMouseOver); BetterBlockPos b = new BetterBlockPos(clickStart); - IRenderer.drawAABB(modelViewStack, new AxisAlignedBB(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z), Math.max(a.x, b.x) + 1, Math.max(a.y, b.y) + 1, Math.max(a.z, b.z) + 1)); + IRenderer.drawAABB(modelViewStack, new AABB(Math.min(a.x, b.x), Math.min(a.y, b.y), Math.min(a.z, b.z), Math.max(a.x, b.x) + 1, Math.max(a.y, b.y) + 1, Math.max(a.z, b.z) + 1)); RenderSystem.enableDepthTest(); RenderSystem.depthMask(true); @@ -142,7 +146,7 @@ public class GuiClick extends Screen implements Helper { } } - private Vector3d toWorld(double x, double y, double z) { + private Vec3 toWorld(double x, double y, double z) { if (this.projectionViewMatrix == null) { return null; } @@ -154,11 +158,11 @@ public class GuiClick extends Screen implements Helper { Vector4f pos = new Vector4f((float) x, (float) y, (float) z, 1.0F); pos.transform(this.projectionViewMatrix); - if (pos.getW() == 0) { + if (pos.w() == 0) { return null; } pos.perspectiveDivide(); - return new Vector3d(pos.getX(), pos.getY(), pos.getZ()); + return new Vec3(pos.x(), pos.y(), pos.z()); } } diff --git a/src/main/java/baritone/utils/IRenderer.java b/src/main/java/baritone/utils/IRenderer.java index 27ae0915f..3f263e91a 100644 --- a/src/main/java/baritone/utils/IRenderer.java +++ b/src/main/java/baritone/utils/IRenderer.java @@ -21,22 +21,21 @@ import baritone.api.BaritoneAPI; import baritone.api.Settings; import baritone.api.utils.Helper; import baritone.utils.accessor.IEntityRenderManager; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.vector.Matrix4f; - +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.math.Matrix4f; import java.awt.*; +import net.minecraft.world.phys.AABB; import static org.lwjgl.opengl.GL11.*; public interface IRenderer { - Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBuffer(); + Tesselator tessellator = Tesselator.getInstance(); + BufferBuilder buffer = tessellator.getBuilder(); IEntityRenderManager renderManager = (IEntityRenderManager) Helper.mc.getRenderManager(); Settings settings = BaritoneAPI.getSettings(); @@ -72,42 +71,42 @@ public interface IRenderer { RenderSystem.disableBlend(); } - static void drawAABB(MatrixStack stack, AxisAlignedBB aabb) { - AxisAlignedBB toDraw = aabb.offset(-renderManager.renderPosX(), -renderManager.renderPosY(), -renderManager.renderPosZ()); + static void drawAABB(PoseStack stack, AABB aabb) { + AABB toDraw = aabb.move(-renderManager.renderPosX(), -renderManager.renderPosY(), -renderManager.renderPosZ()); - Matrix4f matrix4f = stack.getLast().getMatrix(); - buffer.begin(GL_LINES, DefaultVertexFormats.POSITION); + Matrix4f matrix4f = stack.last().pose(); + buffer.begin(GL_LINES, DefaultVertexFormat.POSITION); // bottom - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); // top - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); // corners - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); - buffer.pos(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); - tessellator.draw(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.minZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.maxX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.minY, (float) toDraw.maxZ).endVertex(); + buffer.vertex(matrix4f, (float) toDraw.minX, (float) toDraw.maxY, (float) toDraw.maxZ).endVertex(); + tessellator.end(); } - static void drawAABB(MatrixStack stack, AxisAlignedBB aabb, double expand) { - drawAABB(stack, aabb.grow(expand, expand, expand)); + static void drawAABB(PoseStack stack, AABB aabb, double expand) { + drawAABB(stack, aabb.inflate(expand, expand, expand)); } } diff --git a/src/main/java/baritone/utils/InputOverrideHandler.java b/src/main/java/baritone/utils/InputOverrideHandler.java index a043b0ac6..a024ab342 100755 --- a/src/main/java/baritone/utils/InputOverrideHandler.java +++ b/src/main/java/baritone/utils/InputOverrideHandler.java @@ -24,8 +24,7 @@ import baritone.api.utils.IInputOverrideHandler; import baritone.api.utils.input.Input; import baritone.behavior.Behavior; import net.minecraft.client.Minecraft; -import net.minecraft.util.MovementInputFromOptions; - +import net.minecraft.client.player.KeyboardInput; import java.util.HashMap; import java.util.Map; @@ -100,7 +99,7 @@ public final class InputOverrideHandler extends Behavior implements IInputOverri } } else { if (ctx.player().movementInput.getClass() == PlayerMovementInput.class) { // allow other movement inputs that aren't this one, e.g. for a freecam - ctx.player().movementInput = new MovementInputFromOptions(Minecraft.getInstance().gameSettings); + ctx.player().movementInput = new KeyboardInput(Minecraft.getInstance().options); } } // only set it if it was previously incorrect diff --git a/src/main/java/baritone/utils/PathRenderer.java b/src/main/java/baritone/utils/PathRenderer.java index dc4b7a368..b637e0c23 100644 --- a/src/main/java/baritone/utils/PathRenderer.java +++ b/src/main/java/baritone/utils/PathRenderer.java @@ -26,25 +26,24 @@ import baritone.api.utils.Helper; import baritone.api.utils.interfaces.IGoalRenderPos; import baritone.behavior.PathingBehavior; import baritone.pathing.path.PathExecutor; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.tileentity.BeaconTileEntityRenderer; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.entity.Entity; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.MathHelper; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.util.math.shapes.VoxelShapes; -import net.minecraft.util.math.vector.Matrix4f; -import net.minecraft.world.DimensionType; - +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Matrix4f; import java.awt.*; import java.util.Collection; import java.util.Collections; import java.util.List; +import net.minecraft.client.renderer.blockentity.BeaconRenderer; +import net.minecraft.core.BlockPos; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; import static org.lwjgl.opengl.GL11.*; @@ -88,7 +87,7 @@ public final class PathRenderer implements IRenderer, Helper { Entity renderView = Helper.mc.getRenderViewEntity(); - if (renderView.world != BaritoneAPI.getProvider().getPrimaryBaritone().getPlayerContext().world()) { + if (renderView.level != BaritoneAPI.getProvider().getPrimaryBaritone().getPlayerContext().world()) { System.out.println("I have no idea what's going on"); System.out.println("The primary baritone is in a different world than the render view entity"); System.out.println("Not rendering the path"); @@ -136,7 +135,7 @@ public final class PathRenderer implements IRenderer, Helper { }); } - public static void drawPath(MatrixStack stack, IPath path, int startIndex, Color color, boolean fadeOut, int fadeStart0, int fadeEnd0) { + public static void drawPath(PoseStack stack, IPath path, int startIndex, Color color, boolean fadeOut, int fadeStart0, int fadeEnd0) { IRenderer.startLines(color, settings.pathRenderLineWidthPixels.value, settings.renderPathIgnoreDepth.value); int fadeStart = fadeStart0 + startIndex; @@ -174,33 +173,33 @@ public final class PathRenderer implements IRenderer, Helper { drawLine(stack, start.x, start.y, start.z, end.x, end.y, end.z); - tessellator.draw(); + tessellator.end(); } IRenderer.endLines(settings.renderPathIgnoreDepth.value); } - public static void drawLine(MatrixStack stack, double x1, double y1, double z1, double x2, double y2, double z2) { - Matrix4f matrix4f = stack.getLast().getMatrix(); + public static void drawLine(PoseStack stack, double x1, double y1, double z1, double x2, double y2, double z2) { + Matrix4f matrix4f = stack.last().pose(); double vpX = posX(); double vpY = posY(); double vpZ = posZ(); boolean renderPathAsFrickinThingy = !settings.renderPathAsLine.value; - buffer.begin(renderPathAsFrickinThingy ? GL_LINE_STRIP : GL_LINES, DefaultVertexFormats.POSITION); - buffer.pos(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.5D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); - buffer.pos(matrix4f, (float) (x2 + 0.5D - vpX), (float) (y2 + 0.5D - vpY), (float) (z2 + 0.5D - vpZ)).endVertex(); + buffer.begin(renderPathAsFrickinThingy ? GL_LINE_STRIP : GL_LINES, DefaultVertexFormat.POSITION); + buffer.vertex(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.5D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); + buffer.vertex(matrix4f, (float) (x2 + 0.5D - vpX), (float) (y2 + 0.5D - vpY), (float) (z2 + 0.5D - vpZ)).endVertex(); if (renderPathAsFrickinThingy) { - buffer.pos(matrix4f, (float) (x2 + 0.5D - vpX), (float) (y2 + 0.53D - vpY), (float) (z2 + 0.5D - vpZ)).endVertex(); - buffer.pos(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.53D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); - buffer.pos(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.5D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); + buffer.vertex(matrix4f, (float) (x2 + 0.5D - vpX), (float) (y2 + 0.53D - vpY), (float) (z2 + 0.5D - vpZ)).endVertex(); + buffer.vertex(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.53D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); + buffer.vertex(matrix4f, (float) (x1 + 0.5D - vpX), (float) (y1 + 0.5D - vpY), (float) (z1 + 0.5D - vpZ)).endVertex(); } } - public static void drawManySelectionBoxes(MatrixStack stack, Entity player, Collection positions, Color color) { + public static void drawManySelectionBoxes(PoseStack stack, Entity player, Collection positions, Color color) { IRenderer.startLines(color, settings.pathRenderLineWidthPixels.value, settings.renderSelectionBoxesIgnoreDepth.value); //BlockPos blockpos = movingObjectPositionIn.getBlockPos(); @@ -208,16 +207,16 @@ public final class PathRenderer implements IRenderer, Helper { positions.forEach(pos -> { BlockState state = bsi.get0(pos); - VoxelShape shape = state.getShape(player.world, pos); - AxisAlignedBB toDraw = shape.isEmpty() ? VoxelShapes.fullCube().getBoundingBox() : shape.getBoundingBox(); - toDraw = toDraw.offset(pos); + VoxelShape shape = state.getShape(player.level, pos); + AABB toDraw = shape.isEmpty() ? Shapes.block().bounds() : shape.bounds(); + toDraw = toDraw.move(pos); IRenderer.drawAABB(stack, toDraw, .002D); }); IRenderer.endLines(settings.renderSelectionBoxesIgnoreDepth.value); } - public static void drawDankLitGoalBox(MatrixStack stack, Entity player, Goal goal, float partialTicks, Color color) { + public static void drawDankLitGoalBox(PoseStack stack, Entity player, Goal goal, float partialTicks, Color color) { double renderPosX = posX(); double renderPosY = posY(); double renderPosZ = posZ(); @@ -225,7 +224,7 @@ public final class PathRenderer implements IRenderer, Helper { double minZ, maxZ; double minY, maxY; double y1, y2; - double y = MathHelper.cos((float) (((float) ((System.nanoTime() / 100000L) % 20000L)) / 20000F * Math.PI * 2)); + double y = Mth.cos((float) (((float) ((System.nanoTime() / 100000L) % 20000L)) / 20000F * Math.PI * 2)); if (goal instanceof IGoalRenderPos) { BlockPos goalPos = ((IGoalRenderPos) goal).getGoalPos(); minX = goalPos.getX() + 0.002 - renderPosX; @@ -255,16 +254,16 @@ public final class PathRenderer implements IRenderer, Helper { RenderSystem.disableDepthTest(); } - stack.push(); // push + stack.pushPose(); // push stack.translate(goalPos.getX() - renderPosX, -renderPosY, goalPos.getZ() - renderPosZ); // translate - BeaconTileEntityRenderer.renderBeamSegment( + BeaconRenderer.renderBeaconBeam( stack, mc.getRenderTypeBuffers().getBufferSource(), TEXTURE_BEACON_BEAM, partialTicks, 1.0F, - player.world.getGameTime(), + player.level.getGameTime(), 0, 256, color.getColorComponents(null), @@ -274,7 +273,7 @@ public final class PathRenderer implements IRenderer, Helper { 0.25F ); - stack.pop(); // pop + stack.popPose(); // pop if (settings.renderGoalIgnoreDepth.value) { RenderSystem.enableDepthTest(); @@ -303,10 +302,10 @@ public final class PathRenderer implements IRenderer, Helper { return; } else if (goal instanceof GoalYLevel) { GoalYLevel goalpos = (GoalYLevel) goal; - minX = player.getPositionVec().x - settings.yLevelBoxSize.value - renderPosX; - minZ = player.getPositionVec().z - settings.yLevelBoxSize.value - renderPosZ; - maxX = player.getPositionVec().x + settings.yLevelBoxSize.value - renderPosX; - maxZ = player.getPositionVec().z + settings.yLevelBoxSize.value - renderPosZ; + minX = player.position().x - settings.yLevelBoxSize.value - renderPosX; + minZ = player.position().z - settings.yLevelBoxSize.value - renderPosZ; + maxX = player.position().x + settings.yLevelBoxSize.value - renderPosX; + maxZ = player.position().z + settings.yLevelBoxSize.value - renderPosZ; minY = ((GoalYLevel) goal).level - renderPosY; maxY = minY + 2; y1 = 1 + y + goalpos.level - renderPosY; @@ -320,30 +319,30 @@ public final class PathRenderer implements IRenderer, Helper { renderHorizontalQuad(stack, minX, maxX, minZ, maxZ, y1); renderHorizontalQuad(stack, minX, maxX, minZ, maxZ, y2); - Matrix4f matrix4f = stack.getLast().getMatrix(); - buffer.begin(GL_LINES, DefaultVertexFormats.POSITION); - buffer.pos(matrix4f, (float) minX, (float) minY, (float) minZ).endVertex(); - buffer.pos(matrix4f, (float) minX, (float) maxY, (float) minZ).endVertex(); - buffer.pos(matrix4f, (float) maxX, (float) minY, (float) minZ).endVertex(); - buffer.pos(matrix4f, (float) maxX, (float) maxY, (float) minZ).endVertex(); - buffer.pos(matrix4f, (float) maxX, (float) minY, (float) maxZ).endVertex(); - buffer.pos(matrix4f, (float) maxX, (float) maxY, (float) maxZ).endVertex(); - buffer.pos(matrix4f, (float) minX, (float) minY, (float) maxZ).endVertex(); - buffer.pos(matrix4f, (float) minX, (float) maxY, (float) maxZ).endVertex(); - tessellator.draw(); + Matrix4f matrix4f = stack.last().pose(); + buffer.begin(GL_LINES, DefaultVertexFormat.POSITION); + buffer.vertex(matrix4f, (float) minX, (float) minY, (float) minZ).endVertex(); + buffer.vertex(matrix4f, (float) minX, (float) maxY, (float) minZ).endVertex(); + buffer.vertex(matrix4f, (float) maxX, (float) minY, (float) minZ).endVertex(); + buffer.vertex(matrix4f, (float) maxX, (float) maxY, (float) minZ).endVertex(); + buffer.vertex(matrix4f, (float) maxX, (float) minY, (float) maxZ).endVertex(); + buffer.vertex(matrix4f, (float) maxX, (float) maxY, (float) maxZ).endVertex(); + buffer.vertex(matrix4f, (float) minX, (float) minY, (float) maxZ).endVertex(); + buffer.vertex(matrix4f, (float) minX, (float) maxY, (float) maxZ).endVertex(); + tessellator.end(); IRenderer.endLines(settings.renderGoalIgnoreDepth.value); } - private static void renderHorizontalQuad(MatrixStack stack, double minX, double maxX, double minZ, double maxZ, double y) { + private static void renderHorizontalQuad(PoseStack stack, double minX, double maxX, double minZ, double maxZ, double y) { if (y != 0) { - Matrix4f matrix4f = stack.getLast().getMatrix(); - buffer.begin(GL_LINE_LOOP, DefaultVertexFormats.POSITION); - buffer.pos(matrix4f, (float) minX, (float) y, (float) minZ).endVertex(); - buffer.pos(matrix4f, (float) maxX, (float) y, (float) minZ).endVertex(); - buffer.pos(matrix4f, (float) maxX, (float) y, (float) maxZ).endVertex(); - buffer.pos(matrix4f, (float) minX, (float) y, (float) maxZ).endVertex(); - tessellator.draw(); + Matrix4f matrix4f = stack.last().pose(); + buffer.begin(GL_LINE_LOOP, DefaultVertexFormat.POSITION); + buffer.vertex(matrix4f, (float) minX, (float) y, (float) minZ).endVertex(); + buffer.vertex(matrix4f, (float) maxX, (float) y, (float) minZ).endVertex(); + buffer.vertex(matrix4f, (float) maxX, (float) y, (float) maxZ).endVertex(); + buffer.vertex(matrix4f, (float) minX, (float) y, (float) maxZ).endVertex(); + tessellator.end(); } } } diff --git a/src/main/java/baritone/utils/PathingControlManager.java b/src/main/java/baritone/utils/PathingControlManager.java index a83e53a1e..d841cf3a1 100644 --- a/src/main/java/baritone/utils/PathingControlManager.java +++ b/src/main/java/baritone/utils/PathingControlManager.java @@ -27,9 +27,8 @@ import baritone.api.process.PathingCommand; import baritone.api.process.PathingCommandType; import baritone.behavior.PathingBehavior; import baritone.pathing.path.PathExecutor; -import net.minecraft.util.math.BlockPos; - import java.util.*; +import net.minecraft.core.BlockPos; public class PathingControlManager implements IPathingControlManager { diff --git a/src/main/java/baritone/utils/PlayerMovementInput.java b/src/main/java/baritone/utils/PlayerMovementInput.java index 57745b922..854680233 100644 --- a/src/main/java/baritone/utils/PlayerMovementInput.java +++ b/src/main/java/baritone/utils/PlayerMovementInput.java @@ -18,9 +18,8 @@ package baritone.utils; import baritone.api.utils.input.Input; -import net.minecraft.util.MovementInput; -public class PlayerMovementInput extends MovementInput { +public class PlayerMovementInput extends net.minecraft.client.player.Input { private final InputOverrideHandler handler; @@ -29,31 +28,31 @@ public class PlayerMovementInput extends MovementInput { } @Override - public void tickMovement(boolean p_225607_1_) { - this.moveStrafe = 0.0F; - this.moveForward = 0.0F; + public void tick(boolean p_225607_1_) { + this.leftImpulse = 0.0F; + this.forwardImpulse = 0.0F; - this.jump = handler.isInputForcedDown(Input.JUMP); // oppa gangnam style + this.jumping = handler.isInputForcedDown(Input.JUMP); // oppa gangnam style - if (this.forwardKeyDown = handler.isInputForcedDown(Input.MOVE_FORWARD)) { - this.moveForward++; + if (this.up = handler.isInputForcedDown(Input.MOVE_FORWARD)) { + this.forwardImpulse++; } - if (this.backKeyDown = handler.isInputForcedDown(Input.MOVE_BACK)) { - this.moveForward--; + if (this.down = handler.isInputForcedDown(Input.MOVE_BACK)) { + this.forwardImpulse--; } - if (this.leftKeyDown = handler.isInputForcedDown(Input.MOVE_LEFT)) { - this.moveStrafe++; + if (this.left = handler.isInputForcedDown(Input.MOVE_LEFT)) { + this.leftImpulse++; } - if (this.rightKeyDown = handler.isInputForcedDown(Input.MOVE_RIGHT)) { - this.moveStrafe--; + if (this.right = handler.isInputForcedDown(Input.MOVE_RIGHT)) { + this.leftImpulse--; } - if (this.sneaking = handler.isInputForcedDown(Input.SNEAK)) { - this.moveStrafe *= 0.3D; - this.moveForward *= 0.3D; + if (this.shiftKeyDown = handler.isInputForcedDown(Input.SNEAK)) { + this.leftImpulse *= 0.3D; + this.forwardImpulse *= 0.3D; } } } diff --git a/src/main/java/baritone/utils/ToolSet.java b/src/main/java/baritone/utils/ToolSet.java index 811fd905d..6dee9db9e 100644 --- a/src/main/java/baritone/utils/ToolSet.java +++ b/src/main/java/baritone/utils/ToolSet.java @@ -18,18 +18,17 @@ package baritone.utils; import baritone.Baritone; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.enchantment.Enchantments; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ToolItem; -import net.minecraft.potion.Effects; - import java.util.HashMap; import java.util.Map; import java.util.function.Function; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.item.DiggerItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; /** * A cached list of the best tools on the hotbar for any block @@ -49,9 +48,9 @@ public class ToolSet { */ private final Function backendCalculation; - private final ClientPlayerEntity player; + private final LocalPlayer player; - public ToolSet(ClientPlayerEntity player) { + public ToolSet(LocalPlayer player) { breakStrengthCache = new HashMap<>(); this.player = player; @@ -81,11 +80,11 @@ public class ToolSet { * @return Either 1 or -1 */ private int getMaterialCost(ItemStack itemStack) { - return itemStack.getItem() instanceof ToolItem ? 1 : -1; + return itemStack.getItem() instanceof DiggerItem ? 1 : -1; } public boolean hasSilkTouch(ItemStack stack) { - return EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0; + return EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0; } /** @@ -107,16 +106,16 @@ public class ToolSet { possible, this lets us make pathing depend on the actual tool to be used (if auto tool is disabled) */ if (Baritone.settings().disableAutoTool.value && pathingCalculation) { - return player.inventory.currentItem; + return player.inventory.selected; } int best = 0; double highestSpeed = Double.NEGATIVE_INFINITY; int lowestCost = Integer.MIN_VALUE; boolean bestSilkTouch = false; - BlockState blockState = b.getDefaultState(); + BlockState blockState = b.defaultBlockState(); for (int i = 0; i < 9; i++) { - ItemStack itemStack = player.inventory.getStackInSlot(i); + ItemStack itemStack = player.inventory.getItem(i); double speed = calculateSpeedVsBlock(itemStack, blockState); boolean silkTouch = hasSilkTouch(itemStack); if (speed > highestSpeed) { @@ -145,8 +144,8 @@ public class ToolSet { * @return A double containing the destruction ticks with the best tool */ private double getBestDestructionTime(Block b) { - ItemStack stack = player.inventory.getStackInSlot(getBestSlot(b, false, true)); - return calculateSpeedVsBlock(stack, b.getDefaultState()) * avoidanceMultiplier(b); + ItemStack stack = player.inventory.getItem(getBestSlot(b, false, true)); + return calculateSpeedVsBlock(stack, b.defaultBlockState()) * avoidanceMultiplier(b); } private double avoidanceMultiplier(Block b) { @@ -162,21 +161,21 @@ public class ToolSet { * @return how long it would take in ticks */ public static double calculateSpeedVsBlock(ItemStack item, BlockState state) { - float hardness = state.getBlockHardness(null, null); + float hardness = state.getDestroySpeed(null, null); if (hardness < 0) { return -1; } float speed = item.getDestroySpeed(state); if (speed > 1) { - int effLevel = EnchantmentHelper.getEnchantmentLevel(Enchantments.EFFICIENCY, item); + int effLevel = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.BLOCK_EFFICIENCY, item); if (effLevel > 0 && !item.isEmpty()) { speed += effLevel * effLevel + 1; } } speed /= hardness; - if (!state.getRequiresTool() || (!item.isEmpty() && item.canHarvestBlock(state))) { + if (!state.requiresCorrectToolForDrops() || (!item.isEmpty() && item.isCorrectToolForDrops(state))) { return speed / 30; } else { return speed / 100; @@ -190,11 +189,11 @@ public class ToolSet { */ private double potionAmplifier() { double speed = 1; - if (player.isPotionActive(Effects.HASTE)) { - speed *= 1 + (player.getActivePotionEffect(Effects.HASTE).getAmplifier() + 1) * 0.2; + if (player.hasEffect(MobEffects.DIG_SPEED)) { + speed *= 1 + (player.getEffect(MobEffects.DIG_SPEED).getAmplifier() + 1) * 0.2; } - if (player.isPotionActive(Effects.MINING_FATIGUE)) { - switch (player.getActivePotionEffect(Effects.MINING_FATIGUE).getAmplifier()) { + if (player.hasEffect(MobEffects.DIG_SLOWDOWN)) { + switch (player.getEffect(MobEffects.DIG_SLOWDOWN).getAmplifier()) { case 0: speed *= 0.3; break; diff --git a/src/main/java/baritone/utils/accessor/IChunkArray.java b/src/main/java/baritone/utils/accessor/IChunkArray.java index 147f64007..4c76b44fe 100644 --- a/src/main/java/baritone/utils/accessor/IChunkArray.java +++ b/src/main/java/baritone/utils/accessor/IChunkArray.java @@ -17,14 +17,13 @@ package baritone.utils.accessor; -import net.minecraft.world.chunk.Chunk; - import java.util.concurrent.atomic.AtomicReferenceArray; +import net.minecraft.world.level.chunk.LevelChunk; public interface IChunkArray { void copyFrom(IChunkArray other); - AtomicReferenceArray getChunks(); + AtomicReferenceArray getChunks(); int centerX(); diff --git a/src/main/java/baritone/utils/accessor/IChunkProviderClient.java b/src/main/java/baritone/utils/accessor/IChunkProviderClient.java index e5fde40b4..edeac5080 100644 --- a/src/main/java/baritone/utils/accessor/IChunkProviderClient.java +++ b/src/main/java/baritone/utils/accessor/IChunkProviderClient.java @@ -18,9 +18,9 @@ package baritone.utils.accessor; import it.unimi.dsi.fastutil.longs.Long2ObjectMap; -import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.level.chunk.LevelChunk; public interface IChunkProviderClient { - Long2ObjectMap loadedChunks(); + Long2ObjectMap loadedChunks(); } diff --git a/src/main/java/baritone/utils/accessor/IClientChunkProvider.java b/src/main/java/baritone/utils/accessor/IClientChunkProvider.java index cc7483ab4..145f8d3af 100644 --- a/src/main/java/baritone/utils/accessor/IClientChunkProvider.java +++ b/src/main/java/baritone/utils/accessor/IClientChunkProvider.java @@ -17,10 +17,10 @@ package baritone.utils.accessor; -import net.minecraft.client.multiplayer.ClientChunkProvider; +import net.minecraft.client.multiplayer.ClientChunkCache; public interface IClientChunkProvider { - ClientChunkProvider createThreadSafeCopy(); + ClientChunkCache createThreadSafeCopy(); IChunkArray extractReferenceArray(); } diff --git a/src/main/java/baritone/utils/accessor/IPlayerControllerMP.java b/src/main/java/baritone/utils/accessor/IPlayerControllerMP.java index 354b9eefc..72e6f7ee3 100644 --- a/src/main/java/baritone/utils/accessor/IPlayerControllerMP.java +++ b/src/main/java/baritone/utils/accessor/IPlayerControllerMP.java @@ -17,7 +17,7 @@ package baritone.utils.accessor; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; public interface IPlayerControllerMP { diff --git a/src/main/java/baritone/utils/pathing/Avoidance.java b/src/main/java/baritone/utils/pathing/Avoidance.java index b9848845a..c9f3446e8 100644 --- a/src/main/java/baritone/utils/pathing/Avoidance.java +++ b/src/main/java/baritone/utils/pathing/Avoidance.java @@ -21,15 +21,10 @@ import baritone.Baritone; import baritone.api.utils.BetterBlockPos; import baritone.api.utils.IPlayerContext; import it.unimi.dsi.fastutil.longs.Long2DoubleOpenHashMap; -import net.minecraft.entity.MobEntity; -import net.minecraft.entity.monster.EndermanEntity; -import net.minecraft.entity.monster.SpiderEntity; -import net.minecraft.entity.monster.ZombifiedPiglinEntity; -import net.minecraft.util.math.BlockPos; - import java.util.ArrayList; import java.util.Collections; import java.util.List; +import net.minecraft.core.BlockPos; public class Avoidance { diff --git a/src/main/java/baritone/utils/pathing/BetterWorldBorder.java b/src/main/java/baritone/utils/pathing/BetterWorldBorder.java index 9d8f3ef87..ef8e93ef4 100644 --- a/src/main/java/baritone/utils/pathing/BetterWorldBorder.java +++ b/src/main/java/baritone/utils/pathing/BetterWorldBorder.java @@ -17,7 +17,7 @@ package baritone.utils.pathing; -import net.minecraft.world.border.WorldBorder; +import net.minecraft.world.level.border.WorldBorder; /** * Essentially, a "rule" for the path finder, prevents proposed movements from attempting to venture @@ -31,10 +31,10 @@ public class BetterWorldBorder { private final double maxZ; public BetterWorldBorder(WorldBorder border) { - this.minX = border.minX(); - this.maxX = border.maxX(); - this.minZ = border.minZ(); - this.maxZ = border.maxZ(); + this.minX = border.getMinX(); + this.maxX = border.getMaxX(); + this.minZ = border.getMinZ(); + this.maxZ = border.getMaxZ(); } public boolean entirelyContains(int x, int z) { diff --git a/src/main/java/baritone/utils/pathing/PathBase.java b/src/main/java/baritone/utils/pathing/PathBase.java index de10fdf3c..5fff2f34a 100644 --- a/src/main/java/baritone/utils/pathing/PathBase.java +++ b/src/main/java/baritone/utils/pathing/PathBase.java @@ -23,7 +23,7 @@ import baritone.api.pathing.calc.IPath; import baritone.api.pathing.goals.Goal; import baritone.pathing.path.CutoffPath; import baritone.utils.BlockStateInterface; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; public abstract class PathBase implements IPath { diff --git a/src/main/java/baritone/utils/player/PrimaryPlayerContext.java b/src/main/java/baritone/utils/player/PrimaryPlayerContext.java index c1bfb3948..f3e25a7ab 100644 --- a/src/main/java/baritone/utils/player/PrimaryPlayerContext.java +++ b/src/main/java/baritone/utils/player/PrimaryPlayerContext.java @@ -23,9 +23,9 @@ import baritone.api.utils.Helper; import baritone.api.utils.IPlayerContext; import baritone.api.utils.IPlayerController; import baritone.api.utils.RayTraceUtils; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.World; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.HitResult; /** * Implementation of {@link IPlayerContext} that provides information about the primary player. @@ -38,7 +38,7 @@ public enum PrimaryPlayerContext implements IPlayerContext, Helper { INSTANCE; @Override - public ClientPlayerEntity player() { + public LocalPlayer player() { return mc.player; } @@ -48,7 +48,7 @@ public enum PrimaryPlayerContext implements IPlayerContext, Helper { } @Override - public World world() { + public Level world() { return mc.world; } @@ -58,7 +58,7 @@ public enum PrimaryPlayerContext implements IPlayerContext, Helper { } @Override - public RayTraceResult objectMouseOver() { + public HitResult objectMouseOver() { return RayTraceUtils.rayTraceTowards(player(), playerRotations(), playerController().getBlockReachDistance()); } } diff --git a/src/main/java/baritone/utils/player/PrimaryPlayerController.java b/src/main/java/baritone/utils/player/PrimaryPlayerController.java index d3b53c54e..d5412d501 100644 --- a/src/main/java/baritone/utils/player/PrimaryPlayerController.java +++ b/src/main/java/baritone/utils/player/PrimaryPlayerController.java @@ -20,18 +20,18 @@ package baritone.utils.player; import baritone.api.utils.Helper; import baritone.api.utils.IPlayerController; import baritone.utils.accessor.IPlayerControllerMP; -import net.minecraft.client.entity.player.ClientPlayerEntity; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.container.ClickType; -import net.minecraft.item.ItemStack; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.Hand; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.BlockRayTraceResult; -import net.minecraft.world.GameType; -import net.minecraft.world.World; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.GameType; +import net.minecraft.world.level.Level; +import net.minecraft.world.phys.BlockHitResult; /** @@ -65,7 +65,7 @@ public enum PrimaryPlayerController implements IPlayerController, Helper { } @Override - public ItemStack windowClick(int windowId, int slotId, int mouseButton, ClickType type, PlayerEntity player) { + public ItemStack windowClick(int windowId, int slotId, int mouseButton, ClickType type, Player player) { return mc.playerController.windowClick(windowId, slotId, mouseButton, type, player); } @@ -75,13 +75,13 @@ public enum PrimaryPlayerController implements IPlayerController, Helper { } @Override - public ActionResultType processRightClickBlock(ClientPlayerEntity player, World world, Hand hand, BlockRayTraceResult result) { + public InteractionResult processRightClickBlock(LocalPlayer player, Level world, InteractionHand hand, BlockHitResult result) { // primaryplayercontroller is always in a ClientWorld so this is ok - return mc.playerController.func_217292_a(player, (ClientWorld) world, hand, result); + return mc.playerController.func_217292_a(player, (ClientLevel) world, hand, result); } @Override - public ActionResultType processRightClick(ClientPlayerEntity player, World world, Hand hand) { + public InteractionResult processRightClick(LocalPlayer player, Level world, InteractionHand hand) { return mc.playerController.processRightClick(player, world, hand); } diff --git a/src/main/java/baritone/utils/schematic/MapArtSchematic.java b/src/main/java/baritone/utils/schematic/MapArtSchematic.java index 3af7e4c20..4f71aea64 100644 --- a/src/main/java/baritone/utils/schematic/MapArtSchematic.java +++ b/src/main/java/baritone/utils/schematic/MapArtSchematic.java @@ -19,11 +19,10 @@ package baritone.utils.schematic; import baritone.api.schematic.IStaticSchematic; import baritone.api.schematic.MaskSchematic; -import net.minecraft.block.AirBlock; -import net.minecraft.block.BlockState; - import java.util.OptionalInt; import java.util.function.Predicate; +import net.minecraft.world.level.block.AirBlock; +import net.minecraft.world.level.block.state.BlockState; public class MapArtSchematic extends MaskSchematic { diff --git a/src/main/java/baritone/utils/schematic/StaticSchematic.java b/src/main/java/baritone/utils/schematic/StaticSchematic.java index 37da08a8d..5a110281b 100644 --- a/src/main/java/baritone/utils/schematic/StaticSchematic.java +++ b/src/main/java/baritone/utils/schematic/StaticSchematic.java @@ -19,9 +19,8 @@ package baritone.utils.schematic; import baritone.api.schematic.AbstractSchematic; import baritone.api.schematic.IStaticSchematic; -import net.minecraft.block.BlockState; - import java.util.List; +import net.minecraft.world.level.block.state.BlockState; /** * Default implementation of {@link IStaticSchematic} diff --git a/src/main/java/baritone/utils/schematic/format/DefaultSchematicFormats.java b/src/main/java/baritone/utils/schematic/format/DefaultSchematicFormats.java index 15aa281a9..b7cc085fb 100644 --- a/src/main/java/baritone/utils/schematic/format/DefaultSchematicFormats.java +++ b/src/main/java/baritone/utils/schematic/format/DefaultSchematicFormats.java @@ -21,13 +21,13 @@ import baritone.api.schematic.IStaticSchematic; import baritone.api.schematic.format.ISchematicFormat; import baritone.utils.schematic.format.defaults.MCEditSchematic; import baritone.utils.schematic.format.defaults.SpongeSchematic; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.CompressedStreamTools; import org.apache.commons.io.FilenameUtils; import java.io.File; import java.io.IOException; import java.io.InputStream; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtIo; /** * Default implementations of {@link ISchematicFormat} @@ -43,7 +43,7 @@ public enum DefaultSchematicFormats implements ISchematicFormat { MCEDIT("schematic") { @Override public IStaticSchematic parse(InputStream input) throws IOException { - return new MCEditSchematic(CompressedStreamTools.readCompressed(input)); + return new MCEditSchematic(NbtIo.readCompressed(input)); } }, @@ -55,7 +55,7 @@ public enum DefaultSchematicFormats implements ISchematicFormat { SPONGE("schem") { @Override public IStaticSchematic parse(InputStream input) throws IOException { - CompoundNBT nbt = CompressedStreamTools.readCompressed(input); + CompoundTag nbt = NbtIo.readCompressed(input); int version = nbt.getInt("Version"); switch (version) { case 1: diff --git a/src/main/java/baritone/utils/schematic/format/defaults/MCEditSchematic.java b/src/main/java/baritone/utils/schematic/format/defaults/MCEditSchematic.java index d5f69f1e9..4693ea387 100644 --- a/src/main/java/baritone/utils/schematic/format/defaults/MCEditSchematic.java +++ b/src/main/java/baritone/utils/schematic/format/defaults/MCEditSchematic.java @@ -18,12 +18,12 @@ package baritone.utils.schematic.format.defaults; import baritone.utils.schematic.StaticSchematic; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.datafix.fixes.ItemIntIDToString; -import net.minecraft.util.registry.Registry; +import net.minecraft.core.Registry; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.datafix.fixes.ItemIdFix; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; /** * @author Brady @@ -31,7 +31,7 @@ import net.minecraft.util.registry.Registry; */ public final class MCEditSchematic extends StaticSchematic { - public MCEditSchematic(CompoundNBT schematic) { + public MCEditSchematic(CompoundTag schematic) { String type = schematic.getString("Materials"); if (!type.equals("Alpha")) { throw new IllegalStateException("bad schematic " + type); @@ -62,10 +62,10 @@ public final class MCEditSchematic extends StaticSchematic { // additional is 0 through 15 inclusive since it's & 0xF above blockID |= additional[blockInd] << 8; } - Block block = Registry.BLOCK.getOrDefault(ResourceLocation.tryCreate(ItemIntIDToString.getItem(blockID))); + Block block = Registry.BLOCK.get(ResourceLocation.tryParse(ItemIdFix.getItem(blockID))); // int meta = metadata[blockInd] & 0xFF; // this.states[x][z][y] = block.getStateFromMeta(meta); - this.states[x][z][y] = block.getDefaultState(); + this.states[x][z][y] = block.defaultBlockState(); } } } diff --git a/src/main/java/baritone/utils/schematic/format/defaults/SpongeSchematic.java b/src/main/java/baritone/utils/schematic/format/defaults/SpongeSchematic.java index 375b9a968..3c00b08c6 100644 --- a/src/main/java/baritone/utils/schematic/format/defaults/SpongeSchematic.java +++ b/src/main/java/baritone/utils/schematic/format/defaults/SpongeSchematic.java @@ -20,18 +20,17 @@ package baritone.utils.schematic.format.defaults; import baritone.utils.schematic.StaticSchematic; import baritone.utils.type.VarInt; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.Property; -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.registry.Registry; - import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; +import net.minecraft.core.Registry; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.Property; /** * @author Brady @@ -39,15 +38,15 @@ import java.util.regex.Pattern; */ public final class SpongeSchematic extends StaticSchematic { - public SpongeSchematic(CompoundNBT nbt) { + public SpongeSchematic(CompoundTag nbt) { this.x = nbt.getInt("Width"); this.y = nbt.getInt("Height"); this.z = nbt.getInt("Length"); this.states = new BlockState[this.x][this.z][this.y]; Int2ObjectArrayMap palette = new Int2ObjectArrayMap<>(); - CompoundNBT paletteTag = nbt.getCompound("Palette"); - for (String tag : paletteTag.keySet()) { + CompoundTag paletteTag = nbt.getCompound("Palette"); + for (String tag : paletteTag.getAllKeys()) { int index = paletteTag.getInt(tag); SerializedBlockState serializedState = SerializedBlockState.getFromString(tag); @@ -107,11 +106,11 @@ public final class SpongeSchematic extends StaticSchematic { private BlockState deserialize() { if (this.blockState == null) { - Block block = Registry.BLOCK.getOrDefault(this.resourceLocation); - this.blockState = block.getDefaultState(); + Block block = Registry.BLOCK.get(this.resourceLocation); + this.blockState = block.defaultBlockState(); this.properties.keySet().stream().sorted(String::compareTo).forEachOrdered(key -> { - Property property = block.getStateContainer().getProperty(key); + Property property = block.getStateDefinition().getProperty(key); if (property != null) { this.blockState = setPropertyValue(this.blockState, property, this.properties.get(key)); } @@ -147,9 +146,9 @@ public final class SpongeSchematic extends StaticSchematic { } private static > BlockState setPropertyValue(BlockState state, Property property, String value) { - Optional parsed = property.parseValue(value); + Optional parsed = property.getValue(value); if (parsed.isPresent()) { - return state.with(property, parsed.get()); + return state.setValue(property, parsed.get()); } else { throw new IllegalArgumentException("Invalid value for property " + property); } diff --git a/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java b/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java index 6a885dec0..7905c74aa 100644 --- a/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java +++ b/src/main/java/baritone/utils/schematic/schematica/SchematicAdapter.java @@ -19,10 +19,9 @@ package baritone.utils.schematic.schematica; import baritone.api.schematic.IStaticSchematic; import com.github.lunatrius.schematica.client.world.SchematicWorld; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; - import java.util.List; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; public final class SchematicAdapter implements IStaticSchematic { diff --git a/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java b/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java index fab688455..35b11c8e1 100644 --- a/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java +++ b/src/main/java/baritone/utils/schematic/schematica/SchematicaHelper.java @@ -20,9 +20,8 @@ package baritone.utils.schematic.schematica; import baritone.api.schematic.IStaticSchematic; import com.github.lunatrius.schematica.Schematica; import com.github.lunatrius.schematica.proxy.ClientProxy; +import net.minecraft.core.BlockPos; import net.minecraft.util.Tuple; -import net.minecraft.util.math.BlockPos; - import java.util.Optional; public enum SchematicaHelper { diff --git a/src/schematica_api/java/com/github/lunatrius/core/util/math/MBlockPos.java b/src/schematica_api/java/com/github/lunatrius/core/util/math/MBlockPos.java index 4c9da008c..383e27996 100644 --- a/src/schematica_api/java/com/github/lunatrius/core/util/math/MBlockPos.java +++ b/src/schematica_api/java/com/github/lunatrius/core/util/math/MBlockPos.java @@ -17,7 +17,7 @@ package com.github.lunatrius.core.util.math; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; public class MBlockPos extends BlockPos { diff --git a/src/schematica_api/java/com/github/lunatrius/schematica/api/ISchematic.java b/src/schematica_api/java/com/github/lunatrius/schematica/api/ISchematic.java index 48923b073..8af684414 100644 --- a/src/schematica_api/java/com/github/lunatrius/schematica/api/ISchematic.java +++ b/src/schematica_api/java/com/github/lunatrius/schematica/api/ISchematic.java @@ -17,8 +17,8 @@ package com.github.lunatrius.schematica.api; -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; public interface ISchematic { diff --git a/src/test/java/baritone/pathing/goals/GoalGetToBlockTest.java b/src/test/java/baritone/pathing/goals/GoalGetToBlockTest.java index fdcef8789..64a6a6fb7 100644 --- a/src/test/java/baritone/pathing/goals/GoalGetToBlockTest.java +++ b/src/test/java/baritone/pathing/goals/GoalGetToBlockTest.java @@ -18,12 +18,12 @@ package baritone.pathing.goals; import baritone.api.pathing.goals.GoalGetToBlock; -import net.minecraft.util.math.BlockPos; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import net.minecraft.core.BlockPos; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/baritone/utils/pathing/BetterBlockPosTest.java b/src/test/java/baritone/utils/pathing/BetterBlockPosTest.java index 072c30062..cc66b1eaa 100644 --- a/src/test/java/baritone/utils/pathing/BetterBlockPosTest.java +++ b/src/test/java/baritone/utils/pathing/BetterBlockPosTest.java @@ -18,8 +18,8 @@ package baritone.utils.pathing; import baritone.api.utils.BetterBlockPos; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -51,24 +51,24 @@ public class BetterBlockPosTest { BlockPos pos = new BlockPos(1, 2, 3); BetterBlockPos better = new BetterBlockPos(1, 2, 3); assertEquals(pos, better); - assertEquals(pos.up(), better.up()); - assertEquals(pos.down(), better.down()); + assertEquals(pos.above(), better.up()); + assertEquals(pos.below(), better.down()); assertEquals(pos.north(), better.north()); assertEquals(pos.south(), better.south()); assertEquals(pos.east(), better.east()); assertEquals(pos.west(), better.west()); for (Direction dir : Direction.values()) { - assertEquals(pos.offset(dir), better.offset(dir)); - assertEquals(pos.offset(dir, 0), pos); + assertEquals(pos.relative(dir), better.offset(dir)); + assertEquals(pos.relative(dir, 0), pos); assertEquals(better.offset(dir, 0), better); for (int i = -10; i < 10; i++) { - assertEquals(pos.offset(dir, i), better.offset(dir, i)); + assertEquals(pos.relative(dir, i), better.offset(dir, i)); } assertTrue(better.offset(dir, 0) == better); } for (int i = -10; i < 10; i++) { - assertEquals(pos.up(i), better.up(i)); - assertEquals(pos.down(i), better.down(i)); + assertEquals(pos.above(i), better.up(i)); + assertEquals(pos.below(i), better.down(i)); assertEquals(pos.north(i), better.north(i)); assertEquals(pos.south(i), better.south(i)); assertEquals(pos.east(i), better.east(i)); @@ -87,7 +87,7 @@ public class BetterBlockPosTest { } long before1 = System.nanoTime() / 1000000L; for (int i = 0; i < 1000000; i++) { - pos.up(); + pos.above(); } long after1 = System.nanoTime() / 1000000L; try { @@ -113,11 +113,11 @@ public class BetterBlockPosTest { } long before1 = System.nanoTime() / 1000000L; for (int i = 0; i < 1000000; i++) { - pos.up(0); - pos.up(1); - pos.up(2); - pos.up(3); - pos.up(4); + pos.above(0); + pos.above(1); + pos.above(2); + pos.above(3); + pos.above(4); } long after1 = System.nanoTime() / 1000000L; try {