Commit Graph

151 Commits

Author SHA1 Message Date
Alexander Medvedev
e2ff17d6f0 feat(plugin-api): allow to register custom recipies 2026-05-16 20:56:29 +02:00
Alexander Medvedev
4e3268b140 feat: add stonecutter 2026-05-07 22:02:52 +02:00
Alexander Medvedev
5c90387b02 refactor: move block entities from pumpkin-world -> pumpkin 2026-05-07 19:35:17 +02:00
Alexander Medvedev
63d39f46d4 feat: add enchanting table 2026-05-06 22:29:29 +02:00
Alexander Medvedev
8060283970 feat: add Anvil 2026-05-01 16:30:14 +02:00
Alexander Medvedev
fdd2684432 feat: add Villager trading
currently job selection is missing
2026-05-01 14:34:05 +02:00
Alexander Medvedev
6ea869c4a0 fix: entity spawn height 2026-04-26 15:59:52 +02:00
Alexander Medvedev
7f21c3cfe2 feat(plugin-api): add some more events 2026-04-26 13:49:13 +02:00
Illyrius
2751c42bb7 docs: pumpkin-inventory (#1993)
* init

Signed-off-by: illyrius666 <28700752+illyrius666@users.noreply.github.com>

* fixed linting

Signed-off-by: illyrius666 <28700752+illyrius666@users.noreply.github.com>

* fix clippy

Signed-off-by: Illyrius <FitimQ@live.nl>

---------

Signed-off-by: illyrius666 <28700752+illyrius666@users.noreply.github.com>
Signed-off-by: Illyrius <FitimQ@live.nl>
Co-authored-by: Illyrius <FitimQ@live.nl>
2026-04-09 20:48:19 +02:00
Alexander Medvedev
8a6698cd21 fix: 26.1 attack packet 2026-04-02 20:55:03 +02:00
kedor
a11f40a403 chore: move ItemStack from pumpkin_world to pumpkin_data (#1944) 2026-03-31 10:08:41 +02:00
RB007
b1e25f0db9 feat: potion use and brewing (#1670)
* feat: potions and brewing

* fix: splash water puts out fire

* fix: saving

* fix: brew sound

* chore: fixes, formatting, and clippy
2026-03-19 17:40:09 +01:00
Rotstein
bf52dabd77 feat: add Vanilla powder snow behaviour (#1743)
* Powder snow now has vanilla behavior

* Fix rustfmt in player freeze tick update

* Fix right click armor equip slot; powder snow vanilla

* Apply rustfmt to powder snow changes

* Fix clippy warnings in powder snow changes

* Fix clippy pedantic warnings
2026-03-03 19:16:04 +01:00
AnthonyDuong1
e75e63a3de fix: double-click behavior on empty slot after placing or dragging items in chests (#1595) 2026-02-18 13:12:28 +00:00
AnthonyDuong1
854d9cebf7 fix: creative drag of items and middle click in chests (#1585)
* fix: creative drag of items and middle click in chests should match vanilla now

* fix formatting check

* readded the min function
2026-02-17 01:31:10 +00:00
FabseGP
24ea53b2e9 feat: replace log with tracing (#1460)
* feat: replace log with tracing

* chore: clippy

* fix: revert replacing println!-calls

* fix: await async construct

* fix: lints + incorrect await

* fix: each plugin spawns their own tracing-subscriber

* fix: replace info! with println for commands

* chore: remove env_logger

* fix: added TODO about structured logging
2026-02-13 21:10:13 +00:00
Purdze
6649d80ca7 feat: add furnace xp system (#1436)
* fix: award xp when taking items from furnace output slot

adds experience tracking to all furnace-like block entities (furnace,
blast furnace, smoker). experience is accumulated when items are smelted
and awarded to the player when they extract items from the output slot.

- add ExperienceContainer trait for dyn-compatible xp extraction
- add experience_held field to furnace block entities (fixed-point)
- add FurnaceOutputSlot that awards xp on item take
- add award_experience method to InventoryPlayer trait
- add to_experience_container method to BlockEntity trait

closes #1432

* fix: use recipesused nbt format for furnace xp

- add recipe_id field to CookingRecipe struct
- track recipes used instead of raw xp
- spawn xp orbs on furnace break and hopper extraction
- add get_recipe_experience function to look up xp by recipe id

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2026-02-04 18:07:13 +01:00
Alexander Medvedev
b58822319d fix: CI 2026-01-28 23:40:48 +01:00
Alexander Medvedev
fb13004b47 fix: apply clippy lints to workspace
also add contributors to /pumpkin command

Co-Authored-By: Fyor <90567841+fyordev@users.noreply.github.com>
Co-Authored-By: MartV0 <34748938+martv0@users.noreply.github.com>
Co-Authored-By: FabseGP <fabsegp@fabseman.space>
2026-01-28 00:52:47 +01:00
FabseGP
a04b7036bc chore: some cargo adjustments (#1306)
* chore: strip binaries & define rust-version in workspace

* fix: don't strip binary when profiling

* chore: clippy lints

* fix: use stable fmt

* fix: don't strip dev builds
2026-01-23 15:58:07 +01:00
Zimbobub
e4cb225df9 fix: Client desync on container close (#1295)
* Fix incorrect cliend update packet on container close

* formatting
2026-01-14 18:26:02 +01:00
Clicks
70b3132396 chore: Remove Redundant Clippy Allows (#1247)
* switch to btreemap to comply with lint

* amplifier i32 -> u8

* switch allow to expect lint

* remove many many unnecessary clippy lints

* dont use expect inside quotes
2025-12-30 12:16:31 +01:00
AyaSanae
10f19a93da feat: Implement blast furnace and smoker (#1253)
* implment blasting_furnace

* add smoker block entity

* add smoker block

* refactor furnace_block_entity using macros

* fix fmt
2025-12-30 12:10:32 +01:00
Alexander Medvedev
92fe87e921 smaller structure gen preparations 2025-12-08 20:52:03 +01:00
Alexander Medvedev
3829850607 removed some clones
fix: https://github.com/Pumpkin-MC/Pumpkin/issues/1226
2025-12-07 22:43:26 +01:00
Alexander Medvedev
70b75a0ac5 remove async-trait entirely 2025-12-04 23:50:00 +01:00
Alexander Medvedev
ae751f3a83 remove #[async_trait] from many many places
Compile time got improved by 77% (including last commit)
2025-12-04 13:57:03 +01:00
unschlagbar
e154b394af update to bedrock 1.21.111 (#1193) 2025-10-15 09:52:30 +02:00
Rafael
cc076f098d feat: Implement EnderChest (#1163)
* feat: Implement ender chest

* fix: Register block entity

* fix: Fix formatting
2025-10-10 21:54:03 +02:00
C0j23T
09f96cc705 Implement equipping armor and resolve difficulty deadlock (#1170)
* feat: implement equipping armour for players

* fix: resolve deadlock when updating world difficulty

* fix: typo && forgot to clippy

* fix: fmt
2025-09-14 09:56:08 +02:00
Alexander Medvedev
94bdae9684 feat: make totems work 2025-08-21 16:43:13 +02:00
Rafael
a2289992a1 feat: Implement ViewerCountManager for block entities (#1092)
* feat: Add simple viewer counter

* feat: More work on the viewer counter

* feat: Add barrel visuals

* fix: Sound

* feat: Implement chest screen handler

* fix: Inventory ordering

* feat: Implement chest animation

* feat: Implement shulker animation

* fix: Only send updates if the viewer count changes
2025-08-01 10:35:11 +02:00
Liyan Zhao
43534cbffd Add EquippableComponent; Handle armour items more elegantly (#1052)
* Partially revert #1008

commit a378e48a04

* feat: equippable component

* chore

* chore

* fix

* fix

* fix: slot & equip_sound

* fix: reg
2025-07-30 22:31:13 +02:00
spr-equinox
8ce65cc42d Refactor ItemStack to Support Vanilla-Like Data Components (#1059)
* improve tag v1

* improve tag v2

* fix typo and make BlockPredicate better

* improve get state from state id

* impl DataComponent

* make tag pub

* make component work

* apply clippy

* apply clippy

* remove unused crate

* apply to itemstack and no lifetime mark anymore

* Update tag.rs

* use Cow

* remove unnecessary lazy_static and Cow

* Update mod.rs

* Update mod.rs

* make DataComponent dyn

* remove unused crate

* fix error

* Update Cargo.toml

* Update Cargo.lock

* fix

* Update composter.rs

* update rust-version, remove unused crate, and merge

* Update furnace.rs
2025-07-28 12:24:40 +02:00
AyaSanae
f80650c36c Implement Furnace (#1058)
* fix: the fields of the struct CookingRecipe should be pub.

* Add furnace screen handler and slot

* Add furnace block entity

* Add furnace block

* fix bug

* add client-side sync

* fix furnace facing

* remove unused statements

* fix spelling error

* Listening for property changes and syncing them to the client-side.

* fix furnace lit state

* fix fuel should be placed at fuel slot in quick_move()

* fix spelling error

* remove unused comment

* fix: only one listener is needed.

* pumpkin-data: add recipe_remainder

* Set the bottom item as the remainder if it has one

* pumpkin-data && furnace:fix spelling error

* fix building error

* use_with_item is the same as normal_use

* fix quick_move()

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-28 10:10:17 +02:00
spr-equinox
15c9aa4ac8 Improve tags (#1057)
* improve tag v1

* improve tag v2

* fix typo and make BlockPredicate better

* improve get state from state id

* make tag pub

* Update tag.rs

* fix error

* Update hopper.rs

* Update hopper.rs
2025-07-27 21:34:18 +02:00
spr-equinox
8495a009b5 support Hopper, remove dropper todo, and support shulker box basically (#1064)
* support Hopper, remove dropper todo, and support shulker box basically

* typo

* fix dead lock

* Update hopper.rs

* Update mod.rs

* Update hopper.rs

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-27 11:40:25 +02:00
unschlagbar
2e2236bf3b Bedrock player joining (#1063)
Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>
2025-07-26 17:31:00 +02:00
Damian Lesiuk
a378e48a04 fixes "none armor items in armor slots #996" (#1008)
* fixes #996

* fmt

* code review changes

* added skulls and pumpkin as allowed helmets

* shift + left click moves items to armor slots

* shift + left click moves items to armor slots

* reformatted

* linter

* handles moving stack bigger than 1 item
2025-07-10 11:37:18 +02:00
spr-equinox
8ce27b9b65 feat: support dropper (#977)
* support dropper screen

* support drop item

* fix block_receives_redstone_power

* Update mod.rs

* Update mod.rs

* fix

* Update dropper.rs

* fix

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-07 21:01:49 +02:00
Rafael
c61572d776 feat: Implement ChiseledBookshelf (#1003)
* feat: Add basic ChiseledBookshelf block

* feat: We now know what slot the player pressed

* feat: Add block entity

* feat: Implement logic

* fix: Make clippy happy

* feat: Refactor item interact system to be more like vanilla

* feat: Add ActionResult to non item function

* fix: Some cleanup

* fix: Make rust-fmt happy

* feat: Remove useless use_with_item functions

* fix: Broken block placement

* fix: Crash

* fix: Make clippy happy

* fix: Remove unused function

* fix: Noteblocks can be placed on eachother without sneaking

* feat: Add check for creative

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-07 14:56:34 +02:00
Liyan Zhao
b31548e56a Feat: crafting system (#952)
* Added recipes.json basic deserialisation

* Basic crafting implementation

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix: add use_with_item method to CraftingTable

* chore: remove dbg!

* fix: crafting bug

* fix: avoid taking item from result slots

* fix

* fix: asymmetrical recipes

* fix: clippy

---------

Co-authored-by: Laurent Stéphenne <laurent@guibi.dev>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-06-29 23:56:32 +02:00
Alexander Medvedev
e0c91b3edc Initial Bedrock support
You can't join the World, But the base is ready
2025-06-29 00:33:44 +02:00
Liyan Zhao
d16b0f98c2 Implementation of QuickCraft, PickupAll, Clone and Throw in inventory (based on #862) (#940)
* initial test for pickupall

(cherry picked from commit a939804eff)

* added quickcraft right click and throw

(cherry picked from commit cdcbccd962)

* comments

(cherry picked from commit f23bc8fd4d)

* fix: QuickCraft handling and add drag slot support

* fix: enhance quick craft item handling in inventory

* fix

* fix clippy

* fix: drag

* fix: improve item throwing logic in screen handler

* fix: fix drag & throw

* fix: throw

* fix

* fix

* fix

* fix: PickupAll

* fix

* fix

---------

Co-authored-by: azomDev <dev@azom.ca>
2025-06-27 23:08:45 +02:00
Alexander Medvedev
8ebc9ee494 Refactor block default state 2025-06-22 21:28:14 +02:00
spr-equinox
317d9ffdca Fix deadlock when throwing items (#865) (#902)
* Fix deadlock when throwing items

try test again

* remove unnecessary async
2025-06-15 15:37:31 +02:00
spr-equinox
1eff5a4df4 Support swap item action (#855)
* Support swap item action

* improve swap item

* send changes when swap item

try to pass test again

* save slots of equipment
2025-06-13 18:35:34 +02:00
Alexander Medvedev
b5f09a26a0 Broadcast equipment on player join 2025-06-13 18:10:43 +02:00
Ancient77
7caec51e47 send SetSelectedSlot on player join (#867) 2025-06-13 16:28:10 +02:00
Alexander Medvedev
575f17948f Inline format arguments
Looks much nicer and more readable
2025-05-10 15:22:06 +02:00