diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 539fed3a8..20eb4c80b 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -26,6 +26,6 @@ "depends": { "fabricloader": ">=0.11.0", - "minecraft": "1.19.2" + "minecraft": "1.19.3-rc.1" } } \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index 9297ed74b..2a25bf8ed 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -35,6 +35,6 @@ A Minecraft pathfinder bot. modId="minecraft" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version -versionRange="[1.19.2]" +versionRange="[1.19.3]" ordering="NONE" side="BOTH" \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index af7a60880..be328a8d4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,6 +4,6 @@ mod_version=1.9.0-local maven_group=baritone archives_base_name=baritone -minecraft_version=1.19.2 +minecraft_version=1.19.3-rc1 forge_version=1.19.2-43.1.65 -fabric_version=0.14.9 \ No newline at end of file +fabric_version=0.14.11 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 2475b0845..58b6e203d 100755 --- a/settings.gradle +++ b/settings.gradle @@ -43,7 +43,8 @@ rootProject.name = 'baritone' include("tweaker") if (System.getProperty("Baritone.enabled_platforms") == null) { - System.setProperty("Baritone.enabled_platforms", "fabric,forge") +// System.setProperty("Baritone.enabled_platforms", "fabric,forge") + System.setProperty("Baritone.enabled_platforms", "fabric") } for (platform in System.getProperty("Baritone.enabled_platforms").split(",")) { include(platform) diff --git a/src/api/java/baritone/api/command/datatypes/BlockById.java b/src/api/java/baritone/api/command/datatypes/BlockById.java index 5e63fcf25..db9b48141 100644 --- a/src/api/java/baritone/api/command/datatypes/BlockById.java +++ b/src/api/java/baritone/api/command/datatypes/BlockById.java @@ -19,11 +19,12 @@ package baritone.api.command.datatypes; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import java.util.stream.Stream; -import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; +import java.util.stream.Stream; + public enum BlockById implements IDatatypeFor { INSTANCE; @@ -31,7 +32,7 @@ public enum BlockById implements IDatatypeFor { public Block get(IDatatypeContext ctx) throws CommandException { ResourceLocation id = new ResourceLocation(ctx.getConsumer().getString()); Block block; - if ((block = Registry.BLOCK.getOptional(id).orElse(null)) == null) { + if ((block = BuiltInRegistries.BLOCK.getOptional(id).orElse(null)) == null) { throw new IllegalArgumentException("no block found by that id"); } return block; @@ -41,7 +42,7 @@ public enum BlockById implements IDatatypeFor { public Stream tabComplete(IDatatypeContext ctx) throws CommandException { return new TabCompleteHelper() .append( - Registry.BLOCK.keySet() + BuiltInRegistries.BLOCK.keySet() .stream() .map(Object::toString) ) diff --git a/src/api/java/baritone/api/command/datatypes/EntityClassById.java b/src/api/java/baritone/api/command/datatypes/EntityClassById.java index aff7a2d94..d7cb75734 100644 --- a/src/api/java/baritone/api/command/datatypes/EntityClassById.java +++ b/src/api/java/baritone/api/command/datatypes/EntityClassById.java @@ -19,11 +19,12 @@ package baritone.api.command.datatypes; import baritone.api.command.exception.CommandException; import baritone.api.command.helpers.TabCompleteHelper; -import java.util.stream.Stream; -import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.EntityType; +import java.util.stream.Stream; + public enum EntityClassById implements IDatatypeFor { INSTANCE; @@ -31,7 +32,7 @@ public enum EntityClassById implements IDatatypeFor { public EntityType get(IDatatypeContext ctx) throws CommandException { ResourceLocation id = new ResourceLocation(ctx.getConsumer().getString()); EntityType entity; - if ((entity = Registry.ENTITY_TYPE.getOptional(id).orElse(null)) == null) { + if ((entity = BuiltInRegistries.ENTITY_TYPE.getOptional(id).orElse(null)) == null) { throw new IllegalArgumentException("no entity found by that id"); } return entity; @@ -40,7 +41,7 @@ public enum EntityClassById implements IDatatypeFor { @Override public Stream tabComplete(IDatatypeContext ctx) throws CommandException { return new TabCompleteHelper() - .append(Registry.ENTITY_TYPE.stream().map(Object::toString)) + .append(BuiltInRegistries.ENTITY_TYPE.stream().map(Object::toString)) .filterPrefixNamespaced(ctx.getConsumer().getString()) .sortAlphabetically() .stream(); diff --git a/src/api/java/baritone/api/event/events/RenderEvent.java b/src/api/java/baritone/api/event/events/RenderEvent.java index cb7a0414c..a12a4dd5c 100644 --- a/src/api/java/baritone/api/event/events/RenderEvent.java +++ b/src/api/java/baritone/api/event/events/RenderEvent.java @@ -18,7 +18,7 @@ package baritone.api.event.events; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.math.Matrix4f; +import org.joml.Matrix4f; /** * @author Brady diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java index dfc27e664..44a284e9d 100644 --- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java +++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java @@ -18,19 +18,24 @@ package baritone.api.utils; import baritone.api.utils.accessor.IItemStack; +import baritone.utils.accessors.IServerPackSource; import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import io.netty.util.concurrent.ThreadPerTaskExecutor; +import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; -import net.minecraft.resources.*; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.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.*; +import net.minecraft.server.packs.metadata.pack.PackMetadataSection; import net.minecraft.server.packs.repository.PackRepository; import net.minecraft.server.packs.repository.ServerPacksSource; +import net.minecraft.server.packs.resources.MultiPackResourceManager; import net.minecraft.server.packs.resources.ReloadableResourceManager; import net.minecraft.util.RandomSource; import net.minecraft.util.Unit; +import net.minecraft.world.flag.FeatureFlags; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; @@ -42,6 +47,8 @@ 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 org.apache.logging.log4j.core.jmx.Server; + import javax.annotation.Nonnull; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -144,17 +151,16 @@ public final class BlockOptionalMeta { public static LootTables getManager() { if (manager == null) { - PackRepository rpl = new PackRepository(PackType.SERVER_DATA, new ServerPacksSource()); - rpl.reload(); - PackResources thePack = rpl.getAvailablePacks().iterator().next().open(); + MultiPackResourceManager resources = new MultiPackResourceManager(PackType.SERVER_DATA, List.of(((IServerPackSource) new ServerPacksSource()).callCreateVanillaPackSource())); ReloadableResourceManager resourceManager = new ReloadableResourceManager(PackType.SERVER_DATA); manager = new LootTables(predicate); resourceManager.registerReloadListener(manager); try { - resourceManager.createReload(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), CompletableFuture.completedFuture(Unit.INSTANCE), Collections.singletonList(thePack)).done().get(); + resourceManager.createReload(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), CompletableFuture.completedFuture(Unit.INSTANCE), resources.listPacks().toList()).done().get(); } catch (Exception exception) { throw new RuntimeException(exception); } + } return manager; } @@ -173,7 +179,7 @@ public final class BlockOptionalMeta { // the other overload for generate doesnt work in forge because forge adds code that requires a non null world getManager().get(lootTableLocation).getRandomItems( - new LootContext.Builder((ServerLevel) null) + new LootContext.Builder((ServerLevel null) .withRandom(RandomSource.create()) .withParameter(LootContextParams.ORIGIN, Vec3.atLowerCornerOf(BlockPos.ZERO)) .withParameter(LootContextParams.TOOL, ItemStack.EMPTY) diff --git a/src/api/java/baritone/api/utils/BlockUtils.java b/src/api/java/baritone/api/utils/BlockUtils.java index cc4204f8e..a43d78e87 100644 --- a/src/api/java/baritone/api/utils/BlockUtils.java +++ b/src/api/java/baritone/api/utils/BlockUtils.java @@ -20,6 +20,7 @@ package baritone.api.utils; import java.util.HashMap; import java.util.Map; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; @@ -28,7 +29,7 @@ public class BlockUtils { private static transient Map resourceCache = new HashMap<>(); public static String blockToString(Block block) { - ResourceLocation loc = Registry.BLOCK.getKey(block); + ResourceLocation loc = BuiltInRegistries.BLOCK.getKey(block); String name = loc.getPath(); // normally, only write the part after the minecraft: if (!loc.getNamespace().equals("minecraft")) { // Baritone is running on top of forge with mods installed, perhaps? @@ -56,7 +57,7 @@ public class BlockUtils { if (resourceCache.containsKey(name)) { return null; // cached as null } - block = Registry.BLOCK.getOptional(ResourceLocation.tryParse(name.contains(":") ? name : "minecraft:" + name)).orElse(null); + block = BuiltInRegistries.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/SettingsUtil.java b/src/api/java/baritone/api/utils/SettingsUtil.java index 2ed98d92f..3e5e1342d 100644 --- a/src/api/java/baritone/api/utils/SettingsUtil.java +++ b/src/api/java/baritone/api/utils/SettingsUtil.java @@ -23,6 +23,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.core.Direction; import net.minecraft.core.Registry; import net.minecraft.core.Vec3i; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -252,8 +253,8 @@ public class SettingsUtil { ), ITEM( Item.class, - 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() + str -> BuiltInRegistries.ITEM.get(new ResourceLocation(str.trim())), // TODO this now returns AIR on failure instead of null, is that an issue? + item -> BuiltInRegistries.ITEM.getKey(item).toString() ), LIST() { @Override diff --git a/src/api/java/baritone/utils/accessors/IServerPackSource.java b/src/api/java/baritone/utils/accessors/IServerPackSource.java new file mode 100644 index 000000000..048c27b5c --- /dev/null +++ b/src/api/java/baritone/utils/accessors/IServerPackSource.java @@ -0,0 +1,26 @@ +/* + * This file is part of Baritone. + * + * Baritone is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Baritone is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Baritone. If not, see . + */ + +package baritone.utils.accessors; + +import net.minecraft.server.packs.VanillaPackResources; + +public interface IServerPackSource { + + VanillaPackResources callCreateVanillaPackSource(); + +} diff --git a/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java b/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java index df3fbf09f..e718685c9 100644 --- a/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java +++ b/src/launch/java/baritone/launch/mixins/MixinClientPlayNetHandler.java @@ -20,14 +20,19 @@ package baritone.launch.mixins; import baritone.Baritone; import baritone.api.BaritoneAPI; import baritone.api.IBaritone; +import baritone.api.event.events.ChatEvent; import baritone.api.event.events.ChunkEvent; import baritone.api.event.events.type.EventState; import baritone.cache.CachedChunk; +import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientPacketListener; import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.game.*; import net.minecraft.world.level.ChunkPos; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -63,6 +68,25 @@ public class MixinClientPlayNetHandler { } }*/ + @Shadow @Final private Minecraft minecraft; + + @Inject( + method = "sendChat(Ljava/lang/String;)V", + at = @At("HEAD"), + cancellable = true + ) + private void sendChatMessage(String string, CallbackInfo ci) { + ChatEvent event = new ChatEvent(string); + IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer(this.minecraft.player); + if (baritone == null) { + return; + } + baritone.getGameEventHandler().onSendChatMessage(event); + if (event.isCancelled()) { + ci.cancel(); + } + } + @Inject( method = "handleLevelChunkWithLight", at = @At("RETURN") diff --git a/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java b/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java index e5f3e0375..22ca083e0 100644 --- a/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java +++ b/src/launch/java/baritone/launch/mixins/MixinClientPlayerEntity.java @@ -41,23 +41,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(LocalPlayer.class) public class MixinClientPlayerEntity { - @Inject( - method = "sendChat(Ljava/lang/String;Lnet/minecraft/network/chat/Component;)V", - at = @At("HEAD"), - cancellable = true - ) - private void sendChatMessage(String string, Component component, CallbackInfo ci) { - ChatEvent event = new ChatEvent(string); - IBaritone baritone = BaritoneAPI.getProvider().getBaritoneForPlayer((LocalPlayer) (Object) this); - if (baritone == null) { - return; - } - baritone.getGameEventHandler().onSendChatMessage(event); - if (event.isCancelled()) { - ci.cancel(); - } - } - @Inject( method = "tick", at = @At( diff --git a/src/launch/java/baritone/launch/mixins/MixinServerPackSource.java b/src/launch/java/baritone/launch/mixins/MixinServerPackSource.java new file mode 100644 index 000000000..a347b1707 --- /dev/null +++ b/src/launch/java/baritone/launch/mixins/MixinServerPackSource.java @@ -0,0 +1,33 @@ +/* + * This file is part of Baritone. + * + * Baritone is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Baritone is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Baritone. If not, see . + */ + +package baritone.launch.mixins; + +import baritone.utils.accessors.IServerPackSource; +import net.minecraft.server.packs.VanillaPackResources; +import net.minecraft.server.packs.repository.ServerPacksSource; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(ServerPacksSource.class) +public abstract class MixinServerPackSource implements IServerPackSource { + + @Invoker + @Override + public abstract VanillaPackResources callCreateVanillaPackSource(); + +} diff --git a/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java b/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java index 622721281..a6cf48899 100644 --- a/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java +++ b/src/launch/java/baritone/launch/mixins/MixinWorldRenderer.java @@ -21,11 +21,11 @@ import baritone.api.BaritoneAPI; import baritone.api.IBaritone; import baritone.api.event.events.RenderEvent; 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 org.joml.Matrix4f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; diff --git a/src/launch/resources/mixins.baritone.json b/src/launch/resources/mixins.baritone.json index 92e057061..d48e19ef1 100644 --- a/src/launch/resources/mixins.baritone.json +++ b/src/launch/resources/mixins.baritone.json @@ -23,6 +23,7 @@ "MixinNetworkManager", "MixinPlayerController", "MixinScreen", + "MixinServerPackSource", "MixinWorldRenderer" ] } \ No newline at end of file diff --git a/src/main/java/baritone/command/defaults/FindCommand.java b/src/main/java/baritone/command/defaults/FindCommand.java index 2c5ca7c97..7433cf726 100644 --- a/src/main/java/baritone/command/defaults/FindCommand.java +++ b/src/main/java/baritone/command/defaults/FindCommand.java @@ -27,6 +27,7 @@ import baritone.api.utils.BetterBlockPos; import baritone.cache.CachedChunk; import net.minecraft.core.Registry; import net.minecraft.ChatFormatting; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.HoverEvent; @@ -57,7 +58,7 @@ public class FindCommand extends Command { Component[] components = toFind.stream() .flatMap(block -> ctx.worldData().getCachedWorld().getLocationsOf( - Registry.BLOCK.getKey(block).getPath(), + BuiltInRegistries.BLOCK.getKey(block).getPath(), Integer.MAX_VALUE, origin.x, origin.y, @@ -93,7 +94,7 @@ public class FindCommand extends Command { return new TabCompleteHelper() .append( CachedChunk.BLOCKS_TO_KEEP_TRACK_OF.stream() - .map(Registry.BLOCK::getKey) + .map(BuiltInRegistries.BLOCK::getKey) .map(Object::toString) ) .filterPrefixNamespaced(args.getString()) diff --git a/src/main/java/baritone/command/defaults/FollowCommand.java b/src/main/java/baritone/command/defaults/FollowCommand.java index 46c6a1c60..b7e708377 100644 --- a/src/main/java/baritone/command/defaults/FollowCommand.java +++ b/src/main/java/baritone/command/defaults/FollowCommand.java @@ -31,6 +31,7 @@ import java.util.*; import java.util.function.Predicate; import java.util.stream.Stream; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -84,7 +85,7 @@ public class FollowCommand extends Command { } else { logDirect("Following these types of entities:"); classes.stream() - .map(Registry.ENTITY_TYPE::getKey) + .map(BuiltInRegistries.ENTITY_TYPE::getKey) .map(Objects::requireNonNull) .map(ResourceLocation::toString) .forEach(this::logDirect); diff --git a/src/main/java/baritone/pathing/movement/MovementHelper.java b/src/main/java/baritone/pathing/movement/MovementHelper.java index 658e044aa..8efafa3db 100644 --- a/src/main/java/baritone/pathing/movement/MovementHelper.java +++ b/src/main/java/baritone/pathing/movement/MovementHelper.java @@ -545,7 +545,7 @@ public interface MovementHelper extends ActionCosts, Helper { static boolean isBlockNormalCube(BlockState state) { Block block = state.getBlock(); - if (block instanceof BambooBlock + if (block instanceof BambooStalkBlock || block instanceof MovingPistonBlock || block instanceof ScaffoldingBlock || block instanceof ShulkerBoxBlock diff --git a/src/main/java/baritone/utils/GuiClick.java b/src/main/java/baritone/utils/GuiClick.java index d0a435e1f..876d5fb42 100644 --- a/src/main/java/baritone/utils/GuiClick.java +++ b/src/main/java/baritone/utils/GuiClick.java @@ -24,8 +24,6 @@ import baritone.api.utils.BetterBlockPos; import baritone.api.utils.Helper; import com.mojang.blaze3d.systems.RenderSystem; 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; @@ -39,6 +37,8 @@ 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 org.joml.Matrix4f; +import org.joml.Vector4f; import java.awt.*; import java.util.Collections; @@ -118,8 +118,8 @@ public class GuiClick extends Screen implements Helper { } public void onRender(PoseStack modelViewStack, Matrix4f projectionMatrix) { - this.projectionViewMatrix = projectionMatrix.copy(); - this.projectionViewMatrix.multiply(modelViewStack.last().pose()); + this.projectionViewMatrix = new Matrix4f(projectionMatrix); + this.projectionViewMatrix.mul(modelViewStack.last().pose()); this.projectionViewMatrix.invert(); if (currentMouseOver != null) { @@ -158,12 +158,9 @@ public class GuiClick extends Screen implements Helper { y = y * 2 - 1; Vector4f pos = new Vector4f((float) x, (float) y, (float) z, 1.0F); - pos.transform(this.projectionViewMatrix); - if (pos.w() == 0) { - return null; - } + projectionViewMatrix.transformProject(pos); - pos.perspectiveDivide(); + pos.normalize(); 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 d07bf44fa..380fbd9e0 100644 --- a/src/main/java/baritone/utils/IRenderer.java +++ b/src/main/java/baritone/utils/IRenderer.java @@ -23,9 +23,9 @@ import baritone.api.utils.Helper; import baritone.utils.accessor.IEntityRenderManager; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; -import com.mojang.math.Matrix4f; import java.awt.*; import net.minecraft.world.phys.AABB; +import org.joml.Matrix4f; import static org.lwjgl.opengl.GL11.*; diff --git a/src/main/java/baritone/utils/PathRenderer.java b/src/main/java/baritone/utils/PathRenderer.java index db7d11b34..55d721d8f 100644 --- a/src/main/java/baritone/utils/PathRenderer.java +++ b/src/main/java/baritone/utils/PathRenderer.java @@ -30,7 +30,6 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.math.Matrix4f; import java.awt.*; import java.util.Collection; import java.util.Collections; @@ -45,6 +44,7 @@ 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 org.joml.Matrix4f; import static org.lwjgl.opengl.GL11.*; diff --git a/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java b/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java index 24b0bc13e..89ab4eb7f 100644 --- a/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java +++ b/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java @@ -21,6 +21,7 @@ import baritone.utils.accessor.ILongArrayNBT; import baritone.utils.schematic.StaticSchematic; import net.minecraft.core.Registry; import net.minecraft.core.Vec3i; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.resources.ResourceLocation; @@ -94,7 +95,7 @@ public final class LitematicaSchematic extends StaticSchematic { BlockState[] blockList = new BlockState[blockStatePalette.size()]; for (int i = 0; i < blockStatePalette.size(); i++) { - Block block = Registry.BLOCK.get(new ResourceLocation((((CompoundTag) blockStatePalette.get(i)).getString("Name")))); + Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation((((CompoundTag) blockStatePalette.get(i)).getString("Name")))); CompoundTag properties = ((CompoundTag) blockStatePalette.get(i)).getCompound("Properties"); blockList[i] = getBlockState(block, properties); 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 4693ea387..3018021a5 100644 --- a/src/main/java/baritone/utils/schematic/format/defaults/MCEditSchematic.java +++ b/src/main/java/baritone/utils/schematic/format/defaults/MCEditSchematic.java @@ -19,6 +19,7 @@ package baritone.utils.schematic.format.defaults; import baritone.utils.schematic.StaticSchematic; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.datafix.fixes.ItemIdFix; @@ -62,7 +63,7 @@ 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.get(ResourceLocation.tryParse(ItemIdFix.getItem(blockID))); + Block block = BuiltInRegistries.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.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 3c00b08c6..12163cbff 100644 --- a/src/main/java/baritone/utils/schematic/format/defaults/SpongeSchematic.java +++ b/src/main/java/baritone/utils/schematic/format/defaults/SpongeSchematic.java @@ -26,6 +26,7 @@ import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; @@ -106,7 +107,7 @@ public final class SpongeSchematic extends StaticSchematic { private BlockState deserialize() { if (this.blockState == null) { - Block block = Registry.BLOCK.get(this.resourceLocation); + Block block = BuiltInRegistries.BLOCK.get(this.resourceLocation); this.blockState = block.defaultBlockState(); this.properties.keySet().stream().sorted(String::compareTo).forEachOrdered(key -> {