diff --git a/gradle.properties b/gradle.properties index 7b0d1f440..208dbb3e7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,6 +4,6 @@ mod_version=1.9.1 maven_group=baritone archives_base_name=baritone -minecraft_version=1.19.3 -forge_version=1.19.3-44.0.1 +minecraft_version=1.19.2 +forge_version=1.19.2-43.0.0 fabric_version=0.14.11 diff --git a/src/api/java/baritone/api/utils/BlockOptionalMeta.java b/src/api/java/baritone/api/utils/BlockOptionalMeta.java index b144240d0..2ba6f3ed1 100644 --- a/src/api/java/baritone/api/utils/BlockOptionalMeta.java +++ b/src/api/java/baritone/api/utils/BlockOptionalMeta.java @@ -19,30 +19,26 @@ package baritone.api.utils; import baritone.api.utils.accessor.IItemStack; import com.google.common.collect.ImmutableSet; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import io.netty.util.concurrent.ThreadPerTaskExecutor; -import net.minecraft.client.Minecraft; +import net.minecraft.SharedConstants; import net.minecraft.core.BlockPos; -import net.minecraft.resources.ResourceKey; +import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.progress.ChunkProgressListener; 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.FeatureFlagSet; +import net.minecraft.world.flag.FeatureFlags; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.CustomSpawner; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.dimension.LevelStem; -import net.minecraft.world.level.storage.LevelStorageSource; -import net.minecraft.world.level.storage.ServerLevelData; import net.minecraft.world.level.storage.loot.BuiltInLootTables; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.LootTables; @@ -50,14 +46,13 @@ 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 sun.misc.Unsafe; +import org.apache.logging.log4j.core.jmx.Server; import javax.annotation.Nonnull; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.*; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Executor; import java.util.regex.MatchResult; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -69,7 +64,7 @@ public final class BlockOptionalMeta { private final ImmutableSet stateHashes; private final ImmutableSet stackHashes; private static final Pattern pattern = Pattern.compile("^(.+?)(?::(\\d+))?$"); - private static LootTables lootTables; + private static LootTables manager; private static PredicateManager predicate = new PredicateManager(); private static Map> drops = new HashMap<>(); @@ -173,11 +168,11 @@ public final class BlockOptionalMeta { } public static LootTables getManager() { - if (lootTables == null) { + if (manager == null) { MultiPackResourceManager resources = new MultiPackResourceManager(PackType.SERVER_DATA, List.of(getVanillaServerPack())); ReloadableResourceManager resourceManager = new ReloadableResourceManager(PackType.SERVER_DATA); - lootTables = new LootTables(predicate); - resourceManager.registerReloadListener(lootTables); + manager = new LootTables(predicate); + resourceManager.registerReloadListener(manager); try { resourceManager.createReload(new ThreadPerTaskExecutor(Thread::new), new ThreadPerTaskExecutor(Thread::new), CompletableFuture.completedFuture(Unit.INSTANCE), resources.listPacks().toList()).done().get(); } catch (Exception exception) { @@ -185,7 +180,7 @@ public final class BlockOptionalMeta { } } - return lootTables; + return manager; } public static PredicateManager getPredicateManager() { @@ -199,55 +194,20 @@ public final class BlockOptionalMeta { return Collections.emptyList(); } else { List items = new ArrayList<>(); - try { - getManager().get(lootTableLocation).getRandomItems( - new LootContext.Builder(ServerLevelStub.fastCreate()) - .withRandom(RandomSource.create()) - .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), + + // 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) + .withRandom(RandomSource.create()) + .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()) - ); - } catch (Exception e) { - e.printStackTrace(); - } + ); return items; } }); } - - private static class ServerLevelStub extends ServerLevel { - private static Minecraft client = Minecraft.getInstance(); - private static Unsafe unsafe = getUnsafe(); - public ServerLevelStub(MinecraftServer $$0, Executor $$1, LevelStorageSource.LevelStorageAccess $$2, ServerLevelData $$3, ResourceKey $$4, LevelStem $$5, ChunkProgressListener $$6, boolean $$7, long $$8, List $$9, boolean $$10) { - super($$0, $$1, $$2, $$3, $$4, $$5, $$6, $$7, $$8, $$9, $$10); - } - - @Override - public FeatureFlagSet enabledFeatures() { - assert client.level != null; - return client.level.enabledFeatures(); - } - - public static ServerLevelStub fastCreate() { - try { - return (ServerLevelStub) unsafe.allocateInstance(ServerLevelStub.class); - } catch (InstantiationException e) { - throw new RuntimeException(e); - } - } - - public static Unsafe getUnsafe() { - try { - Field theUnsafe = Unsafe.class.getDeclaredField("theUnsafe"); - theUnsafe.setAccessible(true); - return (Unsafe) theUnsafe.get(null); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - } } diff --git a/src/main/java/baritone/utils/GuiClick.java b/src/main/java/baritone/utils/GuiClick.java index b3b2dc500..876d5fb42 100644 --- a/src/main/java/baritone/utils/GuiClick.java +++ b/src/main/java/baritone/utils/GuiClick.java @@ -80,7 +80,6 @@ public class GuiClick extends Screen implements Helper { 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(); - System.out.println("currentMouseOver = " + currentMouseOver); } } } @@ -159,13 +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); - projectionViewMatrix.transform(pos); + projectionViewMatrix.transformProject(pos); - if (pos.w() == 0) { - return null; - } - - pos.mul(1/pos.w()); + pos.normalize(); return new Vec3(pos.x(), pos.y(), pos.z()); } } diff --git a/tweaker/build.gradle b/tweaker/build.gradle index ce623af6c..1b6304189 100644 --- a/tweaker/build.gradle +++ b/tweaker/build.gradle @@ -17,7 +17,7 @@ import baritone.gradle.task.CreateDistTask import baritone.gradle.task.ProguardTask -//import baritone.gradle.task.TweakerJsonAssembler +import baritone.gradle.task.TweakerJsonAssembler plugins { id "com.github.johnrengelman.shadow" version "7.0.0"