Joseph Rimmer f4b322edb2 fix: drop receiver on console exit (#1817) (#1839)
* fix: drop receiver on console exit (#1817)

Fixes terminal echoing not being restored after stopping the server.
When the console command task exits, dropping the channel receiver
causes the blocking readline thread to wake up and properly return
the editor, which restores terminal state.

* fix: make server ticker interruptible for graceful CTRL+C shutdown

The Ticker's sleep was not responding to the STOP_INTERRUPT cancellation
token, causing the server to hang when CTRL+C was pressed during tick sleep.

Changes:
- Added STOP_INTERRUPT to ticker imports
- Changed loop to use labeled break ('ticker) for clean exit
- Made sleep interruptible with tokio::select! against STOP_INTERRUPT

Now CTRL+C immediately wakes the ticker and allows clean shutdown.
2026-03-11 20:02:12 +01:00
2026-03-03 17:27:57 +01:00
2026-03-08 21:42:57 +01:00
2026-03-06 22:01:39 +01:00
2025-03-29 13:25:37 +01:00
2025-05-10 12:46:42 +02:00
2026-02-09 15:52:46 +01:00
2025-08-11 20:45:55 +02:00
2026-02-27 17:48:37 +01:00
2024-12-04 11:37:41 +01:00
2026-02-09 15:52:46 +01:00

Pumpkin

CI Discord License: GPL

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.

chunk loading

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.

See what needs to be done before the 1.0.0 Release

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)
    • Chunk Generation
    • Chunk Saving (Vanilla, Linear)
    • 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
    • Mobs Inventory
    • Entity Saving
  • Server
    • Plugins
    • Query
    • RCON
    • Inventories
    • Particles
    • Chat
    • Commands
    • Permissions
    • Translations
  • 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
Languages
Rust 100%