diff options
| -rw-r--r-- | CHANGELOG.md | 187 |
1 files changed, 99 insertions, 88 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 88b6b056..8886e956 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,108 +10,119 @@ is breaking anyways, semantic versioning is not followed. ### Added -- Sneaking/crouching. -- `HitResult` now contains the entity that's being looked at. -- A `QueuedServerBlockUpdates` component that keeps track of block updates per `Update`. -- Local clients now have a `TicksConnected` component. (@Kumpelinus) -- There is now a `azalea_inventory::default_components::get_default_component` function to get the default value of a component for a registry item. -- `ItemStack` now has a `get_component` function that supports default components. -- `Client::nearest_entity_by`. -- `BitSet::len`, `BitSet::get`, `BitSet::iter_ones`. -- All packets are now `PartialEq`. +- Sneaking/crouching. +- `HitResult` now contains the entity that's being looked at. +- A `QueuedServerBlockUpdates` component that keeps track of block updates per `Update`. +- Local clients now have a `TicksConnected` component. (@Kumpelinus) +- There is now a `azalea_inventory::default_components::get_default_component` function to get the default value of a component for a registry item. +- `ItemStack` now has a `get_component` function that supports default components. +- `Client::nearest_entity_by`. +- Blocks now have functions for getting property keys and values as strings. (@urisinger) +- `BitSet::len`, `BitSet::get`, `BitSet::iter_ones`. +- All packets are now `PartialEq`. +- The `fallback` field was implemented for chat messages. (@Tert0) +- Interactive auth now appends `?otc={code}` to the login URL to skip having to manually paste the auth code. ### Changed -- Update to Minecraft 1.21.8. -- Renamed `azalea_entity::EntityKind` to `EntityKindComponent` to disambiguate with `azalea_registry::EntityKind`. -- Moved functions and types related to hit results from `azalea::interact` to `azalea::interact::pick`. -- `Client::attack` now takes `Entity` instead of `MinecraftEntityId`. -- `ItemStackData::components` was renamed to `component_patch`. -- The fields in `LookDirection` have been replaced with getters. -- Renamed `Client::entity_by` to `any_entity_by`, and `Client::entities_by` to `nearest_entities_by`. -- `EyeHeight` was moved into `EntityDimensions`, and `EntityDimensions` is now its own component. -- Replaced `start_goto_without_mining` with `start_goto_with_opts`. -- Rename `send_chat_packet` / `send_command_packet` to `write_chat_packet` / `write_command_packet` (for consistency with `write_packet`). -- Split `ClientInformation` handling out of `BrandPlugin` to `ClientInformationPlugin`. -- `ClientBuilder::start` and `SwarmBuilder::start` now return a `Result<AppExit>` instead of `Result<!>`. -- `ClientsideCloseContainerEvent`, `MenuOpenedEvent`, and `CloseContainerEvent` are now triggers instead of events. +- Update to Minecraft 1.21.8. +- Renamed `azalea_entity::EntityKind` to `EntityKindComponent` to disambiguate with `azalea_registry::EntityKind`. +- Moved functions and types related to hit results from `azalea::interact` to `azalea::interact::pick`. +- `Client::attack` now takes `Entity` instead of `MinecraftEntityId`. +- `ItemStackData::components` was renamed to `component_patch`. +- The fields in `LookDirection` have been replaced with getters. +- Renamed `Client::entity_by` to `any_entity_by`, and `Client::entities_by` to `nearest_entities_by`. +- `EyeHeight` was moved into `EntityDimensions`, and `EntityDimensions` is now its own component. +- Replaced `start_goto_without_mining` with `start_goto_with_opts`. +- Rename `send_chat_packet` / `send_command_packet` to `write_chat_packet` / `write_command_packet` (for consistency with `write_packet`). +- Split `ClientInformation` handling out of `BrandPlugin` to `ClientInformationPlugin`. +- `ClientBuilder::start` and `SwarmBuilder::start` now return a `Result<AppExit>` instead of `Result<!>`. +- `ClientsideCloseContainerEvent`, `MenuOpenedEvent`, and `CloseContainerEvent` are now triggers instead of events. +- `Client::chat` now takes anything with `impl Into<String>`. ### Fixed -- Fix packet order for loading (`PlayerLoaded`/`MovePlayerPos`) and sprinting (`PlayerInput`/`PlayerCommand`). -- Clients no longer send invalid look directions if the server teleports us with one. -- Look directions are now rounded based on the default Minecraft sensitivity, which may help avoid flagging anticheats. -- Movement code was updated with the changes from 1.21.5, so it no longer flags Grim. -- Clients can no longer sprint if their food level is too low. -- `azalea-chat` now handles arrays of integers in the `with` field. (@qwqawawow) -- `azalea-chat` no longer incorrectly persists styles of components in the "extra" field. -- Inventories now use the correct max stack sizes. -- Clients now send the correct data component checksums when interacting with items. -- Fix parsing some metadata fields of Display entities. -- Mining blocks in creative mode now works. (@qwqawawow) -- Improved matchers on the `ChatPacket` functions to work on more servers. (@ShayBox) -- Bevy's `AppExit` Event is now handled by Azalea's ECS runner. +- Fix packet order for loading (`PlayerLoaded`/`MovePlayerPos`), sprinting (`PlayerInput`/`PlayerCommand`), and `CarriedItem`. +- Clients no longer send invalid look directions if the server teleports us with one. +- Look directions are now rounded based on the default Minecraft sensitivity, which may help avoid flagging anticheats. +- Movement code was updated with the changes from 1.21.5, so it no longer flags Grim. +- Clients can no longer sprint if their food level is too low. +- `azalea-chat` now handles arrays of integers in the `with` field. (@qwqawawow) +- `azalea-chat` no longer incorrectly persists styles of components in the "extra" field. +- `dark_red` was way too dark red. +- Inventories now use the correct max stack sizes. +- Clients now send the correct data component checksums when interacting with items. +- Fix parsing some metadata fields of Display entities. +- Mining blocks in creative mode now works. (@qwqawawow) +- Improved matchers on the `ChatPacket` functions to work on more servers. (@ShayBox) +- Bevy's `AppExit` Event is now handled by Azalea's ECS runner. +- Pathfinding now works over farmland blocks. +- `HitResultComponent` no longer treats non-pickable entities like dropped items as pickable. +- Refreshing the account token no longer results in a panic. +- Fix `::is_valid_id` on registries incorrectly returning true for values equal to the length. +- Fix outdated implementation for the `ClientboundMerchantOffers` packet. +- Fix compilation with new dependency versions. (@ShayBox) ## [0.13.0+mc1.21.5] - 2025-06-15 ### 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 using `Event::Packet`. -- `StartJoinServerEvent` can now be used to join servers exclusively from the ECS without a Tokio runtime. -- Add `FormattedText::to_html` and `FormattedText::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` and `SwarmBuilder` 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 and `PathfinderCtx::custom_state`. -- The reach distance for the pathfinder `ReachBlockPosGoal` is now configurable. (@x-osc) -- There is now a `retry_on_no_path` option in `GotoEvent` 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` and `Client::selected_hotbar_slot`. -- Add `Client::attack_cooldown_remaining_ticks` to complement `has_attack_cooldown`. -- Add `BlockPos::length`, `distance_to`, and `center_bottom`. +- 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 using `Event::Packet`. +- `StartJoinServerEvent` can now be used to join servers exclusively from the ECS without a Tokio runtime. +- Add `FormattedText::to_html` and `FormattedText::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` and `SwarmBuilder` 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 and `PathfinderCtx::custom_state`. +- The reach distance for the pathfinder `ReachBlockPosGoal` is now configurable. (@x-osc) +- There is now a `retry_on_no_path` option in `GotoEvent` 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` and `Client::selected_hotbar_slot`. +- Add `Client::attack_cooldown_remaining_ticks` to complement `has_attack_cooldown`. +- Add `BlockPos::length`, `distance_to`, and `center_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](https://bevyengine.org/news/bevy-0-16/). -- Rename `InstanceContainer::insert` to `get_or_insert`. -- Replace `BlockInteractEvent` with the more general-purpose `StartUseItemEvent`. -- Replace `wait_one_tick` and `wait_one_update` with `wait_ticks` and `wait_updates`. -- Functions that took `&Vec3` or `&BlockPos` as arguments now only take them as owned types. -- Rename `azalea_block::Block` to `BlockTrait` to disambiguate with `azalea_registry::Block`. -- `GotoEvent` is now non-enhaustive and should instead be constructed by calling its methods. +- `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](https://bevyengine.org/news/bevy-0-16/). +- Rename `InstanceContainer::insert` to `get_or_insert`. +- Replace `BlockInteractEvent` with the more general-purpose `StartUseItemEvent`. +- Replace `wait_one_tick` and `wait_one_update` with `wait_ticks` and `wait_updates`. +- Functions that took `&Vec3` or `&BlockPos` as arguments now only take them as owned types. +- Rename `azalea_block::Block` to `BlockTrait` to disambiguate with `azalea_registry::Block`. +- `GotoEvent` is now non-enhaustive and should instead be constructed by calling its methods. ### 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](https://github.com/Pumpkin-MC/Extractor). -- 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 and `inside` value. -- Fix the client being unresponsive for a few seconds after joining due to not sending `ServerboundPlayerLoaded`. -- Fix panic when a client received `ClientboundAddEntity` and `ClientboundStartConfiguration` 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. +- 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](https://github.com/Pumpkin-MC/Extractor). +- 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 and `inside` value. +- Fix the client being unresponsive for a few seconds after joining due to not sending `ServerboundPlayerLoaded`. +- Fix panic when a client received `ClientboundAddEntity` and `ClientboundStartConfiguration` 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. |
