lokka30 b68ad51672 Prevent duplicate profiles (#178)
* Implement get_player_by_uuid for server & world

Similar to the existing functions named get_player_by_name, these functions will search for a player with a matching Uuid.

This implementation is asynchronous and thus better suits being combined with #176, which makes get_player_by_name asynchronous too.

* make get_player_by_name async, rename old fn to get_player_by_name_blocking

Currently, the existing commands system is all that requires the existing blocking version of get_player_by_name function. After discussing in the Discord, it seems renaming the old blocking method with a suffix of _blocking in addition to adding an async version under the original (unmodified) name of get_player_by_name.

* Implement duplicate profile protections

* fmt client_packet.rs

* use hashmap search for players by uuid; move duplicate uuid check

I've confirmed this commit compiles and runs, my client is able to play
normally. However, I haven't confirmed it prevents duplicate usernames
or UUIDs as of yet.

* client_packet: check auth before duplications; check uuid offline too
2024-10-25 17:43:02 +02:00
2024-10-16 21:51:09 +02:00
2024-10-24 17:49:23 +02:00
2024-10-23 14:31:23 +02:00
2024-10-14 12:01:35 +02:00
2024-10-25 17:43:02 +02:00
2024-10-23 16:58:55 +02:00
2024-10-23 14:31:23 +02:00
2024-10-24 17:49:23 +02:00
2024-10-24 19:30:24 +02:00
2024-10-23 14:31:23 +02:00
2024-10-24 17:49:23 +02:00
2024-10-06 12:57:47 +02:00
2024-10-14 23:56:34 +02:00
2024-10-21 13:25:04 +02:00
2024-10-22 14:02:49 +02: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-10-16 21:51:09 +02:00
2024-10-13 13:05:59 +02:00
2024-10-23 19:41:08 +02: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
    • 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

Thanks

A big thanks to wiki.vg for providing valuable information used in the development of this project.

Description
Languages
Rust 100%