mirror of
https://github.com/Pumpkin-MC/Pumpkin
synced 2025-01-29 21:13:47 +00:00
a0ae1ae515
* Add pumpkin-api crate for API definitions * Add proc-macro definitions for pumpkin-api * Add pumpkin-api and pumpkin-api-macros to workspace * Add basic PluginManager implementation plugin loading * Update .gitignore to include specific plugin file types * Add example plugin * Cargo fmt * Fix clippy issues * Refactoring to prevent a circular import * Add base impl for plugin hooks * Move plugin manager to server * Make metadata have static lifetime * Add default implementations to events * Add hooks to proc macro * Update example * Fix formatting * Fix clippy warnings * Load metadata from Cargo.toml * Mark plugins as an implemented feature :D * Implement new event handling * Create a static global reference to the plugin manager * Emit player join and leave events * Update macro generation * Update example * Fix formatting * Fix clippy issue * Simplify event handling * Add plugin command to list plugins * Make handlers async * Update macros * Update example * Fix formatting and clippy issues * Better styling on plugins command * Fix clippy issues * Cargo fmt * Disable doctest for lib target on pumpkin crate * New API for plugins * Update api macros * Update plugin example * A bit of clean up * Some QoL (and performance) improvements * Cargo fmt and clippy fixes * refactoring, better event handling, new context functions * Async on_load and on_unload * Fix mutex lock never going out of scope * Async plugin loading * Add plugin management command * Fix clippy issues * Fix import issues * Move TcpConnection out of client * Move packet encoding out of client * Allow plugins to register commands * Fix fmt and clippy * Implement plugin list in query * Make arguments public so that plugins can use them * Update proc_macros to handle runtime * Make tree_builder public for use in plugins * Make FindArg trait public for use in plugins * Update example plugin * Fix merge related issues * Fix cargo fmt * Post-merge fixes (also 69th commit, nice) * New event system * cargo fmt * Impl block break event * cargo fmt and clippy * Reduced plugin size * Reduce dependency count * Old code cleanup * cargo fmt * Add event priority and blocking options to event registration and handling * Refactor event handling to support blocking execution and improve event registration * Fix post-merge errors * Update example plugin * increase mpsc channel capacity and handle write errors gracefully * Use Arc<Player> instead of &Player * add missing import * Update example plugin with playing sounds * Remove example plugin * Create plugins dir if doesnt exist * Remove unused vars * Remove unnecessary clones * Fix impl * cargo fmt * Make server pub in context
3.2 KiB
3.2 KiB
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.
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
- Function as a framework for building a server from scratch.
Important
Pumpkin is currently under heavy development.
Features (WIP)
- Configuration (toml)
- Server Status/Ping
- Networking
- Encryption
- Packet Compression
- Player Configuration
- Registries (biome types, paintings, dimensions)
- Server Brand
- Server Links
- Set Resource Pack
- Cookies
- World
- World Joining
- Player Tab-list
- World Loading
- Lighting
- Entity Spawning
- Bossbar
- Chunk Loading
- Chunk Generation
- Chunk Saving
- World Time
- Scoreboard
- World Borders
- World Saving
- Redstone
- Liquid Physics
- Player
- Player Skins
- Player Client brand
- Player Teleport
- Player Movement
- Player Animation
- Player Inventory
- Player Combat
- Entities
- Non-Living (Minecart, Eggs...)
- Players
- Mobs
- Animals
- Entity AI
- Boss
- Server
- Plugins
- Query
- RCON
- Inventories
- Particles
- Chat
- Commands
- Permissions
- Proxy
- Bungeecord
- Velocity
Check out our Github Project to see current progress
How to run
See our Quick Start Guide to get Pumpkin running
Contributions
Contributions are welcome! See CONTRIBUTING.md
Docs
The Documentation of Pumpkin can be found at https://pumpkinmc.org/
Communication
Consider joining our discord 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 or my PayPal