mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-30 20:14:23 +00:00
42f6b9ce3f872d9e4afb4defb2be2a14063ab1dc
* fix(protocol): remap item/block state IDs and entity metadata for older Java clients The server was using reversed ViaVersion mappings (designed for old→new) to downgrade packets for older clients, which produced ID collisions and incorrect fallbacks for 26.1-exclusive items and block states. Changes: - Replace ViaVersion with ViaBackwards mapping files for item ID and block state remapping, which provide the correct new→old direction with proper closest-item fallbacks for 26.1-exclusive content - Fix CSetEntityMetadata to remap ItemStack item IDs per client version, matching the version-aware handling already done for inventory packets and block state metadata - Fix TrackedData codegen to resolve Java JSON keys correctly by trying both bare names and DATA_-prefixed names, and iterate the union of all version keys instead of only the latest (Bedrock) version - Fix LootCondition::MatchTool to default to false instead of true, preventing silk-touch loot table branches from always winning and causing ores to drop themselves instead of their correct items Fixes: block drops invisible on older Java clients Fixes: leather showing as milk bucket on 1.21.11 Fixes: coal ore dropping coal ore instead of coal Fixes: 26.1-exclusive blocks showing as wrong blocks on older clients * fix(codegen): remove #[must_use] from trait impl methods in generated code * fix(codegen): switch entity, sound and block state remapping to ViaBackwards mappings --------- Co-authored-by: Missing_Love <42416195+Q2297045667@users.noreply.github.com>
Pumpkin is a Minecraft server built entirely in Rust, offering a fast, efficient, and customizable experience. It prioritizes performance and player enjoyment while adhering to the core mechanics of the game.
Goals
- Performance: Leveraging multi-threading for maximum speed and efficiency.
- Compatibility: Supports the latest Java & Bedrock Minecraft server version while adhering to Vanilla game mechanics.
- Security: Prioritizes security by preventing known security exploits.
- Flexibility: Highly configurable, with the ability to disable unnecessary features.
- Extensibility: Provides a foundation for plugin development.
Important
Pumpkin is currently under heavy development.
Features
- Configuration (toml)
- Tracking: Protocol
- Server Status/Ping
- Encryption
- Packet Compression
- Java/Bedrock
- ...
- Tracking: World
- Player Tab-list
- Scoreboard
- World Loading
- World Time
- World Borders
- World Saving
- Lighting
- Entity Spawning
- Bossbar
- Chunk Loading (Vanilla, Linear, Pump)
- Chunk Generation
- Chunk Saving (Vanilla, Linear, Pump)
- Redstone
- Liquid Physics
- ...
- Tracking: Player
- Skins
- Teleport
- Movement
- Animation
- Inventory
- Combat
- Experience
- Hunger
- Off Hand
- Advancements
- Eating
- ...
- Entities
- Non-Living (Minecart, Eggs...) (W.I.P)
- Entity Effects
- Players
- Mobs (W.I.P)
- Animals (W.I.P)
- Entity AI
- Boss
- Villagers
- Entity Saving
- Server
- Proxy
- Bungeecord
- Velocity
How to run
See our Quick Start guide to get Pumpkin running.
Contributions
Contributions are welcome! See CONTRIBUTING.md
Docs
Pumpkin's documentation can be found at https://pumpkinmc.org/
Communication
Consider joining our Discord server to stay up-to-date on events, updates, and connect with other members.
Funding
If you want to fund me and help the project, check out my GitHub sponsors.
Description
Empowering everyone to host fast and efficient Minecraft servers.
dockergame-servergamedevminecraftminecraft-bedrock-editionminecraft-protocolminecraft-servernetworkingrustserver
Readme
GPL-3.0
250 MiB
Languages
Rust
100%
