Commit Graph

2620 Commits

Author SHA1 Message Date
Alexander Medvedev
7eb49e2e4d feat(bedrock): add CMobEquipment 2026-08-11 18:40:48 +02:00
xRookieFight
432f092b0f fix(block): notify neighbors when a block is removed by a neighbor update (#2839) 2026-08-11 15:55:15 +02:00
ZlordHUN
832671f329 fix: stop bedrock players from swimming in air (#2584)
* Fix clippy errors

* Fix Bedrock air swimming

* Fix clippy errors
2026-08-11 15:51:45 +02:00
Cayden Tisdale
bbbbf940fd fix(block): use random ticks for redstone ore (#2878) 2026-08-11 14:41:56 +02:00
Alexander Medvedev
3792a6ce0b fix(bedrock): make nether/end work 2026-08-11 12:37:08 +02:00
ZlordHUN
4250293f42 fix: Bedrock NetherNet ICE connectivity (#2824)
* Fix Bedrock NetherNet ICE connectivity

* Fix NetherNet LAN connections

* Fix NetherNet ICE connectivity

* Fix duplicate Bedrock LAN advertisement

* Add NetherNet ICE diagnostics

* Trace outgoing NetherNet ICE packets

* Expand NetherNet connection diagnostics

* Fix clippy after rebase

* Fix oversized NetherNet login messages

* Remove direct async-trait dependency

---------

Co-authored-by: Zoltán Virágh <zoltan.viragh@cloudtalk.io>
2026-08-10 23:00:54 +02:00
Alexander Medvedev
cda8f194ab feat(ci): add nix CI 2026-08-10 22:17:53 +02:00
xRookieFight
2ffe470e2e test: cover inlined hover event NBT payload (#2852) 2026-08-10 18:25:57 +02:00
Alexander Medvedev
1ee7be3f8c chore: add pumpkin_macros::translate_cross! macro
validates translations at compile time, also update bedrock translations to latest 26.40.5
2026-08-10 18:11:00 +02:00
xRookieFight
366c9cb323 fix: accept namespaced entity types in selectors (#2819) 2026-08-10 15:22:19 +02:00
Demetrius Kanios
cbb12b2200 feat(plugin-api): Initial inter-plugin communication (#2788)
* feat(plugin-api): Initial inter-plugin communication

* Update wit submodule commit ref

---------

Co-authored-by: Jakub Palacky <kubik.palacky@gmail.com>
2026-08-10 14:39:01 +02:00
Alexander Medvedev
b17096d96b chore(bedrock): send chat messages with xuid
now you can mute people etc in bedrock
2026-08-10 14:32:11 +02:00
Indrajeeth
2122f2effb feat(plugin-api): block resolution + block entity NBT host functions (#2403)
* feat(plugin-api): add resolve-block-state and set-block-entity-nbt

* feat(plugin-api): implement get-block-entity-nbt

Serializes block entity at position to raw NBT bytes via
write_internal(). Returns None if no block entity exists.

* feat(plugin-api): implement block-state-to-info

---------

Co-authored-by: Jakub Palacky <kubik.palacky@gmail.com>
2026-08-10 13:01:01 +02:00
ZlordHUN
bf48492121 feat: add chest, furnace, hopper, and TNT minecarts (#2376)
* feat(world): support generated loot minecarts

* Minecart Vanila Parity

* Rebased And Added Furnace, Hopper, TNT Minecarts

* Refactor minecart variants into dedicated modules

---------

Co-authored-by: Zoltán Virágh <zoltan.viragh@cloudtalk.io>
2026-08-10 12:36:02 +02:00
Noël Hagestein
fcb26179d3 Add ServerListPingEvent (#2736)
* feat(events): add ServerListPingEvent

* Update pumpkin-plugin-wit to 50962bf
2026-08-10 11:32:02 +02:00
xRookieFight
604d597709 fix: grant fishy business only when fishing (#2817) 2026-08-10 09:25:00 +02:00
xRookieFight
734f79e469 fix: don't deadlock when equipping an item from the hand (#2857) 2026-08-10 09:19:32 +02:00
ZlordHUN
83083d121a fix(bedrock): block breaking and item crafting (#2859)
* Fix Bedrock block breaking and crafting

* Fix Bedrock workbench synchronization
2026-08-10 09:18:39 +02:00
Alexander Medvedev
5bc8077848 feat: impl some Sculk blocks 2026-08-09 22:41:09 +02:00
Alexander Medvedev
6720ac265e feat: add more items 2026-08-09 21:36:03 +02:00
Alexander Medvedev
b18c26ccb4 fix: SEmote packet 2026-08-09 18:48:59 +02:00
Alexander Medvedev
92658f5853 feat(bedrock): death animation 2026-08-09 17:29:54 +02:00
Alexander Medvedev
33e11088b2 fix: https://github.com/Pumpkin-MC/Pumpkin/issues/481 2026-08-09 17:06:40 +02:00
xRookieFight
d61f8c931f fix: don't block the async runtime when reading inventories (#2851) 2026-08-09 16:36:02 +02:00
Eshan I.
c75b89fd89 fix(item): require a non-empty charged list to fire a crossbow (#2805)
Item::CROSSBOW ships a ChargedProjectiles component by default, carrying an empty
projectile list (crates/pumpkin-data/src/generated/item.rs, the CROSSBOW components
table). normal_use tested only for the presence of that component, which is therefore
true for every crossbow including a freshly crafted one.

The result is that the first right-click on an uncharged crossbow takes the fire branch,
fire_projectiles iterates an empty list and does nothing, and charging never starts, so
the crossbow cannot be used at all until something else happens to write a non-empty
patch.

Vanilla gates on the list being present AND non-empty:

    ChargedProjectiles chargedProjectiles = itemStack.get(DataComponents.CHARGED_PROJECTILES);
    if (chargedProjectiles != null && !chargedProjectiles.isEmpty()) {

(CrossbowItem.java:67-68, 26.2.) Matching that here restores the charge-then-fire cycle.

Test plan:
- cargo fmt --all
- RUSTFLAGS="-D warnings" cargo clippy -p pumpkin --all-targets
2026-08-09 15:59:09 +02:00
xRookieFight
dedce1ce45 fix: adapt bow attack goal to new equipment API (#2850) 2026-08-09 15:39:12 +02:00
xRookieFight
bb5f05573e fix: minecarts fall when off rails (#2796) 2026-08-09 15:12:30 +02:00
xRookieFight
e68cef7505 fix: make skeletons shoot arrows with their bow (#2818) 2026-08-09 15:11:36 +02:00
ZlordHUN
ee984ea555 fix: Bedrock NetherNet offline mode (#2821) 2026-08-09 15:09:37 +02:00
xRookieFight
8f969c7681 fix: sync enchanted item to client (#2816) 2026-08-09 15:02:14 +02:00
xRookieFight
bb9e71a951 fix(item): keep eyes of ender in creative mode (#2841) 2026-08-09 12:04:50 +02:00
Bjorn Beishline
ff57b6e282 feat(chunk): improve chunk generation speed ~1.27x (#2847)
* feat(noise): Add benchmark for noise generation

* feat(noise): fix extra noise libm calls

* feat(noise): cache density fill

* feat(aquifer): add skip sampling for aquifer
2026-08-09 12:04:28 +02:00
Alexander Medvedev
3150bd13de chore: add CODEOWNERS 2026-08-09 11:58:59 +02:00
ZlordHUN
8ea6fe9f9b feat: Add Ocean Monument Structure Generation (#2737)
* feat: Implement ocean monument structures

* Fix monuments being cut in half

* Fix structure generation height handling
2026-08-09 11:38:49 +02:00
ZlordHUN
00b921c020 fix: bedrock and java players disconnecting when joining the same server (#2844)
* WIP: improve Bedrock player skin compatibility

* Fix cross-edition player list synchronization

* Fix legacy Java skins on Bedrock

* Refactor Bedrock build platform encoding
2026-08-09 10:33:24 +02:00
ZlordHUN
64dd96c37b fix: Bedrock dropped item synchronization (#2832) 2026-08-09 10:15:22 +02:00
zhangxuan
f2ed9a07e4 fix: 🐛 Fixed that a slime appears after a magma cube died (#2826)
* fix: 🐛 Fixed that a slime appears after a magma cube died

* style: 🎨 Code formatting
2026-08-09 10:07:03 +02:00
Dark Star
97160c3566 docs(plugin-api): explain how plugins persist data (#2820) 2026-08-09 10:06:31 +02:00
xRookieFight
d150d78cfa fix(worldgen): skip jigsaw blocks whose final state is a structure void (#2840) 2026-08-09 10:04:10 +02:00
ZlordHUN
50fe9f7cd7 fix: Bedrock block breaking feedback (#2829) 2026-08-08 16:14:10 +02:00
Alexander Medvedev
e5047bd4c9 fix: data component try_from_name 2026-08-08 16:12:56 +02:00
Alexander Medvedev
ee6e0474ff fix: exlude wepif.yml 2026-08-08 13:46:17 +02:00
Alexander Medvedev
49360e53ef chore: clippy enforce unwrap_used, expect_used and panic
release is not far
2026-08-08 13:44:51 +02:00
xRookieFight
0eb7b936db fix: encode skin parts metadata per client version (#2815) 2026-08-08 08:59:08 +02:00
Alexander Medvedev
63d97e2c82 refactor(inventory): replace per-slot Arc<Mutex<ItemStack>> with container-level synchronization 2026-08-07 21:45:05 +02:00
ZlordHUN
ffcf09ece4 chore: remove bedrock raknet (#2811)
* Remove legacy RakNet transport

* Replace RakNet status with NetherNet discovery

* Restore Bedrock server-list status

* Remove NetherNet LAN discovery

* Remove unused AES dependency
2026-08-07 20:00:41 +02:00
Alexander Medvedev
7e2505b055 feat: add fetchprofile command 2026-08-07 14:01:03 +02:00
Alexander Medvedev
19ccd152f1 feat: add waypoint command 2026-08-07 10:58:46 +02:00
xRookieFight
7e60303689 fix: flatten hover event nbt fields (#2798) 2026-08-07 10:10:44 +02:00
MCbabel
69e3ff7c7c fix(world): size proto chunks by the dimension, not by the noise settings (#2803)
`ProtoChunk::new` took its height from the noise settings while
`Chunk::build_level_sections` builds and reads back `dimension.height / 16`
sections. The End and the Nether are the two dimensions taller than their noise
settings (256 vs 128), so their proto chunks held 8 sections for the 16 the
level chunk asks for and `get_block_state_raw` indexed past the end of
`flat_block_map`, panicking on every generation thread. The same mismatch left
light data covering half the column and dropped features placed above y = 128.

A chunk spans its dimension, as in vanilla's `LevelHeightAccessor`; the noise
settings only bound the vertical window the generator writes into. `ProtoChunk`
now carries both, storage sized by the dimension plus a generation window built
with `GenerationShapeConfig::trim_height`, so surface rules, carver height
providers and feature placement keep resolving against y < 128 there.

The panic quoted in the issue (`chunk_density_function.rs`, len 99 index 129)
was the same conflation in `populate_noise` and is already fixed by 3c43f971.
2026-08-07 10:10:00 +02:00