mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
5.1 KiB
5.1 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog. Due to the complexity of Azalea and the fact that almost every Minecraft version is breaking anyways, semantic versioning is not followed.
[Unreleased]
Added
- This changelog. To see changes before this update, look at the git commits.
- azalea and azalea-client now have a
packet-event
feature, which can be disabled for efficiency if you're not usingEvent::Packet
. StartJoinServerEvent
can now be used to join servers exclusively from the ECS without a Tokio runtime.- Add
FormattedText::to_html
andFormattedText::to_custom_format
. (@Kumpelinus) - Non-standard legacy hex colors like
§#ff0000
are now supported in azalea-chat. - Chat signing.
- Add auto-reconnecting which is enabled by default.
ClientBuilder
andSwarmBuilder
are now Send.- Add
Client::start_use_item
. - The pathfinder no longer avoids slabs, stairs, and dirt path blocks.
- The pathfinder now immediately recalculates if blocks are placed in its path.
- Bots that use custom pathfinder moves can now keep arbitrary persistent state by using the
CustomPathfinderState
component andPathfinderCtx::custom_state
. - The reach distance for the pathfinder
ReachBlockPosGoal
is now configurable. (@x-osc) - There is now a
retry_on_no_path
option inGotoEvent
that can be set to false to make the pathfinder give up if no path could be found. - azalea-brigadier now supports suggestions, command contexts, result consumers, and returning errors with
ArgumentBuilder::executes_result
. - Proper support for getting biomes at coordinates.
- Add a new
Client::entities_by
which sorts entities that match a criteria by their distance to the client. - New client event
Event::ReceiveChunk
. - Several new functions for interacting with inventories (
Client::get_inventory
,get_held_item
,ContainerHandleRef::left_click
,shift_click
,right_click
,slots
). - Add
Client::mine_with_auto_tool
. - Add
Client::set_selected_hotbar_slot
andClient::selected_hotbar_slot
. - Add
Client::attack_cooldown_remaining_ticks
to complementhas_attack_cooldown
. - Add
BlockPos::length
,distance_to
, andcenter_bottom
.
Changed
Client::goto
is now async and completes when the client reaches its destination.Client::start_goto
should be used if the old behavior is desired.- The
BlockState::id
field is now private, use.id()
instead. - Update to Bevy 0.16.
- Rename
InstanceContainer::insert
toget_or_insert
. - Replace
BlockInteractEvent
with the more general-purposeStartUseItemEvent
. - Replace
wait_one_tick
andwait_one_update
withwait_ticks
andwait_updates
. - Functions that took
&Vec3
or&BlockPos
as arguments now only take them as owned types. - Rename
azalea_block::Block
toBlockTrait
to disambiguate withazalea_registry::Block
. GotoEvent
is now non-enhaustive, it should be constructed by calling its methods now.
Fixed
- Clients now validate incoming packets using the correct
MAXIMUM_UNCOMPRESSED_LENGTH
value. - Several protocol fixes, including for
ClientboundSetPlayerTeam
and a few data components. - No more chunk errors when the client joins another world with the same name but different height.
- Update the
InstanceName
component correctly when we receive a respawn or second login packet. - azalea-chat now handles legacy color codes correctly when parsing from NBT.
- Send the correct UUID to servers in
ClientboundHello
when we're joining in offline-mode. - Block shapes and some properties were using data from
1.20.3-pre4
due to using an old data generator (Pixlyzer), which has now been replaced with the data generator from Pumpkin. - When patching the path, don't replace the move we're currently executing.
- The correct sequence number is now sent when interacting with blocks.
- Mining is now generally more reliable and doesn't flag Grim.
- Ghost blocks are now handled correctly due to implementing
ClientboundBlockChangedAck
. - Player eye height was wrong due to being calculated from height instead of being a special case (was 1.53, should've been 1.62).
- The player inventory is now correctly updated when we close a container.
- Inventory interactions are now predicted on the client-side again, and the remaining click operations were implemented.
Client::open_container_at
now waits up to 10 ticks for the block to exist if you try to click air.- Wrong physics collision code resulted in
HitResult
sometimes containing the wrong coordinates andinside
value. - Fix the client being unresponsive for a few seconds after joining due to not sending
ServerboundPlayerLoaded
. - Fix panic when a client received
ClientboundAddEntity
andClientboundStartConfiguration
at the same time. - Fix panic due to
ClientInformation
being inserted too late. ClientboundTeleportEntity
did not handle relative teleports correctly.- Pathfinder now gets stuck in water less by automatically trying to jump if it's in water.