1
2
Fork 0
mirror of https://github.com/mat-1/azalea.git synced 2025-08-02 06:16:04 +00:00
A collection of Rust crates for making Minecraft bots, clients, and tools. https://azalea.matdoes.dev
Find a file
mat 631ed63dbd
Swarm (#36)
* make azalea-pathfinder dir

* start writing d* lite impl

* more work on d* lite

* work more on implementing d* lite

* full d* lite impl

* updated edges

* add next() function

* add NoPathError

* why does dstar lite not work

* fix d* lite implementation

* make the test actually check the coords

* replace while loop with if statement

* fix clippy complaints

* make W only have to be PartialOrd

* fix PartialOrd issues

* implement mtd* lite

* add a test to mtd* lite

* remove normal d* lite

* make heuristic only take in one arg

* add `success` function

* Update README.md

* evil black magic to make .entity not need dimension

* start adding moves

* slightly improve the vec3/position situation

new macro that implements all the useful functions

* moves stuff

* make it compile

* update deps in az-pathfinder

* make it compile again

* more pathfinding stuff

* add Bot::look_at

* replace EntityMut and EntityRef with just Entity

* block pos pathfinding stuff

* rename movedirection to walkdirection

* execute path every tick

* advance path

* change az-pf version

* make azalea_client keep plugin state

* fix Plugins::get

* why does it think there is air

* start debugging incorrect air

* update some From methods to use rem_euclid

* start adding swarm

* fix deadlock

i still don't understand why it was happening but the solution was to keep the Client::player lock for shorter so it didn't overlap with the Client::dimension lock

* make lookat actually work probably

* fix going too fast

* Update main.rs

* make a thing immutable

* direction_looking_at

* fix rotations

* import swarm in an example

* fix stuff from merge

* remove azalea_pathfinder import

* delete azalea-pathfinder crate

already in azalea::pathfinder module

* swarms

* start working on shared dimensions

* Shared worlds work

* start adding Swarm::add_account

* add_account works

* change "client" to "bot" in some places

* Fix issues from merge

* Update world.rs

* add SwarmEvent::Disconnect(Account)

* almost add SwarmEvent::Chat and new plugin system

it panics rn

* make plugins have to provide the State associated type

* improve comments

* make fn build slightly cleaner

* fix SwarmEvent::Chat

* change a println in bot/main.rs

* Client::shutdown -> disconnect

* polish

fix clippy warnings + improve some docs a bit

* fix shared worlds*

*there's a bug that entities and bots will have their positions exaggerated because the relative movement packet is applied for every entity once per bot

* i am being trolled by rust

for some reason some stuff is really slow for literally no reason and it makes no sense i am going insane

* make world an RwLock again

* remove debug messages

* fix skipping event ticks

unfortunately now sending events is `.send().await?` instead of just `.send()`

* fix deadlock + warnings

* turns out my floor_mod impl was wrong

and i32::rem_euclid has the correct behavior LOL

* still errors with lots of bots

* make swarm iter & fix new chunks not loading

* improve docs

* start fixing tests

* fix all the tests

except the examples i don't know how to exclude them from the tests

* improve docs some more
2022-11-27 16:25:07 -06:00
.cargo Pathfinder (#25) 2022-11-12 23:54:05 -06:00
.github Create FUNDING.yml 2022-11-18 19:29:04 -06:00
.vscode simplify error handling 2022-04-22 04:33:58 +00:00
azalea Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-auth Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-block chore: Release 2022-11-19 15:25:55 -06:00
azalea-brigadier chore: Release 2022-11-19 15:25:55 -06:00
azalea-buf chore: Release 2022-11-19 15:25:55 -06:00
azalea-chat Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-client Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-core Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-crypto Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-language Update README.md 2022-11-19 16:32:49 -06:00
azalea-nbt chore: Release 2022-11-19 15:25:55 -06:00
azalea-physics Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-protocol Swarm (#36) 2022-11-27 16:25:07 -06:00
azalea-registry chore: Release 2022-11-19 15:25:55 -06:00
azalea-world Swarm (#36) 2022-11-27 16:25:07 -06:00
bot Swarm (#36) 2022-11-27 16:25:07 -06:00
codegen Replace lazy_static with once_cell::sync::Lazy (#43) 2022-11-19 15:21:54 -06:00
.gitignore Pathfinder (#25) 2022-11-12 23:54:05 -06:00
.gitpod.yml simplify error handling 2022-04-22 04:33:58 +00:00
Cargo.lock Swarm (#36) 2022-11-27 16:25:07 -06:00
Cargo.toml Pathfinder (#25) 2022-11-12 23:54:05 -06:00
LICENSE.md Create LICENSE.md 2022-10-30 14:49:46 -05:00
README.md Pathfinder (#25) 2022-11-12 23:54:05 -06:00

Azalea

docs.rs

A collection of Rust crates for making Minecraft bots, clients, and tools.

Azalea

Currently supported Minecraft version: 1.19.2.

⚠️ Azalea is still very unfinished, though most crates are in a somewhat useable state

I named this Azalea because it sounds like a cool word and this is a cool library. This project was heavily inspired by PrismarineJS.

Why

I wanted a fun excuse to do something cool with Rust, and I also felt like I could do better than Mineflayer in some areas.

Goals

  • Do everything a vanilla client can do.
  • Be intuitive and easy to use.
  • Make it easy to have many bots working at the same time.
  • Don't trigger anticheats.
  • Support the latest Minecraft version.
  • Be fast and memory efficient.

Non-goals

  • Supporting several versions of Minecraft on the same branch.
  • Bedrock edition.
  • Graphics.

Stretch goals

  • Server implementation. (if you're interested in making this then please contact me, I'd love for it to be a thing. @mat:matdoes.dev / mat#1592)
  • Having branches for several popular Minecraft versions.