* changed check from 256 bytes to 256 UTF-16 chars
* removed bytes check & now using a more efficient check
* reworded comment
* now we first check for bytes, then read the string, then check for UTF-16 length
* formatted code
* initial commit
* added more functions
* ported /help command to new dispatcher
* /? shows similar usage to /help instead of `-> help`
* fixed /help bugs
* change min limit in `read_boxed_slice` to 0 so that empty command (`/`) doesn't cause an error
* fixed clippy errors
* formatted
* added convenience for fetching world and server from context
* fixed `min` mistakes to `max` instead
* changed node to now store a list of predicates as its requirement (permission included)
* added easier way to register aliases
* prevent unauthorized usage of command when aliased
* added `TextComponent::empty()` to create empty text only for the purpose of adding children to it
* added more documentation
* make argument more obvious
* fixed some issues (not done yet)
* added more clarification in comments & docs
* fixed fn docs
* fixed order of arguments in translated error
---------
Signed-off-by: Alexander Medvedev <lilalexmed@proton.me>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* fix: several effects (ticking and instant)
* chore: clippy and formatting
* fix: optimize send_attribute_update calls and stored active_effects
* feat: add infested support
* feat: per-entity attributes system
* refactor: clean up living.rs and apply some fixes
* feat: attributes system, absorption, and health boost!
* chore: clippy and formatting
* chore: oof
* chore: installed typos lol
* fix: updated some default attributes
* fix: glowing and invisibility
* fix: imports and proper base_damage
* fix: remove effect damage dupe from try_attack
* fix: bat default attributes
* fix: silverfish default attributes
* fix: check local attribute base first
* Remove erroneous comment (near glowing effect removal)
forgot to remove this after copying the block from add_effect 💀
* fix: update other mob default attributes
* feat: implement boat placement
- add boat item handler for all boat/raft types
- raycast with fluid handling to place on water or blocks
- filter entities with can_hit predicate (vanilla parity)
- check space is empty before spawning
- decrement item unless creative mode
* feat: add boat entity with damage handling
- create BoatEntity struct implementing EntityBase
- implement can_hit() and is_collidable() for boats
- implement damage handling that drops boat item on destroy
- update boat item to spawn BoatEntity instead of generic Entity
* fix: boat damage wobble and attack sounds match vanilla
Boats now accumulate damage with wobble animation that decays over time.
Attack sounds play for all hittable entities, not just living entities.
* feat: add boat riding and vehicle movement packets
* feat: complete boat implementation matching vanilla
- add underwater check (60 ticks) and max 2 passengers limit
- add paddle animation metadata and handler
- implement proper land dismount with offset calculation
- add riding_cooldown field to entity
* fix: clippy warnings for boat implementation
* refactor: use loot tables for boat item drops
* fix: collapse nested if to satisfy clippy
* style: fix cargo fmt formatting for collapsible if
* fix: boat dismount places player correctly beside vehicle
- implement vanilla's dismount position calculation with
getDismountHeight, canDismountInBlock, and pose fallback
(standing → crouching → swimming)
- fix packet ordering race: use enqueue_packet for teleport so it
arrives after CSetPassengers (send_packet_now bypassed the queue)
- pre-set awaiting_teleport before CSetPassengers to block stale
movement packets during async dismount calculation
- send CSetPassengers directly to dismounting player, broadcast to
others (matching vanilla's targeted packet behavior)
- use DELTA|ROT position flags for teleport (vanilla preserves
current look direction with relative rotation)
- add riding cooldown (60 ticks) to prevent immediate re-mount
- reset sneaking state after player dismount
- fix water detection to check specifically for water/flowing_water
fluids (Fluid::from_state_id returns EMPTY for air blocks)
- revert broken loot table refactor for boat item drops (boats use
hardcoded entity-to-item mapping, not loot tables)
- add get_dismount_height helper on World matching vanilla's
BlockView.getDismountHeight()
- ignore movement packets while awaiting teleport confirmation in
handle_position and handle_position_rotation
* style: fix cargo fmt formatting
* refactor: use loot tables for boat item drops
add loot table entries to entities.json for all 20 boat/raft types
and use the existing loot table system instead of hardcoded mapping.
* fix: resolve rebase conflicts and clippy warnings
* fix: regenerate codegen to include boat loot tables
* feat: implement firework data components
* Fix: Cargo Fmt
* Fix: Update color to i32 and add color limits
* Fix: Check firework flight time is within NBT limit
* fix: cargo fmt
* fix: clippy