mirror of
https://github.com/Pumpkin-MC/Pumpkin.git
synced 2026-08-30 20:14:23 +00:00
4012bdd60bb68e07dceaa6bd1242c26a6c967a79
Every trait method wasmtime's bindgen! generates must be `async fn` regardless of whether a given implementation needs to await anything, so clippy::unused_async_trait_impl fired 578 times across the WASM plugin bridge (crates/pumpkin/src/plugin/loader/wasm/wasm_host/wit/v0_1) plus a handful of similarly-shaped trait impls elsewhere (redstone pressure plates, several plant blocks, the pathfinder, three Entity setter methods). This blocks "Run lints (debug/release)" CI on every branch regardless of what it actually changes. Allow the lint at the module level for wasm_host's submodules (one attribute per module covers every impl inside it) and per-function for the scattered non-WASM occurrences, rather than restructuring any of the affected code. Also fixes three unrelated pre-existing lint failures uncovered once the above stopped masking them: - pumpkin-macros::count_placeholders needed to be a const fn (clippy::missing_const_for_fn) - this alone was blocking every other lint check from ever running, since pumpkin-macros failing to compile takes the whole workspace down with it. - `Result<_, ()>` in Plugin::send_message (clippy::result_unit_err). - `.ok().is_some_and(..)` that clippy::manual_is_variant_and wants as `.is_ok_and(..)`. Verified with `cargo clippy --all-targets --all-features` (debug and release) and `cargo test -p pumpkin --lib` (257 passed).
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 Edition
- Bedrock Edition (W.I.P)
- ...
- 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 (W.I.P)
- Eating
- ...
- Entities
- Non-Living (Minecart, Eggs...) (W.I.P)
- Entity Effects
- Players
- Mobs (W.I.P)
- Animals (W.I.P)
- Entity AI
- Boss (W.I.P)
- Villagers (W.I.P)
- 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 the Donation Page.
License & Attribution
- Pumpkin Server: Licensed under the GNU General Public License v3.0 (GPLv3).
- Plugin API (
pumpkin-plugin-api&pumpkin-plugin-wit): Dual-licensed under MIT OR Apache-2.0 for maximum flexibility when writing plugins. - Third-Party Assets & Data: Bedrock mappings, protocol conversion data, and Minecraft assets are subject to their respective licenses and attribution terms. See assets/NOTICE.md for full details.
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%
