Commit Graph

148 Commits

Author SHA1 Message Date
Alexander Medvedev
5bfa6528da chore: changed block registration
only require block ids, should make bin size smaller and let the compiler better optimize, should also be faster performance wise
2026-01-23 23:32:17 +01:00
Clicks
d737b56cbc perf: improve performance of has_random_ticks by 3x (#1296)
* bitsets!

* add benchmark to confirm

* assert same output (this will become outdated on the next version
upgrade)

---------

Co-authored-by: CuzImClicks <cuzimclicks@proton.me>
2026-01-20 12:42:44 +01:00
Alexander Medvedev
49490237d4 chore: replaced rustyline-async with rustyline
also added console tab support
fixes https://github.com/Pumpkin-MC/Pumpkin/issues/429
2026-01-17 21:59:51 +01:00
Alexander Medvedev
3fbefafe4d feat: some more entity AI work 2026-01-17 19:26:25 +01:00
Alexander Medvedev
ff1f3a0fbd remove: pumpkin-registry
it is gone for good, i made the new registry be parsed from compile time in pumpkin-nbt and even parse the nbt code at compile time as well, And like expected this gives a massive speedup in first time parsing and also decreased bin size
2026-01-15 21:10:18 +01:00
Alexander Medvedev
e46459915c feat: Implement fireworks
also fix: https://github.com/Pumpkin-MC/Pumpkin/issues/1217
also includes some bedrock work, but still broken
2026-01-13 19:09:19 +01:00
Alexander Medvedev
a44a5babe3 feat: partially implement Stronghold
also fixed some bugs
2026-01-10 17:56:25 +01:00
Alexander Medvedev
01d3be963d feat: Structures 2026-01-03 23:36:19 +01:00
Clicks
24fff00425 Make All Dependencies Workspace Dependencies (#1245) 2025-12-30 12:13:51 +01:00
Alexander Medvedev
42c903493a port to 1.21.11 2025-12-24 13:09:01 +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
a2d8ca8d98 fix: pumpkin-world external crate compilation 2025-12-06 10:30:03 +01:00
Alexander Medvedev
70b75a0ac5 remove async-trait entirely 2025-12-04 23:50:00 +01:00
Alexander Medvedev
71392b4a38 remove async_trait from Commands
This decreased compile time by 30%, Plugins also are not required anymore to use async_trait when adding custom Commands
2025-12-03 18:25:58 +01:00
Alexander Medvedev
74c66e25e8 fix typo
and some compilation changes,
fix https://github.com/Pumpkin-MC/Pumpkin/issues/1010
2025-12-01 11:23:57 +01:00
Alexander Medvedev
03b3ff5e15 This should prevent some dead locks 2025-11-23 20:08:47 +01:00
spr-equinox
577f51dc1b chunk: rewrite thread scheduling (#1210)
* fix render distance and faster chunklevel

* new schedule method

* clean up

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-11-23 19:49:12 +01:00
Alexander Medvedev
2104367d0e fix: https://github.com/Pumpkin-MC/Pumpkin/issues/1216 2025-11-20 19:40:50 +01:00
Alexander Medvedev
0ce5471761 Overhaul registry loading
Registry data is now loaded dynamically for automatic future-proofing, ending the need for manual struct updates. Access to specific values now requires explicit data lookups.
2025-11-18 19:00:18 +01:00
Alexander Medvedev
47bbc56591 this should fix plugin errors
at least for now
2025-11-01 12:13:28 +01:00
Harihar Nautiyal
46a3861825 fix(auth): Implement Secure Bedrock JWT Chain Validation (#1182)
* Implemented jwt validation.

* Formatted

* Fix: Linting

* Formatted again

* Migrated bedrock_jwt to paper_util and optimised validator
2025-10-15 09:43:55 +02:00
spr-equinox
e71bccf564 Load-level–based Chunk System (#1157)
* Make protochunk not have a lifetime

* Staged chunks

* fix

* new generation system init

* small optimize

* fix warning

* fmt

* new get chunk

* use write_radius

* save stage in protochunk

* clean up

* clean old fn

* fix bug

* support saving but broke shutdown

* fail to fix shutdown and still many problems need to solve

* fix shutdown

* fix chunk unload; give highest priority to get_chunk

* fix tick deadlock

* fix chunk level

* drop old channel

* rewrite run_decrease_update; fix a stupid error

* Update chunk_system.rs

* remove some log

* lighter dependency

* clean up

* fix ci

* clean up & merge

* Update chunk_system.rs

* fix a bug

* Proto Chunk Saving, safer io and remove debug output

Port Proto Chunk Saving From #1164

* fix a bug

* fetching chunk message level set to debug

* Update multi_noise.rs

---------

Co-authored-by: 4lve <72332750+4lve@users.noreply.github.com>
Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-10-10 21:52:56 +02:00
Alexander Medvedev
0c2b647a45 fix CI
Replaced old chunk files used for testing
2025-10-06 16:14:03 +02:00
Alexander Medvedev
58583da4c1 Port to 1.21.9
I did not update density functions because i'm too lazy to refactor a bunch of things because Mojang decided to remove "initial_density_without_jaggedness", but i will in the future
2025-10-02 18:27:10 +02:00
Alexander Medvedev
932512b5d6 lets try fix CI 2025-10-02 16:54:48 +02:00
Alexander Medvedev
bbf685622b Update RSA
this should fix some plugin issues
2025-08-31 15:56:46 +02:00
Alexander Medvedev
91e77c33a0 add more loot table conditions
fix https://github.com/Pumpkin-MC/Pumpkin/issues/1155
2025-08-30 11:58:43 +02:00
Alexander Medvedev
c066787cc1 feat: implement Mob Spawners 2025-08-24 23:02:59 +02:00
Alexander Medvedev
f0668ec746 readme: check eating as complete 2025-08-20 16:31:07 +02:00
Alexander Medvedev
53cef4b050 Add structures
this is by far not done and the implementation is not correct in many ways, but it is still something
2025-08-17 22:12:38 +02:00
spr-equinox
4205befa5d DataComponent serialize, deserialize and nbt. Enchantment and Damage implement (#1117)
* add

* fix hash

* Update data_component_impl.rs

* write nbt

* update enchantments

* Update data_component.rs

* fix enchant

* Update login.rs

* remove 1 todo

* KnownPack version

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-08-16 17:20:56 +02:00
4lve
c4f922d27c Rework chunk generation system (#1115)
* Workers instead of spawning on chunks

* Piority

* Remove piority - broken

* Non arbitary worker threads number

* Make info to debugs

* fix clippy

* New rust version clippy fixes

* Use the same system for entity chunks

* Fix all warnings

* Fix clippy

* Fix benchmark
2025-08-13 22:05:04 +02:00
Alexander Medvedev
fae24008db pumpkin-world(structures): Add structure placement calculation 2025-08-13 17:11:56 +02:00
Alexander Medvedev
386fe547ad use rust's new file::try_lock
I was already waiting for this for a long time, now in the newest rust 1.89 it got stabilized :D
https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.try_lock
2025-08-11 21:03:29 +02:00
Alexander Medvedev
7e3a1c0972 Fix rust 1.89 warns 2025-08-11 20:45:55 +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
Alexander Medvedev
8ccc135d74 Update all crates 2025-07-26 17:51:15 +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
APO2073
fc1a9a5bd4 Update rsa version to fix plugin errors (#1065) 2025-07-26 16:02:37 +02:00
4lve
c01e0b93b9 Use rayon for chunkgen (#1046)
* Start fixing block entities

* Fix

* Begin performance fixing

* Fix stuff

* cleanup

* fix clippy

* Fast as fuck

* fix clippy

* Write chunks concurrently

* Disable random ticks for now

* Fix

* Merge

* fix merge errors

* Fix clippy

* Use rayon for chunkgen

* Fix clippy and add tokio console

* Remove unused imports

* Merge

* Fix panic and warn instead

* Fix clippy

* Fix formatting

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-11 21:23:32 +02:00
Alexander Medvedev
b0cea38596 remove some internal crates 2025-07-11 14:23:14 +02:00
Alexander Medvedev
0c717e2d0e move to pure rust zstd 2025-07-09 16:50:02 +02:00
Alexander Medvedev
e96dc4d98e Improve compile time 2025-07-09 16:26:16 +02:00
Alexander Medvedev
8fec1d56cd Improve compile time by a bit 2025-07-08 23:58:00 +02:00
Commandcracker
a3c8a7831d Add rayon to data build.rs (#1033)
* Add rayon to data build.rs

* make clippy and fmt happy
2025-07-08 20:02:05 +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
Liyan Zhao
f7218a8b63 feat: logging to file (#958)
* feat: logging to file
2025-07-06 20:12:52 +02:00
Alexander Medvedev
2f6c484b2b Protocol refactor (#1006)
* fixes

* Fixed missing ACKs (#1002)

* sefesf

* efrgf

* efes

---------

Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>

* Refactor Protocol

* Add CStartGame

currently broken, i will try to fix it tomorrow

* fix start packet

* more bedrock (#1014)

* srgjtdrwa

* sgs

* reg

* rg

* rgth

* ef

* rfrgreg

---------

Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>

* rename locations to position

---------

Co-authored-by: unschlagbar <153451111+unschlagbar@users.noreply.github.com>
Co-authored-by: unschlagbar <adrian@kuhlmann@gmx.de>
2025-07-06 15:43:53 +02:00
Alexander Medvedev
630560e1d8 Update README gif 2025-07-02 10:45:32 +02:00
4lve
622e2a13d2 Improve chunk generation speed by 5x (#988)
* Fewer locks and limit chunk gen to 2x per core

* remove logs

* Fix server shutdown

* Always use static blockstate

* Remove clone from block

* Fix clippy

* Imporve perf

* Implement FyorDev & MartV0 lookup tables

* Add chunk benchmark (FyorDev)

* fix c

* Fix CI

* fix clippy

* Format

* fix CI fr

* format

* Update benchmark to 1000 chunks
2025-07-02 09:48:36 +02:00