add satirrfrr as third admin; create AGENTS.md

This commit is contained in:
root
2026-07-11 23:30:40 +00:00
parent 73fa11c6e3
commit 9e618dbe2a
3 changed files with 35 additions and 3 deletions
+32
View File
@@ -0,0 +1,32 @@
# Tarna Minecraft Bedrock Server / Dragonfly
## Run
- `go run main.go` — start server (uses `config.toml`; auto-created if missing)
- `go build -o mc_server main.go && ./mc_server` — build + run
- `make lint` — run `golangci-lint` with `govet`, `staticcheck`, `ineffassign`, `gocritic`
- `go test ./...` — all tests (only 2 test files exist; deterministic world tests use `world.Config{Synchronous: true}`)
- CI runs `make lint` then `go test ./...` on every PR/push
## Architecture
- `main.go` — entry point; adds custom mob spawner (every 20s), item cleaner (every 15min), cooperative random spawn, admin-only commands (2 hardcoded admins)
- `server/` — the Dragonfly library: `server.go` (core), `conf.go` (config), `session/` (network protocol), `cmd/` (command framework), `block/`, `entity/`, `world/` (world + generators + LevelDB storage)
- `cmd/blockhash/` — standalone utility for block hash generation
- `config.toml` — runtime config (TOML); network address, world folder, chunk radius, resource packs, etc.
## Code conventions
- Module: `github.com/df-mc/dragonfly` (Go 1.26)
- British English in docs, symbols, variables
- `gofmt` formatting; 3+ sequential vars grouped into `var()` block
- Minimize exported symbols; conservative use of generics
- `eol=lf` for all `.go` files (`.gitattributes`)
## Generated files (DO NOT EDIT)
- `server/session/enchantment_texts.go` — autogenerated by CI from GitHub contributor list
## Deploy (push to master only)
- Builds binary → SCPs to VPS → stops old server via `screen` → starts new binary in `screen -S dragonfly`
- PRs deploy test server to `df-mc.dev/pullrequest/<PR#>` for review
## Data / runtime
- World data stored in `world/`, player data in `players/`, resource packs in `resources/` (all gitignored)
- `bans.json` for multi-factor ban system by username/XUID/UUID/IP