Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

LiquidBounce Forum

Supporters

Community members who have proven to be competent supporters.

Private

Posts


  • WIP Windows10 Fluent Design Theme
    C commandblock2

    image.png

    feat: Int/Float(Range) slider, and color. But this theme lags as hell on potatoes

    Themes

  • WIP Windows10 Fluent Design Theme
    C commandblock2

    image.png
    feat: choose, multi choose, togglable, configurable

    Themes

  • WIP Windows10 Fluent Design Theme
    C commandblock2

    image.png

    image.png

    progress report: small update

    Themes

  • WIP Windows10 Fluent Design Theme
    C commandblock2

    xD not too much alive though, and the effect for themes seems to be more complicated than I have anticipated. Didn't know svelte before, but I guess I learnt something now.

    Edit: and oh btw, codex is really impressive for me now

    Themes

  • WIP Windows10 Fluent Design Theme
    C commandblock2

    https://streamable.com/4dofmr

    Going to add stretch effect on text and etc ..
    And going to write a click gui similar to this menu with accent settings built into the theme.

    image.png

    Themes

  • For the love of god please fix Script API mappings.
    C commandblock2

    Yarn support has been dropped because minecraft is going to release versions that are not obfuscated at all. we had a project that generates some ts definition(https://www.npmjs.com/package/@ccbluex/liquidbounce-script-api?activeTab=versions), I started it but that's not exactly very accurate because ts and Java have a slightly different OOP model, and writing script for script api doesn't feel like writing native ts, but I think I would just wait a little bit and pick it again when obfuscation has totally dropped(I am much looking forward to it).

    For a shameless self-advertising, I did have some scripts written before I got the ts generator maintained by LB maintainers, but those scripts likely won't run on current version https://github.com/commandblock2/minecraft-LBNG-types/tree/master/src , and I have yet to migrate them to our current api version.

    ScriptAPI

  • WIP Windows10 Fluent Design Theme
    C commandblock2

    now back in progress, going to vibe it with some LLM now

    Themes

  • air place
    C commandblock2

    https://github.com/CCBlueX/LiquidBounce/issues/2523

    I would that's a valid request

    but anyway here a possible version

    export function interactPlaceMidAir(pos: Vec3d) {
        const blockPos = new BlockPos(pos.x, pos.y, pos.z);
        const hitResult = new BlockHitResult(
            pos, // hit position
            Direction.UP, // side of the block hit (e.g., placing on top)
            blockPos, // block position
            false // insideBlock
        );
        // @ts-expect-error - The type definition for ClientPlayerInteractionManager.sendSequencedPacket expects a specific Packet type, but the lambda returns a generic Packet.
        mc.interactionManager.sendSequencedPacket(mc.world, (sequence: number) => {
            return new PlayerInteractBlockC2SPacket(
                Hand.MAIN_HAND,
                hitResult,
                sequence
            );
        });
    }
    

    but somehow it did place 2 block for me, not so sure about it?

    liquidsquid1 created this issue in CCBlueX/LiquidBounce

    closed [FEATURE] Basic AirPlace Implementation #2523

    Suggestions

  • [Guide] Working with Baritone API
    C commandblock2

    It's definitely doable, but you need to use the unoptimized jar to directly call this. Here is the script in ts, but you may need to adapt the imports to Java.type in js. And also for the visualization manager it's not yet available outside of my project. will release once the api is well designed and performance becomes decent and after a proper name is found for the npm package.

    import { BaritoneAPI } from "jvm-types/baritone/api/BaritoneAPI"
    import { GoalXZ } from "jvm-types/baritone/api/pathing/goals/GoalXZ"
    import { CalculationContext } from "jvm-types/baritone/pathing/movement/CalculationContext"
    import { Favoring } from "jvm-types/baritone/utils/pathing/Favoring"
    import { BetterBlockPos } from "jvm-types/baritone/api/utils/BetterBlockPos"
    import { IPath } from "jvm-types/baritone/api/pathing/calc/IPath"
    import { VisualizationManager } from "lbng-utils-typed/dist/visualization-utils"
    import { PathCalculationResult$Type } from "jvm-types/baritone/api/utils/PathCalculationResult$Type"
    
    // note: this import is not from baritone-api jar
    // it is only presented in the baritone-unoptimized jar
    // as the `AStarPathFinder` class is possibly obfuscated in the baritone-standalone jar
    // so you will have to install the baritone-unoptimized jar to use this import
    import { AStarPathFinder } from "jvm-types/baritone/pathing/calc/AStarPathFinder"
    
    
    const script = registerScript.apply({
        name: "astar-pathfinder-example",
        version: "1.0.0",
        authors: ["commandblock2"]
    });
    
    script.registerModule({
        name: "baritone-api-example",
        description: "Baritone example module",
        category: "Client",
    
    }, (mod) => {
        mod.on("enable", () => {
            BaritoneAPI.getSettings().allowSprint.value = true;
            BaritoneAPI.getSettings().primaryTimeoutMS.value = Primitives.long(2000);
            const baritone = BaritoneAPI.getProvider().getPrimaryBaritone();
            baritone.getCustomGoalProcess().setGoalAndPath(new GoalXZ(100, 100))
        })
    })
    
    script.registerModule({
        name: "astar-pathfinder-example",
        description: "Direct AStarPathFinder construction example",
        category: "Client",
        settings: {
            goalX: Setting.float({
                name: "Goal X",
                default: 100,
                range: [-10000, 10000] // Assuming a reasonable range
            }),
            goalZ: Setting.float({
                name: "Goal Z",
                default: 100,
                range: [-10000, 10000] // Assuming a reasonable range
            }),
            recalculateInterval: Setting.int({
                name: "Recalculate Interval (ticks)",
                default: 20,
                range: [1, 200]
            })
        }
    }, (mod) => {
    
        const viz = new VisualizationManager(mod);
    
        let previousPath: IPath | null = null;
    
        let lastRecalculateTick = 0;
    
        const calculatePath = () => {
            const baritone = BaritoneAPI.getProvider().getPrimaryBaritone();
    
            // Get current player position
            const playerPos = baritone.getPlayerContext().playerFeet();
            const start = new BetterBlockPos(playerPos.getX(), playerPos.getY(), playerPos.getZ());
    
            // Create calculation context for threaded use
            const context = new CalculationContext(baritone, true);
    
            // Create favoring (empty favoring for no preferences)
            const favoring = new Favoring(baritone.getPlayerContext(), previousPath as unknown as IPath, context);
    
            // Create goal using settings
            const goal = new GoalXZ(mod.settings.goalX.get() as unknown as number, mod.settings.goalZ.get() as unknown as number);
    
            // Construct AStarPathFinder directly
            const pathfinder = new AStarPathFinder(
                start,           // realStart
                start.getX(),    // startX
                start.getY(),    // startY
                start.getZ(),    // startZ
                goal,            // goal
                favoring,        // favoring
                context          // context
            );
    
            // @ts-expect-error
            UnsafeThread.run(() => {
                const result = pathfinder.calculate(Primitives.long(2000), Primitives.long(5000));
    
                // Handle result
                if (result.getType() != PathCalculationResult$Type.CANCELLATION) {
                    const path = result.getPath().get();
                    console.log("Path found! Length: " + path.length());
                    mc.execute(() => {
                        viz.addVisualization({
                            lineData: {
                                positions: path.positions().map((pos) => new Vec3d(pos.x + .5, pos.y, pos.z + .5)),
    
                            },
                            durationTicks: 20 * 60,
                        });
                        previousPath = path;
                    });
                    // Use the path as needed - you now have direct access without execution
                } else {
                    console.log("Path calculation failed: " + result.getType().toString());
                }
            });
        };
    
        mod.on("enable", () => {
            viz.clearAllVisualizations();
            lastRecalculateTick = 0; // Reset on enable
            calculatePath(); // Initial calculation
        });
    
        mod.on("gametick", () => {
            if (mc.player && mc.world && (mc.player.age - lastRecalculateTick) >= (mod.settings.recalculateInterval.get() as unknown as number)) {
                calculatePath();
                lastRecalculateTick = mc.player.age;
            }
        });
    });
    
    export { }
    

    vlcsnap-2025-08-02-23h41m20s672.png

    Scripts

  • [Guide] Working with Baritone API
    C commandblock2

    it probably does have a AStarPathFinder just for this, but it's gonna be tested if this is really going to work.

    image.png

    Scripts

Member List

P pOwOke
C commandblock2
  • Login

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups