Commit Graph

1007 Commits

Author SHA1 Message Date
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
Alexander Medvedev
306a007e3c feat: Falling Blocks 2025-08-03 17:21:46 +02:00
Liyan Zhao
73c2c0115e Refactor entity argument (#1098)
* refactor: implement entity arguments

* refactor: use dyn EntityBase in EntitiesArgument, unify entities & players

[skip ci]

* refactor: use dyn EntityBase in EntitiesArgument, unify entities & players

[skip ci]

* refactor: use dyn EntityBase in EntitiesArgument, unify entities & players

[skip ci]

* refactor: use dyn EntityBase in EntitiesArgument, unify entities & players

[skip ci]

* refactor: use dyn EntityBase in EntitiesArgument, unify entities & players

[skip ci]

* refactor: use dyn EntityBase in EntitiesArgument, unify entities & players

* fix clippy

* feat: server.select_entities

* fix clippy

* fix clippy

* fix /kill

* fix /kill damage

* fix entity filter parsing

* type filtering

* chore

* fix entity argument

* fix clippy

* fix entity arg

* Update player.rs

* Update entities.rs

* Update entity_type.rs

* fix

* fix clippy

* fix kill
2025-08-03 12:10:21 +02:00
deadfry42
4230f1f5f7 Allow creative mode players to pick up items regardless of if they have (#1105)
enough inventory room
2025-08-03 11:10:31 +02:00
Alexander Medvedev
6e4a05d66d More Entity Physics work
Co-Authored-By: akashbeh <112662680+akashbeh@users.noreply.github.com>
2025-08-02 16:24:06 +02:00
Clicks
a4180e0512 Fix Breaking the Block below Vegetation (#1082)
* fix block breaking for roots and tall grass

* also fix bushes, dry vegetation and mushrooms

* remove explicit implementation that is handled by the trait

* optimize imports

* fix imports

* cargo fmt
2025-08-02 11:48:56 +02:00
Commandcracker
e8f6cc7313 Store equipment and level.dat correctly (#1028)
* Make it so you can load a pumpkin world form vanilla

* Fix reading walk Speed

* Add reasonable fallback values for player abilities

Add warnings to unsuccessful NBT player ability reads.

* Fix eqipment

* Clippy

* Move CURRENT_MC_VERSION to world crate

* merge clenup

* Remove logging

* Check if levle version is compatibil

* merge
2025-08-02 11:47:43 +02:00
Alexander Medvedev
3f2484672c Add Entity physics
Thanks to akashbeh for his work
https://github.com/Pumpkin-MC/Pumpkin/pull/824

Co-Authored-By: akashbeh <112662680+akashbeh@users.noreply.github.com>
2025-08-01 15:25:18 +02:00
Liyan Zhao
e75e52cd37 feat: add /data get Command (#1097)
* feat: /data get

* fix: colorize like vanilla

* fix: clippy

* fix: clippy

* fix: clippy

* fix: clippy
2025-08-01 12:17:38 +02:00
teknostom
96fe522609 Add irrigation (#1093)
* add irrigation

* fix
2025-08-01 11:10:10 +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
5ea2f70dba Fix damage & death msg & portal delay (#1095)
* fix: damage sound & death message

* fix

* fix

* fix rustfmt

* fix: reset_state

* fix
2025-08-01 10:04:59 +02:00
Alexander Medvedev
0c1f0b9a33 Send Inventory and Health when Switching dimension 2025-07-31 20:10:51 +02:00
spr-equinox
5084ccd43f Add Entity spawning on Chunk generation (#1054)
* Support Spawn

* Update natural_spawner.rs

* fix distance

* fix error

* fix

* use heigh map

* Update living.rs

* impl get_rough_biome and merge

* fix dropper and entity disappear

* merge

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-31 18:38:06 +02:00
Alexander Medvedev
7468f2cf76 Smaller fixes 2025-07-31 10:29:41 +02:00
TheDarkSword
fab33370b5 Implements some AI Goals for Zombie (#1011)
* Starting implementing AI goals

* Implement LookAtEntityGoal

* Implement ActiveTargetGoal

* Cleanup code

* Fix error when merging

* Implement LookAroundGoal

* Mob refactoring and implemented MoveToTargetPosGoal

* Implement StepAndDestroyBlockGoal

* Implement DestroyEggGoal

* cargo fmt

* Start implementation of Path and collisions

* Revert "Start implementation of Path and collisions"

This reverts commit 833941f4d1.

* Fix looking

* cargo fmt

* Implement priority

* fix clippy

* Implement mob moving with MeleeAttackGoal

* cargo fmt
2025-07-31 09:33:48 +02:00
Liyan Zhao
2ff2bee05e Fix panic message formatting & remove ansi color escape in log file (#1089)
* fix: panic & file logger color

* fix: panic & file logger color

* fix: panic & file logger color

* ci: try cargo expand

* ci: try cargo expand

* ci: try cargo expand

* ci: try cargo expand

* ci

* ci

* ci

* refactor logging: simplify log method by inlining record creation

* fix

* fix
2025-07-31 09:30: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
Alexander Medvedev
dbaf240da5 Remove spawn chunks
these will be also soon gone in Vanilla
2025-07-30 15:26:40 +02:00
teknostom
d8d6676008 add gourds (#1090)
* add gourds

* fix

* Update stem.rs
2025-07-30 14:10:15 +02:00
Liyan Zhao
018457d199 Fix client id increment (#1087)
* fix: client id increment (passing &mut u64)

* clippy
2025-07-29 12:40:28 +02:00
Alexander Medvedev
fd8d89a219 Fix https://github.com/Pumpkin-MC/Pumpkin/issues/1075 2025-07-29 12:19:05 +02:00
spr-equinox
13ef8de2dc add Potion Data, refactor Effect, and add BrewingRecipe Data (#1070)
* 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

* 1

* fmt

* remove unused crate

* fix error

* fix

* Update Cargo.toml

* Update Cargo.lock

* fix

* Update composter.rs

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

* Update furnace.rs

* Update lib.rs

* Update living.rs

* Update living.rs
2025-07-28 20:34:29 +02:00
ht06
4b7d9e0fd5 Implement ladder (#1056)
* feat: add ladder placement

* fix: delete .clone()

* all good
2025-07-28 20:32:24 +02:00
Rafael
c76c2f7cff feat: Implement item scattering when destroying blocks with inventories (#1078)
* feat: Implement item scatterer

* fix: Some issues

* fix: Formatting

* feat: Remove unused functions

* feat: Optimize blockentity check

* fix: Formatting

* fix: Ups

* fix: Remove log

* fix: Make clippy happy

* fix: Merge conflicts
2025-07-28 20:21:29 +02:00
Alexander Medvedev
a66fbc9671 add killed_by_player for loot table 2025-07-28 19:59:07 +02:00
Liyan Zhao
0e375434c5 Improve entity damage handling & entity name, Add death message & void damage, Weak reference to server in worlds. (#961)
* fix: enhance damage handling with context in LivingEntity

* feat: add out-of-world damage handling

Fix: #957

* fix: refine damage handling with context for entities

* fix: clippy

* feat: death message

* fix

* fix

* fix

* fix: review suggestions

* fix

* Update mod.rs

* fix display name

* fix display name

* fix clippy

* fix clippy

* fix

* fix

* fix world load

* fix logger timestamp

* fix logger timestamp

* fix compiling

* fix fall damage

* fix: pass fat ptr in damage_with_context

* refactor: Refactor commands to use styled name instead of plain text.

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-07-28 18:07:52 +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
eaf5959f2b Minor Chunk gen speed gains 2025-07-28 12:18:54 +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
vyPal
f463b5bc81 allow Custom Plugin APIs (#1080)
* Wrap Context in Arc

* Add support for plugin to expose custom APIs

* Add functionality to allow plugins to load in parallel

* Remove PluginManager from RwLock
2025-07-27 17:34:41 +02:00
とぴ。(おーけ
27bd9b15c3 Optimize and Fix Tick Scheduler (#1055)
* optimize and fix tick scheduler

* add serialize/deserialize

* extend to append

* fmt

* small optimization

* fmt
2025-07-27 17:32:16 +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
Rafael
3d72b72639 feat: Implement hand swing animation for beds (#1025)
* feat: Swing hand like vanilla

* feat: Make it more vanilla

* fix: Remove comment

* fix: Stop action if the block it too be stopped

* fix: rename to match vanilla

* fix: Add missing comment

* fix: clippy

* fix: Use names from yarn mappings

* fix: Make clippy happy
2025-07-27 10:35:39 +02:00
Clicks
af498ce1d7 Feat setworldspawn Command (#1073)
* prototype

* fix permissions

* fix spawning on the edge of blocks

* fix level_info being cloned without Arc and fully implement setworldspawn

* prettier

* cargo fmt my beloved bitching about a comma
2025-07-26 21:10:01 +02:00
teknostom
ee361f35cb Add macro for expanding tags to PumpkinBlock (#1071)
* add macro for expanding tags

* fmt

* Remove log
2025-07-26 19:56:17 +02:00
Clicks
63950097a3 fix the xp calculations (#1074) 2025-07-26 18:06:10 +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
spr-equinox
0d649a87d5 support offhand (#1047)
* support offhand

* Update play.rs

* Update play.rs

* Update play.rs

* Update play.rs
2025-07-11 20:27:25 +02:00
Alexander Medvedev
b0cea38596 remove some internal crates 2025-07-11 14:23:14 +02:00
spr-equinox
0dbc8e0286 fix #1004 (#1048) 2025-07-10 19:43:34 +02:00
Commandcracker
49a15c6031 Add proper placement rotation (#1044) 2025-07-10 11:36:26 +02:00
spr-equinox
c965a2ff1f Change BlockRegistry and ItemRegistry to use u16 (#1035)
* optimize

* fix

* fix the weird indent

* Update fluid.rs

* Update blocks.rs

* fmt

* use hash block

* apply to item

* fix incorrect name
2025-07-10 10:43:47 +02:00
Clicks
c1af97d2b4 Fix Ghost Blocks on Candle Cakes (#1043) 2025-07-10 10:34:58 +02:00
MollTheCoder
ef658a906d Update permission level for /transfer (#1039)
* Fix /transfer permission

* It's actually permission level three, not permission level two.

* Move dispatcher.register call to correct place
2025-07-10 10:25:01 +02:00