Commit Graph

187 Commits

Author SHA1 Message Date
Alexander Medvedev
d439d5e22e chore: next round of fixes 2026-08-28 22:32:50 +02:00
PigTurtle
9e9f1b5784 refactor: use BlockId in more places (#3090)
* compare BlockId instead of (str) name

* compare named BlockIds in Block::properties() and Block::from_properties()

* compare named BlockIds instead of u16 literals for `impl BlockProperties`
2026-08-28 13:59:50 +02:00
PigTurtle
a18011301c fix: mangrove propagule panics (#3088)
checking if a mangrove propagule can be placed used the state of the existing block (not a propagule) to create the propagule's block properties.
2026-08-28 13:47:42 +02:00
Alexander Medvedev
6eb02f65b9 chore: more fixes 2026-08-28 13:31:28 +02:00
Alexander Medvedev
37437ee0a0 fix: many bugs 2026-08-27 21:23:24 +02:00
Stilldrop1
7034b698d0 fix: re-enable http-outbound plugin permission (#3087)
The HTTP_OUTBOUND permission was wired up correctly in #2128, gating
whether a plugin's outbound HTTP requests are allowed via
wasi_http_hooks.allow_outbound. That block was accidentally dropped in
8ce513ff89 ("feat: more plugin features") when unrelated changes
overwrote the same permission-checking region in
wasm_host/mod.rs, leaving allow_outbound permanently false regardless
of the plugin's declared permissions.

This restores the check so a plugin granted http-outbound in its
manifest can actually make outbound HTTP calls again.
2026-08-27 08:52:37 -07:00
Alexander Medvedev
8d2a9d0979 fix: doc tests 2026-08-27 13:30:00 +02:00
Alexander Medvedev
800f7d70e5 feat: more plugin entity stuff 2026-08-27 12:36:26 +02:00
Alexander Medvedev
3d69190a37 feat: leaves 2026-08-26 22:58:01 +02:00
Alexander Medvedev
e2a138cfa6 refactor(block-entities): from async to sync Part 4 2026-08-26 21:13:42 +02:00
Alexander Medvedev
52038e3356 refactor(inventory): from async to sync Part 3 2026-08-26 20:33:08 +02:00
Alexander Medvedev
66a5f53408 refactor(commands): from async to sync Part 3 2026-08-26 19:21:27 +02:00
Alexander Medvedev
5d841d6d3b refactor(entities): from async to sync Part 2 2026-08-26 16:45:10 +02:00
Alexander Medvedev
8ee11b06ce refactor: from async to sync Part 1 2026-08-26 14:18:00 +02:00
Alexander Medvedev
26f91f0b0f fix: https://github.com/Pumpkin-MC/Pumpkin/issues/3054 2026-08-25 20:49:12 +02:00
Demetrius Kanios
16c27a93c4 chore(plugin-api): Update wit-bindgen to 0.61.1 and remove workaround (#3048) 2026-08-25 10:10:53 -07:00
Demetrius Kanios
24ae9faa4f chore(bedrock): Update most of the packets to mirror the official docs (#3044)
* chore(bedrock): Update most of the packets to mirror the official docs
more closely.

* Fix typo

* Fix CCreativeContent

* Undo unrelated `registry.rs` change

* Update WIT to merged PR

---------

Signed-off-by: Demetrius Kanios <demetrius@kanios.net>
2026-08-25 09:06:23 -07:00
Alexander Medvedev
d8c7c23c0b fix: respawn in nether 2026-08-25 13:42:47 +02:00
Alexander Medvedev
dafc2b2000 fix: https://github.com/Pumpkin-MC/Pumpkin/issues/3029 2026-08-25 11:36:51 +02:00
yunuservices
f3e4788462 fix(wasm-plugins): fix the panic on hot-reloading (#3036)
* fix(wasm-plugins): fix the panic on hot-reloading

* fix(wasm-plugins): do not cache permission denials from non-main threads
2026-08-25 11:28:43 +02:00
Missing_Love
85d635a42b feat(bungeecord): add BungeeGuard auth support (#3038)
* feat(bungeeguard): add BungeeGuard token authentication

Add a BungeeGuard shared secret to the proxy configuration, validate the token during the BungeeCord login flow, reject connections with invalid tokens, and prevent players from bypassing the proxy to connect directly.

* fix

* fix

* fix:ci
2026-08-25 08:35:06 +02:00
Bryan
2b0a20d859 perf(world): batch entity ticks instead of one task per entity (#3008) 2026-08-25 08:32:54 +02:00
Matheus Tavares
767065d219 fix: chorus fruit teleport (#3012)
* fix: teleport players after eating chorus fruit

* fix: validate chorus fruit teleport destinations

* fix: dismount before random consumable teleport

* fix: avoid duplicate teleport confirmations

* fix: broadcast teleport particles after chorus fruit
2026-08-25 08:16:28 +02:00
ZlordHUN
37b82e6f3a fix(bedrock): unsupported version disconnect (#3032) 2026-08-25 08:10:45 +02:00
Demetrius Kanios
67eaa91400 feat(plugin-api): Better method chaining (Rust) (#3045)
* feat(plugin-api): Better method chaining (Rust)

* Work around faulty force-link of `cabi_realloc`

* Stub for `pumpkin-plugin-api` as well

* Revert "Work around faulty force-link of `cabi_realloc`"

This reverts commit 4aa4d4370b.
2026-08-25 08:03:11 +02:00
Noël Hagestein
5bf6349900 fix(world): particle spawning (#3043) 2026-08-24 16:55:04 -07:00
Alexander Medvedev
0d55aa5411 feat: extend plugin api 2026-08-24 16:24:23 +02:00
Alexander Medvedev
97fdea50d2 feat: add pillager raids 2026-08-24 16:00:06 +02:00
Mcxiaocaibug
4f7a517ce1 feat(pumpkin): add /reload command (#2960)
Adds the vanilla /reload command (permission level 2), which reloads
the server's datapacks: it re-reads the enabled packs, re-runs the
#minecraft:load function tag and pushes the rebuilt recipes to every
player, through the same Server::reload_datapacks path /datapack
enable and /datapack disable already use.

Feedback follows Vanilla and is sent before the reload starts, so it
arrives even though reloading takes a moment.

Co-authored-by: Mcxiaocaibug <Mcxiaocaibug@users.noreply.github.com>
2026-08-24 14:44:37 +02:00
Oswald
8be5ed1e58 fix: match vanillas generation for huge mushrooms (#2430) 2026-08-24 07:56:10 +02:00
ZlordHUN
17b37c3efc fix(bedrock): game logic deadlock (#3033) 2026-08-24 07:46:13 +02:00
ZlordHUN
4c71000613 fix(bedrock): NetherNet direct connection ICE routing (#3030) 2026-08-23 21:16:14 +02:00
Alexander Medvedev
5fd0933c1c fix: ci 2026-08-23 17:19:24 +02:00
Noël Hagestein
f8932f4f3e feat(inventory): implement lore methods for item stack (#3025) 2026-08-23 16:56:26 +02:00
Alexander Medvedev
89f554ed36 chore: add release ci 2026-08-23 16:22:01 +02:00
Bryan
aee90883e3 fix(net): validate the encryption response verify token (#3007)
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2026-08-23 14:17:42 +02:00
Missing_Love
18e9a0c8b8 fix: 1.21.11 joins (#3027) 2026-08-23 13:43:54 +02:00
Alexander Medvedev
edb848d608 fix: ci 2026-08-23 12:42:37 +02:00
Alexander Medvedev
1abbc7bfec fix: empty entity data 2026-08-22 22:56:55 +02:00
Alexander Medvedev
df28c321ac feat: basic initial datapack support 2026-08-22 18:56:48 +02:00
Noël Hagestein
de8c780053 feat(config): add option to disable plugin signature verification (#2942) 2026-08-22 16:59:11 +02:00
Alexander Medvedev
beb6947dfc fix: https://github.com/Pumpkin-MC/Pumpkin/issues/1303 2026-08-22 15:31:58 +02:00
Gabe D.
7c4b4baaab feat(pumpkin): add /debug start and stop commands (#2782)
Implements the vanilla /debug start and /debug stop commands (tracked in #15):

- /debug start opens one server-wide tick profiling session and rejects duplicate starts.
- /debug stop reports elapsed seconds, processed ticks, and average TPS, then returns the floored average TPS.
- Profiling state handles tick counter wraparound and can be restarted after a completed session.
- Registers minecraft:command.debug at operator permission level 3 and uses the existing Java and Bedrock translation keys.

/debug function is intentionally out of scope because Pumpkin does not yet have the required function runtime.
2026-08-22 13:22:44 +02:00
kedor
381ca7c976 fix(pumkin): portal deadLock and finding portal logic (#3001)
* fix portal deadLock and finding portal logic

* fix clippy
2026-08-22 13:21:33 +02:00
Niclas
342575c2fa feat(plugin-api): support server-side command suggestions (#2344)
* feat(plugin-api): support server-side command suggestions

* fix(data): use deterministic block state properties

* chore: update subproject commit reference for pumpkin-plugin-wit

* fix(plugin-api): avoid unwrap in suggestion handler registration

* fix: point WIT submodule at accessible fork

* fix: restore upstream WIT submodule URL

* fix: update WIT submodule for command suggestions

* Update pumpkin-plugin-wit

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2026-08-22 12:32:06 +02:00
DarkZmaj
4012bdd60b chore(lints): resolve the pre-existing clippy::unused_async_trait_impl wall (#3014)
Every trait method wasmtime's bindgen! generates must be `async fn`
regardless of whether a given implementation needs to await anything,
so clippy::unused_async_trait_impl fired 578 times across the WASM
plugin bridge (crates/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1)
plus a handful of similarly-shaped trait impls elsewhere (redstone
pressure plates, several plant blocks, the pathfinder, three Entity
setter methods). This blocks "Run lints (debug/release)" CI on every
branch regardless of what it actually changes.

Allow the lint at the module level for wasm_host's submodules (one
attribute per module covers every impl inside it) and per-function for
the scattered non-WASM occurrences, rather than restructuring any of
the affected code.

Also fixes three unrelated pre-existing lint failures uncovered once
the above stopped masking them:
- pumpkin-macros::count_placeholders needed to be a const fn
  (clippy::missing_const_for_fn) - this alone was blocking every other
  lint check from ever running, since pumpkin-macros failing to
  compile takes the whole workspace down with it.
- `Result<_, ()>` in Plugin::send_message (clippy::result_unit_err).
- `.ok().is_some_and(..)` that clippy::manual_is_variant_and wants as
  `.is_ok_and(..)`.

Verified with `cargo clippy --all-targets --all-features` (debug and
release) and `cargo test -p pumpkin --lib` (257 passed).
2026-08-22 12:25:51 +02:00
Alexander Medvedev
e1584ffb5f Update pumpkin-plugin-wit 2026-08-22 10:59:23 +02:00
Bryan
21c2b501f9 chore: remove the unused get_fluid_collisions (#3009) 2026-08-22 10:54:13 +02:00
Alexander Medvedev
05f3f8b4f7 feat: 1.7-26.2 client support
this was fucking hard
2026-08-22 10:49:06 +02:00
Alexander Medvedev
80e6fceb08 feat: 1.8 Client support 2026-08-21 16:24:22 +02:00