Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jul 11, 2025

This PR contains the following updates:

Package Change Age Confidence
net.minestom:minestom 2025.07.08-1.21.5 -> 2025.07.10-1.21.7 age confidence

Release Notes

minestom/minestom (net.minestom:minestom)

v2025.07.10-1.21.7

Compare Source

Minestom 1.21.7

The 1.21.7 (including 1.21.6) branch has now been merged, thanks to all who tested and contributed to it!

Dialogs

Dialogs in Minestom are represented by a series of records starting from one of the Dialog subclasses (looking at the required values should help to figure out how to construct them).

For example, here is the Dialog used for the Game Jam voting.

new ShowDialogPacket(new Dialog.Notice(
        new DialogMetadata(
                Component.text("Game Jam Scoring"),
                null,
                false,
                false,
                DialogAfterAction.CLOSE,
                List.of(new DialogBody.Item(
                        ItemStack.of(Material.PAPER),
                        new DialogBody.PlainMessage(Component.text("Rate this game jam entry on each category from 1-5"), 400),
                        true, true, 40, 10
                )),
                List.of(
                        new DialogInput.NumberRange("technical", 200, Component.text("Technical"), "options.generic_value", 1, 5, 3f, 1f),
                        new DialogInput.NumberRange("theme", 200, Component.text("Theme"), "options.generic_value", 1, 5, 3f, 1f),
                        new DialogInput.NumberRange("fun", 200, Component.text("Fun"), "options.generic_value", 1, 5, 3f, 1f),
                        new DialogInput.NumberRange("originality", 200, Component.text("Originality"), "options.generic_value", 1, 5, 3f, 1f),
                        new DialogInput.NumberRange("visuals", 200, Component.text("Visuals"), "options.generic_value", 1, 5, 3f, 1f)
                )
        ),
        new DialogActionButton(
                Component.text("Submit Scores"),
                Component.text("§7Click to submit your scoring."),
                100,
                new DialogAction.DynamicCustom(Key.key("gamejam.submit_scores"), CompoundBinaryTag.builder().build())
        )
));

To receive values you must use the DynamicCustom dialog action (or dynamic command if you want to run a command directly). Using DialogAction.Custom will not include the templated values. When a player performs the relevant action, a PlayerCustomClickEvent (or PlayerConfigCustomClickEvent if this happens in the configuration phase) will be emitted. For example:

globalEventHandler.addListener(PlayerCustomClickEvent.class, (event) -> {
    if (event.getKey().equals(Key.key("gamejam.submit_scores"))) {
        System.out.println("Game jam scores submitted by: " + event.getPlayer().getUsername());
        System.out.println("Payload: " + event.getPayload());
    }
});

Waypoints

Player locator bar waypoints are only exposed through the update waypoint packet (though I believe this API is sufficient). For example, to add a waypoint:

Player player = ...;
UUID theWaypointUuid = UUID.randomUUID();
Point somePosition = new Vec(50, 40, 50);

player.sendPacket(new TrackedWaypointPacket(TrackedWaypointPacket.Operation.TRACK, new TrackedWaypointPacket.Waypoint(
        Either.left(theWaypointUuid),
        TrackedWaypointPacket.Icon.DEFAULT,
        new TrackedWaypointPacket.Target.Vec3i(somePosition)
)));

If adventure supports waypoints we will implement that API. If not, its possible we will add an API to manage waypoints separately, not sure yet.

Misc Changes

  • The server list ping ResponseData has been replaced by an immutable builder (Status).
  • Many uses of wall-clock milliseconds have been replaced with nano seconds (via System.nanoTime() to mitigate clock sync differences).
  • Painting and item frame orientation is now set via the direction metadata property. Paintings may not have an UP or DOWN direction.
  • Adventure GsonComponentSerializer usages have been replaced with our Codec.COMPONENT, you are suggested to use this instead as well for better support.
  • TagStringIOExt has been removed as adventure now has native support for those operations. Adventure does not default to supporting heterogeneous lists in SNBT. MinestomAdventure.tagStringIO() exposes an instance with heterogeneous lists enabled.

Misc Future Tasks

  • Receiving transfers and correctly processing entity passenger/vehicle offsets remain as TODO items from 1.20.6.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the renovate Label for the Renovate bot label Jul 11, 2025
@renovate renovate bot merged commit 22d69c5 into master Jul 11, 2025
3 checks passed
@renovate renovate bot deleted the renovate/minestom branch July 11, 2025 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

renovate Label for the Renovate bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant