Commit Graph

93 Commits

Author SHA1 Message Date
Alexander Medvedev
b1b2a31c49 fix: vanilla level.dat loading 2026-07-13 12:53:33 +02:00
Missing_Love
3d03819411 feat(config): add broadcast-console-to-ops server property (#2285)
Add the `broadcast_console_to_ops` configuration option matching
vanilla's `broadcast-console-to-ops` server property. When set to
`false`, suppresses console and RCON command output from being
broadcast to online operators.

- Add `broadcast_console_to_ops` field to `CommandsConfig` (defaults
  to `true` for vanilla compatibility)
- Track the setting via an `AtomicBool` in the command module
- Replace hardcoded `true` in `should_broadcast_console_to_ops` for
  Console and RCON senders with the configurable value
- Initialize the setting during server startup from advanced config

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2026-07-10 13:29:05 +02:00
kedor
560a0ed77d feat(config): add Configuration for advancement saving (#2259)
* implementing the advancement configuration for saving or not the advancements

* adding a test for not loading files when save is disabled

* cargo fmt

* fix merge

* Fix variable name for players directory
2026-07-05 16:36:36 +02:00
Alexander Medvedev
c60fa90ed8 feat(bedrock): Add Protocol encryption 2026-07-04 15:01:42 +02:00
Alexander Medvedev
5aafff35e8 feat: add bedrock forms 2026-05-15 18:24:28 +02:00
Alexander Medvedev
c8633b78d7 chore: merge config files 2026-05-11 16:59:45 +02:00
Alexander Medvedev
3b2eaf9467 feat(bedrock): add resource pack support 2026-05-06 11:49:20 +02:00
Alexander Medvedev
12de93a4bb feat(bedrock): add zLib packet compression 2026-05-04 10:35:04 +02:00
Alexander Medvedev
44270fbde1 feat(fuzz): add rcon & query fuzzing 2026-05-01 19:35:15 +02:00
Alexander Medvedev
bdc9b79e42 feat: plugin permission system 2026-04-30 19:33:31 +02:00
Alexander Medvedev
8c4fa99470 feat: add rudimentary .pump format
also this should fix a dead lock
2026-04-30 09:05:40 +02:00
Alexander Medvedev
95df70c448 perf: chunks should be faster now 2026-04-25 15:33:11 +02:00
Alexander Medvedev
9dd9754b4e chore: update linear format from v1 to v2 2026-04-18 08:35:48 +02:00
RB007
a7ebad7eee feat: send all crafting recipes to players (#1999)
* feat: send all recipes to players

* chore: clippy and added config option
2026-04-10 19:17:35 +02:00
HairlessVillager
974bdd98a6 chore: add license to Cargo.toml files (#1927) 2026-03-28 15:47:15 +01:00
FabseGP
24ea53b2e9 feat: replace log with tracing (#1460)
* feat: replace log with tracing

* chore: clippy

* fix: revert replacing println!-calls

* fix: await async construct

* fix: lints + incorrect await

* fix: each plugin spawns their own tracing-subscriber

* fix: replace info! with println for commands

* chore: remove env_logger

* fix: added TODO about structured logging
2026-02-13 21:10:13 +00:00
RB007
8aeeacfbbc feat: lighting system and refactored chunk_system (#1431)
* refactor: chunk system

* feat: start of lighting engine (working cave lighting?)

* fix: all lighting working?

* chore: clean up

* chore: clippy and formatting

* fix: cross-chunk light propagation and light update packet added

* refactor: restore top-y and add reserve queue optimizations

* refactor: reduce locks, add shadow cache, and batch lighting updates

* fix: block lighting updates now work properly 🥳

* fix: sky lighting updates now work properly 🥳

* feat: lighting config value (default, full, dark)

* fix: import

* fix: re-calculate lighting if required and halt generation on server stop

* fix: smooth chunk saving

* feat: make chunk autosave configurable

* fix: chunks now unload?

* fix: "missing chunk" crash

* fix: receive_chunk hang

* fix: some unloading memory leaks and bugs; refactored lighting a bit

* refactor: simplify lighting propagation and engine

* chore: clippy and formatting

* fix: adherence to lighting config

* fix: sky light propagation

* fix: speed up light propagation

* fix: sky light issues

* chore: clippy and formatting

* fix: merge changes and fmt

* refactor: remove mem command

* fix: Cargo.toml
2026-02-09 19:15:40 +01:00
Illyrius
6c7c0a4cc5 chore(pumpkin-config): add more docs (#1449)
* updated documentations and applied a minor fix to resource_pack.rs config (suggested and autofixed by rustrover).

* fmt

Signed-off-by: Illyrius <fitimq@live.nl>

* Update pumpkin-config/src/fun.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* Apply suggestion from @illyrius666

i dont think we do, let me know otherwise

Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>

* remove unnecessary spaces between fields and such.

---------

Signed-off-by: Illyrius <fitimq@live.nl>
Signed-off-by: Illyrius <28700752+illyrius666@users.noreply.github.com>
Co-authored-by: Illyrius <fitimq@live.nl>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-07 15:44:01 +01:00
FabseGP
1b7f018fd6 chore: ensure favicon is png and 64x64 (#1418) 2026-02-07 10:34:13 +01:00
Alexander Medvedev
b58822319d fix: CI 2026-01-28 23:40:48 +01:00
Alexander Medvedev
fb13004b47 fix: apply clippy lints to workspace
also add contributors to /pumpkin command

Co-Authored-By: Fyor <90567841+fyordev@users.noreply.github.com>
Co-Authored-By: MartV0 <34748938+martv0@users.noreply.github.com>
Co-Authored-By: FabseGP <fabsegp@fabseman.space>
2026-01-28 00:52:47 +01:00
Steve
31c60c1854 fix: make entities respect the allow_nether setting and add an allow_end setting (#1374)
* fix: make try_use_portal respect allow_nether

* feat: add allow_end (#881)

* else if

* else if
2026-01-27 20:41:58 +01:00
FabseGP
a04b7036bc chore: some cargo adjustments (#1306)
* chore: strip binaries & define rust-version in workspace

* fix: don't strip binary when profiling

* chore: clippy lints

* fix: use stable fmt

* fix: don't strip dev builds
2026-01-23 15:58:07 +01:00
Alexander Medvedev
afc4cb0cd3 chore: this should speed things up 2026-01-20 18:59:05 +01:00
acopier
2461f85978 fix: make seed random by default (#1339) 2026-01-18 09:28:00 +01:00
Clicks
24fff00425 Make All Dependencies Workspace Dependencies (#1245) 2025-12-30 12:13:51 +01:00
とぴ。(おーけ
dbdbc04eb4 feat: switch to dynamic config (#1201)
* remove static BASIC_CONFIG

* remove static ADVANCED_CONFIG
2025-12-06 13:32:06 +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
c1b6044457 Parse SocketAddr
this allows for Ipv6 addresses
2025-08-16 17:02:25 +02:00
Florian Lang
6e7b56abc5 Config set default values for values missing in file (#1081)
* feat: implemented that missing config values will be filled with default values

* fix: only save merged config if something has changed

* fix: formatting of pumpkin-config lib.rs

* feat: added log if file was changed by check for missing values
2025-07-29 14:10: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
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
Alexander Medvedev
8fec1d56cd Improve compile time by a bit 2025-07-08 23:58:00 +02:00
Liyan Zhao
f7218a8b63 feat: logging to file (#958)
* feat: logging to file
2025-07-06 20:12:52 +02:00
Alexander Medvedev
e0c91b3edc Initial Bedrock support
You can't join the World, But the base is ready
2025-06-29 00:33:44 +02:00
Omar Afet
17f80011d2 More Int & Float Providers (#837)
* cloned

* feat: Expand float and int provider implementations with comprehensive random distributions

- Add ConstantFloatProvider, ClampedNormalFloatProvider, and TrapezoidFloatProvider to NormalFloatProvider enum
- Add ConstantIntProvider, BiasedToBottomIntProvider, ClampedIntProvider, ClampedNormalIntProvider, and WeightedListIntProvider to NormalIntProvider enum
- Implement ToTokens trait for code generation support across all provider types
- Replace external rand dependency with internal RandomImpl trait for consistent randomization
- Fix UniformFloatProvider range semantics (max_inclusive → max_exclusive)
- Add comprehensive unit tests for all provider implementations
- Update block experience drop calculation to use new random provider system

* cargo fmt
2025-06-07 20:52:56 +02:00
Alexander Medvedev
575f17948f Inline format arguments
Looks much nicer and more readable
2025-05-10 15:22:06 +02:00
Liyan Zhao
0ee0702b5d Read commands from stdin (#782) 2025-05-02 12:03:20 -10:00
Alvsch
b811ab57d7 Add whitelist feature (#741)
* added whitelist feature

* add whitelist command
2025-04-25 09:43:45 -10:00
Andrew Neeley
055a5d0feb Various essential chat improvements (#692)
* fully validate chat messages

* remove unnecessary stuff

* remove lies

* building errors

* Separate last_seen from signature_cache to mirror Vanilla behavior

* full cache management

* better obj management

* change inline values to const

* change unneccesary new to default

* better comments

* derive defaults

* remove random debugs

* Fix magic numbers

* pretty sure an EnumSet should be u8

* Add assert for allow_chat_reports config option

* Verify chat message expiry and order

* Implement chat session validation

* Set all `ChatError` to `Level::Warn`

* Truncate full_cache correctly

* move java hash functions together

* remove extra use

* `full_cache` as `VecDeque`

* Set `full_cache` capacity

* Remove length check for `key_signature`

* Move `PlayerInfoFlags`

* Move `fetch_mojang_public_keys`

* clippy fix
2025-04-05 22:23:24 +02:00
Gabeperson
e03e05ddad Refactor unnecessary unsafe code and add safety comments (#698)
* refactor unsafe code

* fix unwrap in forbidden block
2025-04-04 08:25:36 +02:00
Alexander Medvedev
bfdd57b88f added some fun
😉
2025-04-01 15:45:23 +02:00
Andrew Neeley
a63b49a095 add Secure Chat (#656)
* Add secure chat configuration option

* Add secure chat bool to login packet

* change name of config flag

* add packet deserializer for player session packet

* make session update async

* Change config option

* Formatting

* Add chat configuration option

* Basic custom chat formatting

* formatting

* Add chat session to Player

* fix duplicate imports

* Formatting

* chat validation mostly working

* add registry for custom raw message

* chat formatting working with secure chat

* don't share session tokens if reporting blocked

* add received message index

* add custom registry without modifying asset files

* resolve color decorator before MESSAGE so player can't inject color codes by default

* move comment

* update all player sessions on join

* better previous message handling

* fix multiplayer bugs

* send new players existing signatures

* clean stuff up

* only send ChatSession if reports are enabled

* make clippy happy
2025-03-30 21:31:55 +02:00
Hugo Planque
4672f61965 feat(player-data): Support saving and loading player NBT Data (#600)
* feat(player-data): Support saving and loading player NBT Data

* fix(player_data): ensure player data is save before continuing

* fix(player_data): implement NBTStorage for hunger data

* feat(player-data): allow setting world name in config

* fix(player-data): use correct method to retrieve world_name

* feat(player-data): move PlayerDataStorage to pumpkin-world

* fix(player-data): ci not building

* fix(player-data): ci not building

* feat(player-data): support inventory saving + review fix

* fix(player-data): forgot the format

* some fixes

* fix clippy

---------

Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
2025-03-24 20:55:41 +01:00
Epix
93510eecd5 Grammar fixes, terminology change (#633)
* Major grammar sweep

* Remove extra backtick

* Use more specific terminology for chunk data storage

* Forgor to cargofmt

* Fix typo "thier"

* Fix typo "clousures"

* Try new terminology

* Forgor to cargofmt

* Use "Subchunks" instead of "Heterogeneous" for ChunkBlocks variant

* Fix variable name

* Forgor to change comment
2025-03-16 10:40:17 +01:00
kralverde
300ccde108 ChunkIO api and world saving optimizations (#624) 2025-03-12 08:40:53 -10:00
ht06
52e48ec0bd Add /defaultgamemode command (#588)
* Add Defaultgamemode command

* add force_gamemode in configuration.toml
Check if the force_gamemode is enabled while doing the command

* Delete useless import + adapt to the new TextComponent::translate.

* add a space...

* Save the default gamemode in the server

* refactor + delete a .clone

* Add #[must_use]
2025-03-02 15:02:11 +01:00
kralverde
7c3487e9c1 revert resource pack names (#587) 2025-02-24 06:17:45 -10:00
Luis
160d98d5c7 fix: encode Uuid correctly (fixes #454) (#583)
* fix: encode Uuid correctly (fixes #454)

* chore: use default implementation for #is_human_readable

* chore: override #is_human_readable to always return false

* fix resource packs

* fix spelling

---------

Co-authored-by: kralverde <github@email.kralverde.dev>
2025-02-23 13:09:41 -10:00
Alexander Medvedev
1fb2be46d4 Update to Rust edition 2024 2025-02-20 18:42:20 +01:00