Search in sources :

Example 6 with BlockHitResult

use of net.minecraft.util.hit.BlockHitResult in project CustomHUD by Minenash.

the class ComplexData method update.

@SuppressWarnings("ConstantConditions")
public static void update(Profile profile) {
    if (profile.enabled.serverWorld) {
        IntegratedServer integratedServer = client.getServer();
        serverWorld = integratedServer != null ? integratedServer.getWorld(client.world.getRegistryKey()) : null;
    }
    if (profile.enabled.clientChunk) {
        ChunkPos newPos = new ChunkPos(client.getCameraEntity().getBlockPos());
        if (!Objects.equals(ComplexData.pos, newPos)) {
            pos = newPos;
            chunkFuture = null;
            clientChunk = null;
        }
        if (clientChunk == null)
            clientChunk = client.world.getChunk(pos.x, pos.z);
    }
    if (profile.enabled.serverChunk) {
        if (chunkFuture == null) {
            if (serverWorld != null)
                chunkFuture = serverWorld.getChunkManager().getChunkFutureSyncOnMainThread(pos.x, pos.z, ChunkStatus.FULL, false).thenApply((either) -> either.map((chunk) -> (WorldChunk) chunk, (unloaded) -> null));
            if (chunkFuture == null)
                chunkFuture = CompletableFuture.completedFuture(clientChunk);
        }
        serverChunk = chunkFuture.getNow(null);
    }
    if (profile.enabled.targetBlock) {
        HitResult hit = client.cameraEntity.raycast(profile.targetDistance, 0.0F, false);
        targetBlockPos = hit.getType() == HitResult.Type.BLOCK ? ((BlockHitResult) hit).getBlockPos() : null;
    }
    if (profile.enabled.world)
        world = DataFixUtils.orElse(Optional.ofNullable(client.getServer()).flatMap((integratedServer) -> Optional.ofNullable(integratedServer.getWorld(client.world.getRegistryKey()))), client.world);
    if (profile.enabled.localDifficulty)
        localDifficulty = new LocalDifficulty(world.getDifficulty(), world.getTimeOfDay(), serverChunk == null ? 0 : serverChunk.getInhabitedTime(), world.getMoonSize());
    if (profile.enabled.sound)
        sounds = client.getSoundManager().getDebugString().substring(8).replace(" + ", "/").split("/");
    if (profile.enabled.clientChunkCache)
        clientChunkCache = client.worldRenderer.getChunksDebugString().substring(20).split(", ");
    if (profile.enabled.time) {
        timeOfDay = (int) ((client.world.getTimeOfDay() + 6000) % 24000);
    }
    if (profile.enabled.velocity) {
        if (velocityWaitCounter > 0) {
            velocityWaitCounter--;
            return;
        }
        velocityWaitCounter = 4;
        ClientPlayerEntity p = client.player;
        final double changeXZ = Math.sqrt(Math.pow(Math.abs(p.getX() - x1), 2) + Math.pow(Math.abs(p.getZ() - z1), 2));
        final double changeY = Math.abs(p.getY() - y1);
        final double changeXYZ = Math.sqrt(changeXZ * changeXZ + changeY * changeY);
        x1 = p.getX();
        y1 = p.getY();
        z1 = p.getZ();
        velocityXZ = ((int) (changeXZ * 40)) / 10.0;
        velocityY = ((int) (changeY * 40)) / 10.0;
        velocityXYZ = ((int) (changeXYZ * 40)) / 10.0;
    }
}
Also used : World(net.minecraft.world.World) ServerWorld(net.minecraft.server.world.ServerWorld) BlockHitResult(net.minecraft.util.hit.BlockHitResult) ChunkPos(net.minecraft.util.math.ChunkPos) BlockPos(net.minecraft.util.math.BlockPos) CompletableFuture(java.util.concurrent.CompletableFuture) DataFixUtils(com.mojang.datafixers.DataFixUtils) WorldChunk(net.minecraft.world.chunk.WorldChunk) HitResult(net.minecraft.util.hit.HitResult) Objects(java.util.Objects) IntegratedServer(net.minecraft.server.integrated.IntegratedServer) ChunkStatus(net.minecraft.world.chunk.ChunkStatus) Optional(java.util.Optional) MinecraftClient(net.minecraft.client.MinecraftClient) ClientPlayerEntity(net.minecraft.client.network.ClientPlayerEntity) LocalDifficulty(net.minecraft.world.LocalDifficulty) BlockHitResult(net.minecraft.util.hit.BlockHitResult) HitResult(net.minecraft.util.hit.HitResult) IntegratedServer(net.minecraft.server.integrated.IntegratedServer) LocalDifficulty(net.minecraft.world.LocalDifficulty) WorldChunk(net.minecraft.world.chunk.WorldChunk) ChunkPos(net.minecraft.util.math.ChunkPos) BlockHitResult(net.minecraft.util.hit.BlockHitResult) ClientPlayerEntity(net.minecraft.client.network.ClientPlayerEntity)

Example 7 with BlockHitResult

use of net.minecraft.util.hit.BlockHitResult in project BleachHack by BleachDrinker420.

the class WorldUtils method placeBlock.

public static boolean placeBlock(BlockPos pos, int slot, int rotateMode, boolean forceLegit, boolean airPlace, boolean swingHand) {
    if (!mc.world.isInBuildLimit(pos) || !isBlockEmpty(pos))
        return false;
    for (Direction d : Direction.values()) {
        if (!mc.world.isInBuildLimit(pos.offset(d)))
            continue;
        Block neighborBlock = mc.world.getBlockState(pos.offset(d)).getBlock();
        if (!airPlace && neighborBlock.getDefaultState().getMaterial().isReplaceable())
            continue;
        Vec3d vec = getLegitLookPos(pos.offset(d), d.getOpposite(), true, 5);
        if (vec == null) {
            if (forceLegit) {
                continue;
            }
            vec = getLegitLookPos(pos.offset(d), d.getOpposite(), false, 5);
            if (vec == null) {
                continue;
            }
        }
        int prevSlot = mc.player.getInventory().selectedSlot;
        Hand hand = InventoryUtils.selectSlot(slot);
        if (hand == null) {
            return false;
        }
        if (rotateMode == 1) {
            facePosPacket(vec.x, vec.y, vec.z);
        } else if (rotateMode == 2) {
            facePos(vec.x, vec.y, vec.z);
        }
        if (RIGHTCLICKABLE_BLOCKS.contains(neighborBlock)) {
            mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, Mode.PRESS_SHIFT_KEY));
        }
        if (swingHand) {
            mc.player.swingHand(hand);
        } else {
            mc.player.networkHandler.sendPacket(new HandSwingC2SPacket(hand));
        }
        mc.interactionManager.interactBlock(mc.player, mc.world, hand, new BlockHitResult(Vec3d.of(pos), airPlace ? d : d.getOpposite(), airPlace ? pos : pos.offset(d), false));
        if (RIGHTCLICKABLE_BLOCKS.contains(neighborBlock))
            mc.player.networkHandler.sendPacket(new ClientCommandC2SPacket(mc.player, Mode.RELEASE_SHIFT_KEY));
        mc.player.getInventory().selectedSlot = prevSlot;
        return true;
    }
    return false;
}
Also used : ClientCommandC2SPacket(net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket) HandSwingC2SPacket(net.minecraft.network.packet.c2s.play.HandSwingC2SPacket) LeavesBlock(net.minecraft.block.LeavesBlock) Block(net.minecraft.block.Block) PlantBlock(net.minecraft.block.PlantBlock) BlockHitResult(net.minecraft.util.hit.BlockHitResult) Direction(net.minecraft.util.math.Direction) Hand(net.minecraft.util.Hand) Vec3d(net.minecraft.util.math.Vec3d)

Example 8 with BlockHitResult

use of net.minecraft.util.hit.BlockHitResult in project BleachHack by BleachDrinker420.

the class AutoSteal method onTick.

@BleachSubscribe
public void onTick(EventTick event) {
    currentTime++;
    for (Entry<BlockPos, Integer> e : new HashMap<>(opened).entrySet()) {
        if (e.getValue() <= 0)
            opened.remove(e.getKey());
        else
            opened.replace(e.getKey(), e.getValue() - 1);
    }
    if (currentItems != null && currentSyncId != -1) {
        if (currentTime - lastSteal >= getSetting(1).asSlider().getValue()) {
            for (int i = 0; i < currentItems.size(); i++) {
                if (!currentItems.get(i).isEmpty()) {
                    if (isBlacklisted(currentItems.get(i).getItem())) {
                        continue;
                    }
                    int fi = i;
                    boolean openSlot = InventoryUtils.getSlot(false, j -> mc.player.getInventory().getStack(j).isEmpty() || (mc.player.getInventory().getStack(j).isStackable() && mc.player.getInventory().getStack(j).getCount() < mc.player.getInventory().getStack(j).getMaxCount() && currentItems.get(fi).isItemEqual(mc.player.getInventory().getStack(j)))) != 1;
                    if (openSlot) {
                        mc.interactionManager.clickSlot(currentSyncId, i, 0, SlotActionType.QUICK_MOVE, mc.player);
                        currentItems.set(i, ItemStack.EMPTY);
                        lastSteal = currentTime + RandomUtils.nextInt(0, getSetting(2).asSlider().getValueInt() + 1);
                    }
                    return;
                }
            }
            if (getSetting(0).asMode().getMode() >= 1 || getSetting(3).asToggle().getState()) {
                mc.setScreen(null);
                mc.player.networkHandler.sendPacket(new CloseHandledScreenC2SPacket(currentSyncId));
            }
        }
    } else if (currentItems == null && currentSyncId == -1 && getSetting(3).asToggle().getState()) {
        for (BlockEntity be : WorldUtils.getBlockEntities()) {
            if (!opened.containsKey(be.getPos()) && be instanceof ChestBlockEntity && mc.player.getEyePos().distanceTo(Vec3d.ofCenter(be.getPos())) <= getSetting(3).asToggle().getChild(0).asSlider().getValue() + 0.25) {
                Vec3d lookVec = Vec3d.ofCenter(be.getPos()).add(0, 0.5, 0);
                if (getSetting(3).asToggle().getChild(2).asRotate().getState()) {
                    WorldUtils.facePosAuto(lookVec.x, lookVec.y, lookVec.z, getSetting(3).asToggle().getChild(2).asRotate());
                }
                mc.interactionManager.interactBlock(mc.player, mc.world, Hand.MAIN_HAND, new BlockHitResult(lookVec, Direction.UP, be.getPos(), false));
                opened.put(be.getPos(), getSetting(3).asToggle().getChild(1).asSlider().getValueInt() * 20);
                return;
            }
        }
    }
}
Also used : CloseHandledScreenC2SPacket(net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket) RandomUtils(org.apache.commons.lang3.RandomUtils) BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe) LiteralText(net.minecraft.text.LiteralText) BlockEntity(net.minecraft.block.entity.BlockEntity) ModuleCategory(org.bleachhack.module.ModuleCategory) Item(net.minecraft.item.Item) EventOpenScreen(org.bleachhack.event.events.EventOpenScreen) InventoryUtils(org.bleachhack.util.InventoryUtils) HashMap(java.util.HashMap) SettingItemList(org.bleachhack.setting.module.SettingItemList) ArrayList(java.util.ArrayList) ScreenHandlerSlotUpdateS2CPacket(net.minecraft.network.packet.s2c.play.ScreenHandlerSlotUpdateS2CPacket) Direction(net.minecraft.util.math.Direction) WorldUtils(org.bleachhack.util.world.WorldUtils) ItemStack(net.minecraft.item.ItemStack) PlayerInteractBlockC2SPacket(net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket) Vec3d(net.minecraft.util.math.Vec3d) SettingMode(org.bleachhack.setting.module.SettingMode) Map(java.util.Map) Hand(net.minecraft.util.Hand) ChestBlock(net.minecraft.block.ChestBlock) ChestBlockEntity(net.minecraft.block.entity.ChestBlockEntity) EventPacket(org.bleachhack.event.events.EventPacket) SettingRotate(org.bleachhack.setting.module.SettingRotate) SettingSlider(org.bleachhack.setting.module.SettingSlider) ScreenHandler(net.minecraft.screen.ScreenHandler) WorldRenderer(org.bleachhack.util.render.WorldRenderer) InventoryS2CPacket(net.minecraft.network.packet.s2c.play.InventoryS2CPacket) BlockHitResult(net.minecraft.util.hit.BlockHitResult) EventWorldRender(org.bleachhack.event.events.EventWorldRender) BlockPos(net.minecraft.util.math.BlockPos) Module(org.bleachhack.module.Module) List(java.util.List) Entry(java.util.Map.Entry) SlotActionType(net.minecraft.screen.slot.SlotActionType) SettingToggle(org.bleachhack.setting.module.SettingToggle) HandledScreen(net.minecraft.client.gui.screen.ingame.HandledScreen) EventTick(org.bleachhack.event.events.EventTick) GenericContainerScreenHandler(net.minecraft.screen.GenericContainerScreenHandler) ChestBlockEntity(net.minecraft.block.entity.ChestBlockEntity) BlockPos(net.minecraft.util.math.BlockPos) BlockHitResult(net.minecraft.util.hit.BlockHitResult) Vec3d(net.minecraft.util.math.Vec3d) CloseHandledScreenC2SPacket(net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket) BlockEntity(net.minecraft.block.entity.BlockEntity) ChestBlockEntity(net.minecraft.block.entity.ChestBlockEntity) BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe)

Example 9 with BlockHitResult

use of net.minecraft.util.hit.BlockHitResult in project BleachHack by BleachDrinker420.

the class BlockHighlight method onWorldRender.

@BleachSubscribe
public void onWorldRender(EventWorldRender.Post event) {
    int mode = getSetting(0).asMode().getMode();
    if (!(mc.crosshairTarget instanceof BlockHitResult))
        return;
    BlockPos pos = ((BlockHitResult) mc.crosshairTarget).getBlockPos();
    BlockState state = mc.world.getBlockState(pos);
    if (state.getMaterial() == Material.AIR || !mc.world.getWorldBorder().contains(pos))
        return;
    int[] color = this.getSetting(4).asColor().getRGBArray();
    if (mode == 0) {
        shader.prepare();
        shader.clearFramebuffer("main");
        Vec3d offset = state.getModelOffset(mc.world, pos);
        MatrixStack matrices = Renderer.matrixFrom(pos.getX() + offset.x, pos.getY() + offset.y, pos.getZ() + offset.z);
        BlockEntity be = mc.world.getBlockEntity(pos);
        BlockEntityRenderer<BlockEntity> renderer = be != null ? mc.getBlockEntityRenderDispatcher().get(be) : null;
        if (renderer != null) {
            renderer.render(be, mc.getTickDelta(), matrices, colorVertexer.createSingleProvider(mc.getBufferBuilders().getEntityVertexConsumers(), color[0], color[1], color[2], getSetting(1).asSlider().getValueInt()), LightmapTextureManager.MAX_LIGHT_COORDINATE, OverlayTexture.DEFAULT_UV);
        } else {
            mc.getBlockRenderManager().getModelRenderer().renderFlat(mc.world, mc.getBlockRenderManager().getModel(state), state, pos, matrices, colorVertexer.createSingleProvider(mc.getBufferBuilders().getEntityVertexConsumers(), color[0], color[1], color[2], getSetting(1).asSlider().getValueInt()).getBuffer(RenderLayers.getMovingBlockLayer(state)), false, new Random(), 0L, OverlayTexture.DEFAULT_UV);
        }
        colorVertexer.draw();
        shader.render();
        shader.drawFramebufferToMain("main");
    } else {
        Box box = state.getOutlineShape(mc.world, pos).getBoundingBox().offset(pos);
        float width = getSetting(2).asSlider().getValueFloat();
        int fill = getSetting(3).asSlider().getValueInt();
        if (width != 0)
            Renderer.drawBoxOutline(box, QuadColor.single(color[0], color[1], color[2], 255), width);
        if (fill != 0)
            Renderer.drawBoxFill(box, QuadColor.single(color[0], color[1], color[2], fill));
    }
}
Also used : BlockState(net.minecraft.block.BlockState) Random(java.util.Random) MatrixStack(net.minecraft.client.util.math.MatrixStack) BlockPos(net.minecraft.util.math.BlockPos) Box(net.minecraft.util.math.Box) BlockHitResult(net.minecraft.util.hit.BlockHitResult) Vec3d(net.minecraft.util.math.Vec3d) BlockEntity(net.minecraft.block.entity.BlockEntity) BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe)

Example 10 with BlockHitResult

use of net.minecraft.util.hit.BlockHitResult in project BleachHack by BleachDrinker420.

the class AutoFarm method onTick.

@BleachSubscribe
public void onTick(EventTick event) {
    mossMap.entrySet().removeIf(e -> e.setValue(e.getValue() - 1) == 0);
    double range = getSetting(0).asSlider().getValue();
    int ceilRange = MathHelper.ceil(range);
    SettingToggle tillSetting = getSetting(1).asToggle();
    SettingToggle harvestSetting = getSetting(2).asToggle();
    SettingToggle plantSetting = getSetting(3).asToggle();
    SettingToggle bonemealSetting = getSetting(4).asToggle();
    // Special case for moss to maximize efficiency
    if (bonemealSetting.getState() && bonemealSetting.getChild(6).asToggle().getState()) {
        int slot = InventoryUtils.getSlot(true, i -> mc.player.getInventory().getStack(i).getItem() == Items.BONE_MEAL);
        if (slot != -1) {
            BlockPos bestBlock = BlockPos.streamOutwards(new BlockPos(mc.player.getEyePos()), ceilRange, ceilRange, ceilRange).filter(b -> mc.player.getEyePos().distanceTo(Vec3d.ofCenter(b)) <= range && !mossMap.containsKey(b)).map(b -> Pair.of(b.toImmutable(), getMossSpots(b))).filter(p -> p.getRight() > 10).map(Pair::getLeft).min(Comparator.reverseOrder()).orElse(null);
            if (bestBlock != null) {
                if (!mc.world.isAir(bestBlock.up())) {
                    mc.interactionManager.updateBlockBreakingProgress(bestBlock.up(), Direction.UP);
                }
                Hand hand = InventoryUtils.selectSlot(slot);
                mc.interactionManager.interactBlock(mc.player, mc.world, hand, new BlockHitResult(Vec3d.ofCenter(bestBlock, 1), Direction.UP, bestBlock, false));
                mossMap.put(bestBlock, 100);
                return;
            }
        }
    }
    for (BlockPos pos : BlockPos.iterateOutwards(new BlockPos(mc.player.getEyePos()), ceilRange, ceilRange, ceilRange)) {
        if (mc.player.getEyePos().distanceTo(Vec3d.ofCenter(pos)) > range)
            continue;
        BlockState state = mc.world.getBlockState(pos);
        Block block = state.getBlock();
        if (tillSetting.getState() && canTill(block) && mc.world.isAir(pos.up())) {
            if (!tillSetting.getChild(0).asToggle().getState() || BlockPos.stream(pos.getX() - 4, pos.getY(), pos.getZ() - 4, pos.getX() + 4, pos.getY(), pos.getZ() + 4).anyMatch(b -> mc.world.getFluidState(b).isIn(FluidTags.WATER))) {
                Hand hand = InventoryUtils.selectSlot(true, i -> mc.player.getInventory().getStack(i).getItem() instanceof HoeItem);
                if (hand != null) {
                    mc.interactionManager.interactBlock(mc.player, mc.world, hand, new BlockHitResult(Vec3d.ofCenter(pos, 1), Direction.UP, pos, false));
                    return;
                }
            }
        }
        if (harvestSetting.getState()) {
            if ((harvestSetting.getChild(0).asToggle().getState() && block instanceof CropBlock && ((CropBlock) block).isMature(state)) || (harvestSetting.getChild(1).asToggle().getState() && block instanceof GourdBlock) || (harvestSetting.getChild(2).asToggle().getState() && block instanceof NetherWartBlock && state.get(NetherWartBlock.AGE) >= 3) || (harvestSetting.getChild(3).asToggle().getState() && block instanceof CocoaBlock && state.get(CocoaBlock.AGE) >= 2) || (harvestSetting.getChild(4).asToggle().getState() && block instanceof SweetBerryBushBlock && state.get(SweetBerryBushBlock.AGE) >= 3) || (harvestSetting.getChild(5).asToggle().getState() && shouldHarvestTallCrop(pos, block, SugarCaneBlock.class)) || (harvestSetting.getChild(6).asToggle().getState() && shouldHarvestTallCrop(pos, block, CactusBlock.class))) {
                mc.interactionManager.updateBlockBreakingProgress(pos, Direction.UP);
                return;
            }
        }
        if (plantSetting.getState() && mc.world.getOtherEntities(null, new Box(pos.up()), EntityPredicates.VALID_LIVING_ENTITY).isEmpty()) {
            if (block instanceof FarmlandBlock && mc.world.isAir(pos.up())) {
                int slot = InventoryUtils.getSlot(true, i -> {
                    Item item = mc.player.getInventory().getStack(i).getItem();
                    if (plantSetting.getChild(0).asToggle().getState() && (item == Items.WHEAT_SEEDS || item == Items.CARROT || item == Items.POTATO || item == Items.BEETROOT_SEEDS)) {
                        return true;
                    }
                    return plantSetting.getChild(1).asToggle().getState() && (item == Items.PUMPKIN_SEEDS || item == Items.MELON_SEEDS);
                });
                if (slot != -1) {
                    WorldUtils.placeBlock(pos.up(), slot, 0, false, false, true);
                    return;
                }
            }
            if (block instanceof SoulSandBlock && mc.world.isAir(pos.up()) && plantSetting.getChild(2).asToggle().getState()) {
                int slot = InventoryUtils.getSlot(true, i -> mc.player.getInventory().getStack(i).getItem() == Items.NETHER_WART);
                if (slot != -1) {
                    WorldUtils.placeBlock(pos.up(), slot, 0, false, false, true);
                    return;
                }
            }
        }
        if (bonemealSetting.getState()) {
            int slot = InventoryUtils.getSlot(true, i -> mc.player.getInventory().getStack(i).getItem() == Items.BONE_MEAL);
            if (slot != -1) {
                if ((bonemealSetting.getChild(0).asToggle().getState() && block instanceof CropBlock && !((CropBlock) block).isMature(state)) || (bonemealSetting.getChild(1).asToggle().getState() && block instanceof StemBlock && state.get(StemBlock.AGE) < StemBlock.MAX_AGE) || (bonemealSetting.getChild(2).asToggle().getState() && block instanceof CocoaBlock && state.get(CocoaBlock.AGE) < 2) || (bonemealSetting.getChild(3).asToggle().getState() && block instanceof SweetBerryBushBlock && state.get(SweetBerryBushBlock.AGE) < 3) || (bonemealSetting.getChild(4).asToggle().getState() && block instanceof MushroomPlantBlock) || (bonemealSetting.getChild(5).asToggle().getState() && (block instanceof SaplingBlock || block instanceof AzaleaBlock) && canPlaceSapling(pos))) {
                    Hand hand = InventoryUtils.selectSlot(slot);
                    mc.interactionManager.interactBlock(mc.player, mc.world, hand, new BlockHitResult(Vec3d.ofCenter(pos, 1), Direction.UP, pos, false));
                    return;
                }
            }
        }
    }
}
Also used : BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe) SettingSlider(org.bleachhack.setting.module.SettingSlider) ModuleCategory(org.bleachhack.module.ModuleCategory) Item(net.minecraft.item.Item) net.minecraft.util.math(net.minecraft.util.math) BlockHitResult(net.minecraft.util.hit.BlockHitResult) InventoryUtils(org.bleachhack.util.InventoryUtils) HashMap(java.util.HashMap) Items(net.minecraft.item.Items) Module(org.bleachhack.module.Module) FluidTags(net.minecraft.tag.FluidTags) WorldUtils(org.bleachhack.util.world.WorldUtils) Pair(org.apache.commons.lang3.tuple.Pair) net.minecraft.block(net.minecraft.block) EntityPredicates(net.minecraft.predicate.entity.EntityPredicates) TreeFeature(net.minecraft.world.gen.feature.TreeFeature) Map(java.util.Map) Hand(net.minecraft.util.Hand) SettingToggle(org.bleachhack.setting.module.SettingToggle) Comparator(java.util.Comparator) EventTick(org.bleachhack.event.events.EventTick) HoeItem(net.minecraft.item.HoeItem) HoeItem(net.minecraft.item.HoeItem) Item(net.minecraft.item.Item) HoeItem(net.minecraft.item.HoeItem) BlockHitResult(net.minecraft.util.hit.BlockHitResult) Pair(org.apache.commons.lang3.tuple.Pair) Hand(net.minecraft.util.Hand) SettingToggle(org.bleachhack.setting.module.SettingToggle) BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe)

Aggregations

BlockHitResult (net.minecraft.util.hit.BlockHitResult)83 BlockPos (net.minecraft.util.math.BlockPos)45 Vec3d (net.minecraft.util.math.Vec3d)36 Direction (net.minecraft.util.math.Direction)20 Hand (net.minecraft.util.Hand)17 BlockState (net.minecraft.block.BlockState)15 HitResult (net.minecraft.util.hit.HitResult)14 RaycastContext (net.minecraft.world.RaycastContext)13 BlockEntity (net.minecraft.block.entity.BlockEntity)12 ItemStack (net.minecraft.item.ItemStack)11 PlayerInteractBlockC2SPacket (net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket)11 PlayerEntity (net.minecraft.entity.player.PlayerEntity)10 Box (net.minecraft.util.math.Box)10 PlayerMoveC2SPacket (net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket)9 BleachSubscribe (org.bleachhack.eventbus.BleachSubscribe)9 List (java.util.List)8 EventHandler (meteordevelopment.orbit.EventHandler)8 Entity (net.minecraft.entity.Entity)8 World (net.minecraft.world.World)6 ArrayList (java.util.ArrayList)5