{"id":19517773,"url":"https://github.com/shaybox/shaysbot","last_synced_at":"2026-01-04T05:12:37.275Z","repository":{"id":99013453,"uuid":"587959594","full_name":"ShayBox/ShaysBot","owner":"ShayBox","description":"My personal Minecraft bot using Azalea","archived":false,"fork":false,"pushed_at":"2024-10-29T11:11:02.000Z","size":137,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-29T13:11:46.688Z","etag":null,"topics":["azalea","azalea-plugin","azalealibrary","minecraft","minecraft-bot","minecraft-bots"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ShayBox.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-12T01:36:19.000Z","updated_at":"2024-10-29T11:09:52.000Z","dependencies_parsed_at":"2024-11-10T02:33:36.039Z","dependency_job_id":null,"html_url":"https://github.com/ShayBox/ShaysBot","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FShaysBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FShaysBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FShaysBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ShayBox%2FShaysBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ShayBox","download_url":"https://codeload.github.com/ShayBox/ShaysBot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240766611,"owners_count":19854119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azalea","azalea-plugin","azalealibrary","minecraft","minecraft-bot","minecraft-bots"],"created_at":"2024-11-11T00:06:18.342Z","updated_at":"2026-01-04T05:12:37.269Z","avatar_url":"https://github.com/ShayBox.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--suppress HtmlDeprecatedAttribute --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://discord.shaybox.com\"\u003e\n    \u003cimg alt=\"Discord\" src=\"https://img.shields.io/discord/824865729445888041?color=404eed\u0026label=Discord\u0026logo=Discord\u0026logoColor=FFFFFF\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/shaybox/shaysbot/releases/latest\"\u003e\n    \u003cimg alt=\"Downloads\" src=\"https://img.shields.io/github/downloads/shaybox/shaysbot/total?color=3fb950\u0026label=Downloads\u0026logo=github\u0026logoColor=FFFFFF\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n# ShaysBot\n\nMy personal Minecraft bot written in Rust built with [Azalea].  \nPrimarily designed to be a pearl bot, allowing for quick travel to different locations with multiple accounts.  \nAlso featuring a Discord bot, an HTTP API for local integrations, a Docker image, and support for [No Chat Reports] encryption.\n\n## How to use\n\nChoose your preferred [Installation Method](#installation-methods) below, then run the bot once to create files.  \nOpen the `global-settings.toml` file and change the `server_address` to your desired server.  \nRename the `ExampleBot*.toml` in `local-settings` to your desired accounts Minecraft Username,  \nThen open the local settings file and change the `auth_mode` to `online`.\n\nYou can check the [global](src/settings/global.rs) and [local](src/settings/local.rs) source files for documentation.\n\n### ZenithProxy\n\nYou can optionally use [ZenithProxy] between my bot and your desired server,  \nThis can be useful if you want to keep your place in queue with non-priority accounts.  \nAdd `server_address = \"127.0.0.1:ZENITH PORT HERE\"` to the top of your local settings file.  \nNote: This is intended for proxies only, do not use it to connect accounts to different servers.\n\n### Verbose Output\n\nTo enable debug logging you must set the environment variable:  \n`RUST_LOG=shaysbot=debug,info` (error, warn, info, debug, trace)  \nThe first is the log level of the bot, the second is of dependencies.\n\n## Installation Methods\n\n### Binaries: [Latest] | [Releases]\n\nCompiled with [GitHub Actions](.github/workflows/release.yml) using the [**Debug**](#cargo-profiles) profile.\n\n### Docker\nPull from the image `ghcr.io/ShayBox/ShaysBot`. Available tags are listed\n[here](https://github.com/ShayBox/ShaysBot/pkgs/container/shaysbot/versions). \n\nAll configuration files are in the container's working directory, `/config`. If using a bind mount\nfor this directory, make sure `config` mount point on the host has the proper permissions and\nownership set for the application to be able to access it inside the container.\n\nFor an example `compose.yaml` file for use with Docker Compose, see\n[`compose.example.yaml`](./compose.example.yaml).\n\n### Install or Develop Locally\n\nPrerequisites:\n\n- 2GIB of RAM/SWAP (To build locally, much less to run)\n- Update\n    - ArchLinux: `sudo pacman -Syu`\n    - Debian/Ubuntu: `sudo apt update \u0026\u0026 sudo apt upgrade`\n    - Fedora: `sudo dnf upgrade`\n    - Other: Ask [Google], [ChatGPT], or [Deepseek]\n- LLVM (Clang/LLD)\n    - Windows: `winget install -e --id LLVM.LLVM` or [Visual Studio]\n    - ArchLinux: `sudo pacman -S base-devel clang lld`\n    - Debian/Ubuntu: `sudo apt install build-essential clang lld`\n    - Fedora: `sudo dnf install clang lld`\n    - Other: Ask [Google], [ChatGPT], or [Deepseek]\n- Rust (Cargo/Rustup)\n    - Windows: `winget install -e --id Rustlang.Rustup`\n    - ArchLinux: `sudo pacman -S rustup`\n    - Debian 13+: `sudo apt install rustup`\n    - Ubuntu 24.04+: `sudo apt/snap install rustup`\n    - Other: [Rustup]\n\nTroubleshooting:\n\n- No space left on device - Your /tmp directory is too small or full\n    - `sudo mount -o remount,size=1G /tmp \u0026\u0026 rm -rf /tmp/cargo-install*`\n\nTmux Helper Script:\nYou may want to use tmux or screen to keep it running,  \nHere's a helper script I use to make it easier.\n\n```bash\n#!/usr/bin/env bash\n\nif ! tmux has-session -t ShaysBot 2\u003e/dev/null\nthen\n    tmux new -d -s ShaysBot \"RUST_LOG=shaysbot=debug,info ~/.cargo/bin/shaysbot\"\nfi\n\ntmux attach -t ShaysBot\n```\n\n### Install (Recommended) - Compiled Locally\n\n1. `rustup toolchain install nightly`\n2. `cargo +nightly install --git https://github.com/ShayBox/ShaysBot`\n3. `mkdir pearl-bot`\n4. `shaysbot`\n\n### Build (Development) - You should know Rust!\n\n1. `git clone git@github.com:ShayBox/ShaysBot.git`\n2. `cd ShaysBot`\n3. Run: `cargo run`\n4. Build: `cargo build` (`target/debug/shaysbot`)\n5. Install: `cargo install --path .` (`shaysbot`)\n\n### Cargo Profiles\n\nRun and Build use **Debug** while Install uses **Release**.  \nYou can manually override with either: `--debug` or `--release`\n\n**Debug** includes debug symbols which makes it easier to debug and decompile.  \n**Release** has more optimizations, runs faster, and uses less disk space.\n\n**Debug**: Settings are relative to the **binary executable directory**.  \n**Release**: Settings are relative to the **current working directory**.\n\n## Features\n\n### Commands\n\n- [**Interact**](src/commands/interact.rs) - Send an interact block packet at the given coordinates\n- [**Join**](src/commands/join.rs) - Connect an account to the server by enabling `AutoReconnect`\n- [**Leave**](src/commands/leave.rs) - Disconnect an account from the server and disable `AutoReconnect`\n- [**Pearl**](src/commands/pearl.rs) - Automatically pull the closest stasis chamber at a `location`\n- [**Playtime**](src/commands/playtime.rs) - Fetch a players play time using `2b2t.vc`\n- [**Seen**](src/commands/seen.rs) - Fetch a players first and last seen time using `2b2t.vc`\n- [**Whitelist**](src/commands/whitelist.rs) - Add or remove players from the whitelist or link their Discord\n\n### Modules\n\n- [**AntiAfk**](src/modules/anti_afk.rs) - Automatically swing arm to avoid being kicked\n- [**AutoEat**](src/modules/auto_eat.rs) - Automatically eat food to avoid starving to death\n- [**AutoKill**](src/modules/auto_kill.rs) - Automatically swap and attack nearby monsters\n- [**AutoLeave**](src/modules/auto_leave.rs) - Automatically leave the server when in danger\n- [**AutoLook**](src/modules/auto_look.rs) - Automatically look at the closest player in range\n- [**AutoPearl**](src/modules/auto_pearl.rs) - Automatically goto and pull player stasis chambers\n- [**AutoTotem**](src/modules/auto_totem.rs) - Automatically equip totems of undying to avoid dying\n- [**AutoWhitelist**](src/modules/auto_whitelist.rs) - Automatically whitelist players that enter range\n- [**DiscordLogger**](src/modules/discord_logger.rs) - Log events such as `Visual Range` to Discord\n\n### Parsers\n\n- [**Discord**](src/parsers/discord.rs) - Discord chat command parsing integration\n- [**HttpApi**](src/parsers/http_api.rs) - Local HTTP API command parsing integration\n- [**Minecraft**](src/parsers/minecraft.rs) - Minecraft chat command parsing integration\n\n### Settings\n\n- [**GlobalSettings**](src/settings/global.rs) - Global Swarm Settings that apply to every account\n- [**LocalSettings**](src/settings/local.rs) - Local Account Settings that apply per-account\n- [**StasisChambers**](src/settings/stasis.rs) - Global Stasis Chambers\n\n### Trackers\n\n- [**BlockStates**](src/trackers/block_state.rs) - Tracks block states for trapdoor closes\n- [**EnderPearls**](src/trackers/ender_pearl.rs) - Tracks ender pearls for new chambers\n- [**GameTicks**](src/trackers/game_tick.rs) - Tracks game ticks for counting intervals\n- [**PlayerProfiles**](src/trackers/player_profile.rs) - Tracks player profiles for visual range\n\n[Azalea]: https://github.com/azalea-rs/azalea\n\n[ChatGPT]: https://chatgpt.com\n\n[Deepseek]: https://chat.deepseek.com\n\n[Google]: https://google.com\n\n[Latest]: https://github.com/shaybox/shaysbot/releases/latest\n\n[No Chat Reports]: https://github.com/Aizistral-Studios/No-Chat-Reports\n\n[Releases]: https://github.com/shaybox/shaysbot/releases\n\n[Rustup]: https://rustup.rs\n\n[Visual Studio]: https://visualstudio.microsoft.com\n\n[ZenithProxy]: https://github.com/rfresh2/ZenithProxy","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaybox%2Fshaysbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshaybox%2Fshaysbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshaybox%2Fshaysbot/lists"}