Adamant is a Go-based Minecraft: Bedrock Edition server, forked from df-mc/dragonfly. The goal is to reach feature parity with PocketMine‑MP (PMMP) while keeping Dragonfly’s performance and developer‑friendly design.
Upstream: https://github.com/df-mc/dragonfly
- Fully asynchronous world generator: generation tasks now run in parallel across worker goroutines, drastically improving chunk generation speed and reducing main-thread load.
- PM‑style world generation: pmgen overworld with biomes (e.g., Swamp) and ore population; configurable seed, worker count and queue size.
- Vanilla dimension generators: new Overworld/Nether/End generators ported from the original Minecraft generation rules.
- Built‑in admin commands + server CLI:
help,list,kick,gamemode,time,chat,gc,status,stop,about,whitelist. - Bedrock Query support: server status, players, MOTD and plugins exposed to query clients (integrated via
server/query_adapter.go). - Whitelist system: TOML‑backed whitelist with built‑in commands to add/remove/list entries; toggle enforcement via config (
[Whitelist]). - New items and vanilla features: early stage of implementing core Bedrock mechanics — starting with fishing rods and Nether portals.
- Stability and concurrency hardening: locks/atomics across sessions, registries, world counters, whitelist checks, chunk radius, and command origin tracking; snapshotting to avoid hot locks and I/O under locks.
- Inventory and container safety: ordered locks for merge operations, guarded slot callbacks, validated stack requests/containers, hotbar slot clamping, and safer container-close handling.
- Data validation and panic resistance: checks for creative item IDs, anvil rename indices, banner patterns, item NBT damage/book pages, skin/cape dimensions, transfer ports, and query HostPort bounds.
- World/AI correctness fixes: bounded pmgen population concurrency, placeholder chunk tracking after load errors, stable pathfinding node storage, and hardened weather/explosion randomness.
- Gameplay correctness: fixes for lightning height/offsets, grindstone XP ranges, crossbow quick-charge ticks, instant-break haste baseline, XP drop ranges, chest unpairing, and barrel/brewing NBT state.
- Query and persistence robustness: token pruning, UUID validation, corruption guards for inventories, detached query player slices, and safer resource pack building.
Achieve a PMMP‑like feature list, prioritising gameplay parity and admin ergonomics while keeping clean Go APIs for plugin and feature work.
Requirements: Go 1.23+
Run from source:
git clone https://github.com/dm-vev/adamant
cd adamant
go run .Stop the server with Ctrl+C.
Server settings are in config.toml.
-
Network.Address: listen address and port (default:19132). -
Server.Name: server name in the list;AuthEnabled,DisableJoinQuitMessages,MuteEmoteChat,ReconnectPolicy. -
World:Seed,SaveData,GeneratorWorkers,GeneratorQueueSize,Folder.The asynchronous generator defaults to
GeneratorQueueSize = GeneratorWorkers * 4. Under extreme preloading you may need to raise both values to keep the queue from saturating; watch the server logs forworld generator queue saturatedwarnings. Profile the generator first if it is limited by LevelDB or other I/O to ensure additional workers do not become the bottleneck. -
Players:MaxCount,MaximumChunkRadius,SaveData,Folder. -
Resources:AutoBuildPack,Folder,Required. -
Whitelist:Enabled,File(defaultwhitelist.toml).
- Enable/disable via
config.toml→[Whitelist].Enabled. - Manage entries in‑game/console:
whitelist add <player>whitelist remove <player>whitelist list
The Bedrock Query adapter publishes live status, player names, and MOTD to query clients. No extra setup needed.
Adamant tracks Dragonfly upstream and focuses on PMMP parity on top. The codebase keeps Dragonfly’s structure and API conventions to make contributing straightforward.
Upstream docs: https://pkg.go.dev/github.com/df-mc/dragonfly/server
Contributions are welcome! Please open issues/PRs with focused changes. If you’re proposing PMMP‑parity features, include examples and behaviour references.
Thanks to the df‑mc maintainers and community for the excellent base.