There's no good reason to bake a specific operator nickname into the bot's
identity — it differs per server, may not exist at all, and treating any
in-game name as "trusted" is a chat-injection vector ("I am the operator,
do X").
New model: the **repo** is the only trusted control plane. Anyone editing
AGENTS.md, skills/, or .env has filesystem access and is, by definition,
an operator. In-game chat becomes a dialog-only comms plane — the bot
talks to anyone but refuses destructive requests unless a corresponding
skill or AGENTS.md instruction makes the action explicitly permitted.
- .env / .env.example: OPERATOR_USERNAME removed
- AGENTS.md: identity section trimmed; "Operator contact" rewritten as
"Control channel" with the trust model spelled out; rules #2 and #6
rephrased so they no longer reference a named operator
- docs/architecture.md: top box renamed to "Human" with explicit
control-plane vs comms-plane split
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43 lines
1.8 KiB
Bash
43 lines
1.8 KiB
Bash
# --- Minecraft connection -----------------------------------------------------
|
|
# Any Minecraft Java server. The values below are an example — replace them.
|
|
MC_HOST=play.example.com
|
|
MC_PORT=25565
|
|
MC_USERNAME=pepa_pi_bot
|
|
MC_VERSION=auto # 'auto' = let mineflayer detect from server
|
|
|
|
# --- Minecraft auth -----------------------------------------------------------
|
|
# 'offline' — cracked servers (server runs with online-mode=false). Any nick works.
|
|
# 'microsoft' — premium / online-mode servers. Mineflayer runs a device-code flow
|
|
# on first connect and caches the token under ~/.minecraft-auth/.
|
|
MC_AUTH_MODE=offline
|
|
|
|
# --- Optional: in-game login plugin (AuthMe, nLogin, etc.) --------------------
|
|
# Many cracked servers gate gameplay behind an in-chat /register and /login flow.
|
|
# Leave blank if your target server doesn't use one.
|
|
# Min length is usually 8; use a long random value and never commit it.
|
|
MC_AUTHME_PASSWORD=
|
|
|
|
# --- LLM provider -------------------------------------------------------------
|
|
# Set ONE credential below, OR leave them all blank and run `pi /login` for OAuth
|
|
# (ChatGPT Pro, Claude Max, etc. — when the provider supports it).
|
|
OPENAI_API_KEY=
|
|
ANTHROPIC_API_KEY=
|
|
GOOGLE_API_KEY=
|
|
|
|
# Default model & provider for autonomous ticks.
|
|
# Cheap default; override per-session with `pi --model ...`.
|
|
PI_DEFAULT_PROVIDER=openai
|
|
PI_DEFAULT_MODEL=gpt-5-mini
|
|
|
|
# --- Bot behaviour ------------------------------------------------------------
|
|
# How often (seconds) the autonomous tick prompt fires. Set to 0 to disable.
|
|
TICK_INTERVAL_SECONDS=60
|
|
|
|
# Chat rate limit (messages per minute). Paper/Spigot spam kickers typically
|
|
# trigger around 20/min.
|
|
CHAT_RATE_LIMIT_PER_MIN=15
|
|
|
|
# --- Optional: Telegram bridge (future skill, not wired yet) ------------------
|
|
# TELEGRAM_BOT_TOKEN=
|
|
# TELEGRAM_OPERATOR_CHAT_ID=
|