* make entity world RwLock
* Add teleport function
* Mark client as not loaded before change dim
* clippy
* Post-merge issues
* FIx post merge issues
* Make world.remove_player fire event conditionally
* Remove extra StartWaitingChunks packet
* Add world.send_world_info()
* Add weather and weather command
I still need to add duration, fading and sounds
* F*ck bedrock
* Add weather cycle, fading, and duration
* Revert "Merge remote-tracking branch 'upstream/master' into weather"
This reverts commit c009fdfad3, reversing
changes made to ddeda07272.
* Reapply "Merge remote-tracking branch 'upstream/master' into weather"
This reverts commit 70a0e9861d.
* Update time.rs to use time arg
* Initial experience support
For some reason I am getting link errors
* Implement experience math
* Fix packet and format/clippy
* Fix translate strings
* Fix experience handling
* Clippy & Format
* Fix experience calculations
* Fix how we store experience.
Math WIP
* Redo all experience calculations
This should be 100% vanilla parity.
* Updated show_entity
Changed a little bit the show_entity function from HoverEvents to better usability
* Added to_string to EntityType
Added to_str and to_string functions to allow proper use of identifiers in the show_entity of a TextComponent.
* Clear texts parity
Added translations to clear command, also added to show the player which items are cleaned, and tell something to the user like vanilla.
* Pumpkin command format
Formatted the pumpkin command to show better the text.
* Kill texts parity
Added translations to kill command, also added to show the player who is killed, and tell something to that user like vanilla. Also changed the color to white like vanilla.
* Added translate key of item
Added a function to item_registry which returns the appropriate TextComponent::translate for a item
* Give texts parity
Added translations to give command item, also added to show the player who receive the item, and tell something to that user like vanilla.
* CLIPPY MY LORD
* Reverted entity_type changes
I had not thought that I could use debug to get the name of the type, my mistake
* Added send_message to Player
Added the function send_message to allow sending DisgusedChatMessages directly to a specific player.
* Added msg command
Added msg (tell) command to match with the applied parity changes.
* Bossbar texts parity
Added translations and parity props for Bossbar command texts, without changing their behavior.
- Fix TextComponentArgConsumer
- Rename with_child to then
- Rename ProtoCmdArgParser to ArgumentType
- Add title command, Mostly complete only "times" sub command is missing
* Add pumpkin-api crate for API definitions
* Add proc-macro definitions for pumpkin-api
* Add pumpkin-api and pumpkin-api-macros to workspace
* Add basic PluginManager implementation plugin loading
* Update .gitignore to include specific plugin file types
* Add example plugin
* Cargo fmt
* Fix clippy issues
* Refactoring to prevent a circular import
* Add base impl for plugin hooks
* Move plugin manager to server
* Make metadata have static lifetime
* Add default implementations to events
* Add hooks to proc macro
* Update example
* Fix formatting
* Fix clippy warnings
* Load metadata from Cargo.toml
* Mark plugins as an implemented feature :D
* Implement new event handling
* Create a static global reference to the plugin manager
* Emit player join and leave events
* Update macro generation
* Update example
* Fix formatting
* Fix clippy issue
* Simplify event handling
* Add plugin command to list plugins
* Make handlers async
* Update macros
* Update example
* Fix formatting and clippy issues
* Better styling on plugins command
* Fix clippy issues
* Cargo fmt
* Disable doctest for lib target on pumpkin crate
* New API for plugins
* Update api macros
* Update plugin example
* A bit of clean up
* Some QoL (and performance) improvements
* Cargo fmt and clippy fixes
* refactoring, better event handling, new context functions
* Async on_load and on_unload
* Fix mutex lock never going out of scope
* Async plugin loading
* Add plugin management command
* Fix clippy issues
* Fix import issues
* Move TcpConnection out of client
* Move packet encoding out of client
* Allow plugins to register commands
* Fix fmt and clippy
* Implement plugin list in query
* Make arguments public so that plugins can use them
* Update proc_macros to handle runtime
* Make tree_builder public for use in plugins
* Make FindArg trait public for use in plugins
* Update example plugin
* Fix merge related issues
* Fix cargo fmt
* Post-merge fixes (also 69th commit, nice)
* New event system
* cargo fmt
* Impl block break event
* cargo fmt and clippy
* Reduced plugin size
* Reduce dependency count
* Old code cleanup
* cargo fmt
* Add event priority and blocking options to event registration and handling
* Refactor event handling to support blocking execution and improve event registration
* Fix post-merge errors
* Update example plugin
* increase mpsc channel capacity and handle write errors gracefully
* Use Arc<Player> instead of &Player
* add missing import
* Update example plugin with playing sounds
* Remove example plugin
* Create plugins dir if doesnt exist
* Remove unused vars
* Remove unnecessary clones
* Fix impl
* cargo fmt
* Make server pub in context
* Starting work on Operator permission system
This commit adds the ops.json configuration found in vanilla
servers, and updates the basic configuration to handle the default
permission level.
Server now uses ops file and defaults players to op level 0
The /op command has been added but needs players to rejoin for now.
* Clippy Fix + need to Rejoin after /op removed
I found the source of the DeadLock. Updated set permission function.
Fix cargo formatting issues and clippy issues.
* Remove temp warn message
* Move OperatorConfig to server
As Snowiii pointed out, OperatorConfig is runtime data.
Revert most changes in pumpkin-config.
op_permission_level must say in the basic configuration for
parity with Minecraft.
* cargo fmt + cargo clippy
* Sync permission change with client
* Fixs issues @Commandcracker found in review
- Move PermissionLvl to core and removed OpLevel
- Move ops.json to /data/ops.json
- Fix permissions issue with /op command
- Shorten /op command description
* refactor into `data` folder
* create data dir when needed
* add to readme
* fix: conflicts
---------
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
* Added lighting
* Fixed clippy warnings
* Fixed import position
* Moved world ticks to world
* Fixed clippy
* Use format macro
* Fixed fmt
* Implemented add, query, set
* Added first rough implementation of the bossbar
* Added basic structure for implementing the storing and command
* Added all commands. And started handling value and max
* fix errors
* Update player.rs
Fixed merging issue
* Finishing serialization
* Finalize command
* Fix clippy and fmt
* Format
* Fixed ultra stupid bug
* Fix clippy
* add pumpkin error handling for commands
* cleanup clear command
* fix so that all Container implementations follow the same order as the trait
* cleanup give command
* remove unnecessary function
* remove unnecessary function
* fix give command
* fix clear command
* fixup item placement logic
* cleanup clear command a little
* add cleaner registry parsing
* start adding recipes
* add tags, and some crafting things
* Fix echest command
* add partly working crafting interface
* add generated assets
* fix container commands and clippy lints
* fix issues with resolving recursive item tags for crafting
* add flatten3x3 function
* add shapeless crafting
* add tests to and fix recipe flattening function
* refactor recipe system a bit
* add rayon to speed up initial loading of recipes
* almost working after rebase
* add deserialization for new crafting type "transmute"
* make crafting work again
* make shapeless recipes not require all permutations
* fixed visual bug with when taking out ingredients for crafting
* add support for new tags system