mcbot

Mineflayer bot for handling a spawner workflow, placing bone orders, and protecting the area with automatic emergency shutdown logic.

Features

  • Repeating spawner cycle (/api/spawner) with a 60-second delay between cycles.
  • GUI automation for:
    • opening spawner GUI
    • moving bones to inventory
    • running /order ZareMate
    • delivering and confirming order
  • Security monitor:
    • detects unauthorized nearby players (from allowed_players.txt)
    • detects nearby block breaks
    • triggers emergency routine
  • Emergency routine:
    • attempts to break/remove the spawner
    • attempts to stash spawner drops into a nearby ender chest
    • sends Discord webhook alert
    • quits bot
  • Simple web UI + API on http://localhost:3008.

Requirements

  • Node.js 18+
  • A valid Microsoft-authenticated Minecraft account for the configured bot username
  • Access to target server (java.donutsmp.net by default in code)

Install

npm install

Configure

Create .env in project root.

DISCORD_WEBHOOK_URL=
ALLOWED_PLAYERS_FILE=allowed_players.txt
DEBUG_LOGS=0

Notes:

  • ALLOWED_PLAYERS_FILE can be relative to project root or absolute path.
  • DEBUG_LOGS=1 enables extra slot/window debug logging.

Run

node index.js

Web Endpoints

  • GET / : basic web UI
  • GET /api/logs : bot logs as JSON
  • POST /api/spawner : start spawner loop
  • POST /api/stop : stop spawner loop

Allow List

Edit allowed_players.txt:

  • one player name per line
  • case-insensitive matching
  • lines starting with # are ignored

Important Runtime Behavior

  • On first spawn, bot stores join position and auto-arms security after 5 seconds.
  • Movement guard pauses loop if bot is moved too far from loop start.
  • If security is triggered, bot now tries to stash spawner items in ender chest before quitting.

Files

  • index.js : all bot logic and HTTP server
  • web/index.html : web UI
  • allowed_players.txt : allow-list for security monitor
  • AGENTS.md : guidance for future automation agents
  • docs/BOT_OPERATIONS.md : deeper operational notes
Description
No description provided
Readme 99 KiB
Languages
JavaScript 88.9%
HTML 11.1%