we sell insurance 93c6da993f Implement Query protocol (#218)
* Add query options to config
Added packet data types
Correctly parse a handshake packet
Add tokio to pumpkin protocol for `AsyncReadExt` convenience functions

* Add repr(u8) so that PacketType is a byte

* Respond to handshake correctly

* Allow for proper decoding of status packets and properly handle errors in decoding

* Implement challange tokens and verify with token and address

* Encode Basic status packet
Switch to CString since its better to and null errors higher up the code

* Encode Full status packet

* Add forgotten fields to full status packet

* Correctly respond to query clients when requesting full status

* Return actual address and port of server
Respect config options
Remove uncessary debug derives

* Remove packet type as it is redundant/unnecssary

* Implement basic status request
Refactor code for better error handling

* Update README

* Show players correctly in full status packet

* Store all packets in structs instead of enums
Break up en/decoding for each packet
Reduce client tracking
Get rid of QueryClients struct
Stop storing of magic value and check during decoding
Added tests for all decoding and encoding
Fix all sugestions from @StripedMonkey
2024-11-05 20:07:31 +01:00
2024-10-31 18:56:06 +01:00
2024-11-03 22:36:00 +01:00
2024-10-14 12:01:35 +02:00
2024-11-05 20:07:31 +01:00
2024-11-02 16:34:35 +01:00
2024-10-23 16:58:55 +02:00
2024-11-03 22:36:00 +01:00
2024-11-03 22:36:00 +01:00
2024-11-03 22:36:00 +01:00
2024-11-03 22:36:00 +01:00
2024-10-06 12:57:47 +02:00
2024-10-14 23:56:34 +02:00
2024-10-27 12:21:55 +01:00
2024-11-02 16:34:35 +01:00
2024-08-02 12:33:51 +02:00
2024-10-16 11:40:29 +02:00
2024-07-31 09:13:08 +02:00
2024-11-05 20:07:31 +01:00

Pumpkin

CI Discord License: MIT Current version)

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.

image

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
  • Login
  • 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
    • Chunk Loading
    • Chunk Generation
    • World Time
    • Scoreboard
    • World Borders
    • World Saving
  • Player
    • Player Skins
    • Player Client brand
    • Player Teleport
    • Player Movement
    • Player Animation
    • Player Inventory
    • Player Combat
  • Server
    • Plugins
    • Query
    • RCON
    • Inventories
    • Particles
    • Chat
    • Commands
  • 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://snowiiii.github.io/Pumpkin/

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

Description
Languages
Rust 100%