Commit Graph

27 Commits

Author SHA1 Message Date
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
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
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
Alexander Medvedev
61bd8f77b6 chore: swap permissions_manger to dashmap
i need this also PatchBukkit
2026-08-19 19:50:20 +02:00
Alexander Medvedev
489403c58b chore: switch command_dispatcher to ArcSwap
i need this for patchbukkit, but this is also safer in terms of deadlocks
2026-08-19 18:57:31 +02:00
Alexander Medvedev
399bf14150 chore: add packet rate limiter 2026-08-19 11:53:53 +02:00
Alexander Medvedev
423522f33e feat: chat spam prevention 2026-08-18 14:59:59 +02:00
Alexander Medvedev
8ce513ff89 feat: more plugin features 2026-08-16 22:28:01 +02:00
Alexander Medvedev
a72531a7c2 fix: chunk leak 2026-08-16 14:32:10 +02:00
Alexander Medvedev
f27e64afbf chore: add some more events 2026-08-14 15:58:16 +02:00
Dark Star
55312adfa1 feat: add config to enable/disable commands and set their permission level (#2799) 2026-08-12 16:47:40 +02:00
ZlordHUN
e59af5cb21 fix(bedrock): persist and restore player positions after reconnecting (#2889)
* fix(bedrock): restore saved player position

* fix(bedrock): offset initial player position

---------

Co-authored-by: Zoltán Virágh <zoltan.viragh@cloudtalk.io>
2026-08-12 10:12:21 +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
Alexander Medvedev
49360e53ef chore: clippy enforce unwrap_used, expect_used and panic
release is not far
2026-08-08 13:44:51 +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
MCbabel
b0d2dfa434 fix(world): load level.dat instead of discarding it (#2804)
`AnvilLevelInfo::read_world_info` validated the version tags and then returned
`LevelData::default(Seed(0))`, so level name, difficulty, spawn, world border
and data packs were discarded on every start, and the writer emitted only
`DataVersion`, `version` and `LastPlayed`, truncating the rest on save. A world
whose seed lives in level.dat's legacy `Data.WorldGenSettings` compound, as
converters such as Chunker emit, therefore loaded with seed 0 and generated
foreign terrain into its existing region files.

level.dat is now read and written tag by tag through pumpkin-nbt, every field
falling back to its vanilla default, so a missing optional tag such as
`Version.Series` no longer costs the whole file. Saving merges into the existing
`Data` compound, so tags Pumpkin does not model survive. A world with no seed
in either file aborts startup instead of silently regenerating, and the seed is
mirrored into level.dat, the only world file that is backed up. Version tags are
re-stamped with the current constants on save so level.dat stays consistent with
the chunks Pumpkin writes.
2026-08-07 10:09:06 +02:00
ZlordHUN
f2444bcefd feat(bedrock): update to 1.26.40 and add NetherNet transport (#2797)
* feat(bedrock): update to 1.26.40 and add NetherNet transport

* fix(bedrock): update remaining 1.26.40 packet schemas

* fix(bedrock): complete NetherNet and inventory migration
2026-08-07 08:34:10 +02:00
Alexander Medvedev
cb3660bcd2 chore: move to crates folder 2026-08-06 12:56:40 +02:00