mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 23:44:38 +00:00
improve docs a bit
This commit is contained in:
parent
3d22b5b91c
commit
03cc28d8e7
6 changed files with 27 additions and 17 deletions
|
@ -122,10 +122,11 @@ impl ChatPacket {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Client {
|
impl Client {
|
||||||
/// Sends chat message to the server. This only sends the chat packet and
|
/// Send a chat message to the server. This only sends the chat packet and
|
||||||
/// not the command packet. The [`Client::chat`] function handles checking
|
/// not the command packet, which means on some servers you can use this to
|
||||||
/// whether the message is a command and using the proper packet for you,
|
/// send chat messages that start with a `/`. The [`Client::chat`] function
|
||||||
/// so you should use that instead.
|
/// handles checking whether the message is a command and using the
|
||||||
|
/// proper packet for you, so you should use that instead.
|
||||||
pub fn send_chat_packet(&self, message: &str) {
|
pub fn send_chat_packet(&self, message: &str) {
|
||||||
self.ecs.lock().send_event(SendChatKindEvent {
|
self.ecs.lock().send_event(SendChatKindEvent {
|
||||||
entity: self.entity,
|
entity: self.entity,
|
||||||
|
|
|
@ -133,7 +133,8 @@ pub enum JoinError {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Client {
|
impl Client {
|
||||||
/// Create a new client from the given GameProfile, Connection, and World.
|
/// Create a new client from the given [`GameProfile`], ECS Entity, ECS
|
||||||
|
/// World, and schedule runner function.
|
||||||
/// You should only use this if you want to change these fields from the
|
/// You should only use this if you want to change these fields from the
|
||||||
/// defaults, otherwise use [`Client::join`].
|
/// defaults, otherwise use [`Client::join`].
|
||||||
pub fn new(
|
pub fn new(
|
||||||
|
@ -562,9 +563,9 @@ impl Client {
|
||||||
/// Get the username of this client.
|
/// Get the username of this client.
|
||||||
///
|
///
|
||||||
/// This is a shortcut for
|
/// This is a shortcut for
|
||||||
/// `bot.component::<GameProfileComponent>().name.clone()`.
|
/// `bot.component::<GameProfileComponent>().name.to_owned()`.
|
||||||
pub fn username(&self) -> String {
|
pub fn username(&self) -> String {
|
||||||
self.component::<GameProfileComponent>().name.clone()
|
self.component::<GameProfileComponent>().name.to_owned()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get the Minecraft UUID of this client.
|
/// Get the Minecraft UUID of this client.
|
||||||
|
|
|
@ -56,6 +56,8 @@ impl Client {
|
||||||
/// }
|
/// }
|
||||||
/// # }
|
/// # }
|
||||||
/// ```
|
/// ```
|
||||||
|
///
|
||||||
|
/// [`Entity`]: bevy_ecs::entity::Entity
|
||||||
pub fn entity_by<F: ReadOnlyWorldQuery, Q: ReadOnlyWorldQuery>(
|
pub fn entity_by<F: ReadOnlyWorldQuery, Q: ReadOnlyWorldQuery>(
|
||||||
&mut self,
|
&mut self,
|
||||||
predicate: impl EntityPredicate<Q, F>,
|
predicate: impl EntityPredicate<Q, F>,
|
||||||
|
|
|
@ -36,6 +36,8 @@ impl PartialInstance {
|
||||||
|
|
||||||
/// An entity ID used by Minecraft. These are not guaranteed to be unique in
|
/// An entity ID used by Minecraft. These are not guaranteed to be unique in
|
||||||
/// shared worlds, that's what [`Entity`] is for.
|
/// shared worlds, that's what [`Entity`] is for.
|
||||||
|
///
|
||||||
|
/// [`Entity`]: bevy_ecs::entity::Entity
|
||||||
#[derive(Component, Copy, Clone, Debug, PartialEq, Eq, Deref, DerefMut)]
|
#[derive(Component, Copy, Clone, Debug, PartialEq, Eq, Deref, DerefMut)]
|
||||||
pub struct MinecraftEntityId(pub u32);
|
pub struct MinecraftEntityId(pub u32);
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
Azalea is a framework for creating Minecraft bots.
|
Azalea is a framework for creating Minecraft bots.
|
||||||
|
|
||||||
Internally, it's just a wrapper over [`azalea_client`], adding useful
|
This page is primarily meant for developers that already know they want to use Azalea.
|
||||||
functions for making bots. Because of this, lots of the documentation will
|
See the [readme](https://github.com/azalea-rs/azalea) for an overview of why you might want to use it.
|
||||||
refer to `azalea_client`. You can just replace these with `azalea` in your
|
|
||||||
code, since everything from azalea_client is re-exported in azalea.
|
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
@ -12,10 +10,8 @@ default nightly`.
|
||||||
|
|
||||||
Then, add one of the following lines to your Cargo.toml:
|
Then, add one of the following lines to your Cargo.toml:
|
||||||
|
|
||||||
Latest bleeding-edge version (recommended):
|
- Latest bleeding-edge version (recommended): `azalea = { git="https://github.com/azalea-rs/azalea" }`\
|
||||||
`azalea = { git="https://github.com/azalea-rs/azalea" }`\
|
- Latest "stable" release: `azalea = "0.8.0"`
|
||||||
Latest "stable" release:
|
|
||||||
`azalea = "0.8.0"`
|
|
||||||
|
|
||||||
## Optimization
|
## Optimization
|
||||||
|
|
||||||
|
@ -32,6 +28,14 @@ opt-level = 1
|
||||||
[profile.dev.package."*"]
|
[profile.dev.package."*"]
|
||||||
opt-level = 3
|
opt-level = 3
|
||||||
```
|
```
|
||||||
|
# Documentation
|
||||||
|
|
||||||
|
The documentation for the latest Azalea crates.io release is available at [docs.rs/azalea](https://docs.rs/azalea/latest/azalea/) and the docs for the latest bleeding-edge (git) version are at [azalea.matdoes.dev](https://azalea.matdoes.dev/azalea/).
|
||||||
|
|
||||||
|
Note that the `azalea` crate is technically just a wrapper over [`azalea_client`] that adds some extra functions.
|
||||||
|
Because of this, some of the documentation will refer to `azalea_client`.
|
||||||
|
You can just replace these with `azalea` in your code since everything from `azalea_client` is re-exported in azalea.
|
||||||
|
|
||||||
|
|
||||||
# Examples
|
# Examples
|
||||||
|
|
||||||
|
@ -73,7 +77,7 @@ async fn handle(bot: Client, event: Event, state: State) -> anyhow::Result<()> {
|
||||||
|
|
||||||
# Swarms
|
# Swarms
|
||||||
|
|
||||||
Azalea lets you create "swarms", which are a group of bots in the same world that can perform actions together. See [testbot](https://github.com/azalea-rs/azalea/blob/main/azalea/examples/testbot.rs) for an example. Also, if you're using swarms, you should also have both `azalea::prelude::*` and `azalea::swarm::prelude::*`.
|
Azalea lets you create "swarms", which are a group of bots in the same world that can perform actions together. See [testbot](https://github.com/azalea-rs/azalea/blob/main/azalea/examples/testbot.rs) for an example. Also, if you're using swarms, you should also `use` both `azalea::prelude::*` and `azalea::swarm::prelude::*`.
|
||||||
|
|
||||||
# Plugins
|
# Plugins
|
||||||
|
|
||||||
|
|
|
@ -58,9 +58,9 @@ impl Plugin for PathfinderPlugin {
|
||||||
.add_event::<PathFoundEvent>()
|
.add_event::<PathFoundEvent>()
|
||||||
.add_event::<StopPathfindingEvent>()
|
.add_event::<StopPathfindingEvent>()
|
||||||
.add_systems(
|
.add_systems(
|
||||||
FixedUpdate,
|
|
||||||
// putting systems in the FixedUpdate schedule makes them run every Minecraft tick
|
// putting systems in the FixedUpdate schedule makes them run every Minecraft tick
|
||||||
// (every 50 milliseconds).
|
// (every 50 milliseconds).
|
||||||
|
FixedUpdate,
|
||||||
(
|
(
|
||||||
timeout_movement,
|
timeout_movement,
|
||||||
check_node_reached,
|
check_node_reached,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue