mirror of
https://github.com/Pumpkin-MC/Pumpkin
synced 2025-02-06 14:29:49 +00:00
* feat: add linear chunk format with zstd lib dependency * fixing a typo * refactor: rename file handling methods for clarity and more lint fixes * refactor: improve clarity on validation methods * fix: invert version check in LinearFile header validation * fix: remove leading dot from file path formatting in LinearChunkFormat * refactor: improve error handling and method naming in LinearFile operations * fix: ensure file is flushed after writing in LinearFile operations * fix: lints and warnings * fix: more lints * refactor: streamline LinearFile structure and improve header management * refactor: change chunks_headers to use Box for improved memory management and use exception to know if file exist * refactor: update path parameter types to PathBuf for consistency and improved usability * refactor: update path parameter types to Path avoiding uknown changes and adjust file truncation logic * fix: avoid using the same path for different tests * fix: fix some bytes sizes for the header based on the spec * refactor: enable file truncation when opening for writing and simplify save method * fix: removing IoSlices for windows issues. * fix: clippy lints * refactor: improve incompatible files cheking, some documentation and variable nameing * feat: add file_format to ChunkConfig and implement format handling in Level * feat: add error logging for invalid file headers and data size checks in LinearFile and tmp filenames on write * feat: implement file locking mechanism for concurrent chunk read/write operations * fix: bug at desserializing the chunks headers. * Refactor chunk file locking mechanism to use DashMap for improved concurrency and simplify read/write guard management * docs: Update documentation for LinearVersion enum with format references * re-check workflows * re-check lints 2 * rename config values * Some doc improvements --------- Co-authored-by: Mili <santiagoogle@hotmail.com> Co-authored-by: Alexander Medvedev <lilalexmed@proton.me>
111 lines
3.2 KiB
Markdown
111 lines
3.2 KiB
Markdown
<div align="center">
|
|
|
|
# Pumpkin
|
|
|
|
![CI](https://github.com/Snowiiii/Pumpkin/actions/workflows/rust.yml/badge.svg)
|
|
[![Discord](https://img.shields.io/discord/1268592337445978193.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/wT8XjrjKkf)
|
|
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
|
|
![Current version)](https://img.shields.io/badge/current_version-1.21.4-blue)
|
|
|
|
</div>
|
|
|
|
[Pumpkin](https://pumpkinmc.org/) 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.
|
|
|
|
![image](https://github.com/user-attachments/assets/7e2e865e-b150-4675-a2d5-b52f9900378e)
|
|
|
|
## What Pumpkin wants to achieve
|
|
|
|
- **Performance**: Leveraging multi-threading for maximum speed and efficiency.
|
|
- **Compatibility**: Supports the latest Minecraft server version and adheres 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.
|
|
|
|
## What Pumpkin will not
|
|
|
|
- Be compatible with plugins or mods for other servers
|
|
|
|
> [!IMPORTANT]
|
|
> Pumpkin is currently under heavy development.
|
|
|
|
## Features (WIP)
|
|
|
|
- [x] Configuration (toml)
|
|
- [x] Server Status/Ping
|
|
- Networking
|
|
- [x] Encryption
|
|
- [x] Packet Compression
|
|
- Player Configuration
|
|
- [x] Registries (biome types, paintings, dimensions)
|
|
- [x] Server Brand
|
|
- [x] Server Links
|
|
- [x] Set Resource Pack
|
|
- [x] Cookies
|
|
- World
|
|
- [x] World Joining
|
|
- [x] Player Tab-list
|
|
- [x] World Loading
|
|
- [x] Lighting
|
|
- [x] Entity Spawning
|
|
- [x] Bossbar
|
|
- [x] Chunk Loading (Vanilla, Linear)
|
|
- [x] Chunk Generation
|
|
- [x] Chunk Saving (Vanilla, Linear)
|
|
- [x] World Time
|
|
- [x] Scoreboard
|
|
- [x] World Borders
|
|
- [x] World Saving
|
|
- [ ] Redstone
|
|
- [ ] Liquid Physics
|
|
- Player
|
|
- [x] Player Skins
|
|
- [x] Player Client brand
|
|
- [x] Player Teleport
|
|
- [x] Player Movement
|
|
- [x] Player Animation
|
|
- [x] Player Inventory
|
|
- [x] Player Combat
|
|
- Entities
|
|
- [x] Non-Living (Minecart, Eggs...)
|
|
- [x] Players
|
|
- [x] Mobs
|
|
- [x] Animals
|
|
- [x] Entity AI
|
|
- [ ] Boss
|
|
- Server
|
|
- [x] Plugins
|
|
- [x] Query
|
|
- [x] RCON
|
|
- [x] Inventories
|
|
- [x] Particles
|
|
- [x] Chat
|
|
- [x] Commands
|
|
- [x] Permissions
|
|
- [x] Translations
|
|
- Proxy
|
|
- [x] Bungeecord
|
|
- [x] Velocity
|
|
|
|
Check out our [Github Project](https://github.com/orgs/Pumpkin-MC/projects/3) to see current progress
|
|
|
|
## How to run
|
|
|
|
See our [Quick Start](https://pumpkinmc.org/about/quick-start.html) Guide to get Pumpkin running
|
|
|
|
## Contributions
|
|
|
|
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
|
|
## Docs
|
|
|
|
The Documentation of Pumpkin can be found at https://pumpkinmc.org/
|
|
|
|
## Communication
|
|
|
|
Consider joining our [discord](https://discord.gg/wT8XjrjKkf) 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](https://github.com/sponsors/Snowiiii) or my [PayPal](https://www.paypal.me/alexxmedvedev)
|