* fix: nether portal crash
* fix: hardcoded stage max and updated self-dependency path
* refactor: use ensure_dependency_chain and add tests
* chore: a few recommended changes
* fix: DAG issues and clippy
* chore: improve test coverage
* 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
the translations array was sized as Locale::last() (127) but needed
128 elements, causing out-of-bounds access for the last locale variant.
also added bounds check in reorder_substitutions to prevent panic when
% appears near the end of a translation string.
closes#1709
* Add PlayerFishEvent
(cherry picked from commit 95323796e7)
* chore: sync fish branch with master and fix clippy
* refactor(event): remove duplicated module prefix in event file names
* style: apply rustfmt
* feat(event): fire PlayerFishEvent on fishing rod use
* refactor(event): split handle_use_item helper flow for clippy
* refactor(event): use enums in PlayerFishEvent
* Avoid duplicate BlockBreakEvent and honor drop flag
(cherry picked from commit 2431d4a9c5)
* chore: sync blockbreak-duplicate branch with master and fix clippy
* fix(event): skip block break event for air blocks
* refactor: parse placed and configured features at compile time
* fix: remove serde_json from pumpkin-world
* fix: lib.rs imports
* 🥀
* refactor: stripped serde from features and moved generated code to pumpkin-data
* Remove: include_json_static
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* Fix block-break flickering
Move CAcknowledgeBlockChange sending out of immediate per-player send into the world flush path so acknowledgements are enqueued and sent during world flush. world/mod.rs now iterates players to swap and enqueue CAcknowledgeBlockChange for any pending sequence. Also call update_sequence(...) in Java play handlers to update the player's packet sequence when handling player actions.
* thats better
* fix: typo
* Update play.rs
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* added StringReader and its errors
* fixed clippy errors in tests
* removed unnecessary '_ from &
* removed unnecessary `Box`
* added argument types, string range and suggestions
* removed Simple and Dynamic error types in favor of one struct and changed size of `TextComponent`
* formatted with `cargo fmt`
* fixed spelling error
* removed unnecessary (default) leftover from experimentation
* added tests and adjusted for arg type changes
* fixed some spellings in doc comments
* added some node-related structs
* initial commit
* no compile-time errors now
* removed code with compile-time testing
* formatted code
* fixed some clippy warnings
* fixed the remaining clippy warnings
* added some tests, refactored due to test results
* forget to remove fork, using redirect instead, formatted code
* fixed clippy warnings
* added some tests
* added some more tests & sorting `Suggestion`s
* using new pumpkin_data::translation for translation keys
* formatted
* removing misleading panic message
* added check for adding command node type
* added more documentation
* added permission requirement support for any node
* removed remnants of freeing nodes in tree for now, as it has risks with redirection
* removing doc comment that was true earlier while experimentation
* fixed doctest error
* relaxed Clone restriction on `Item` in `ArgumentType` and made `get_argument` return a reference instead of cloning
* fix doctest