azalea/
lib.rs

1#![doc = include_str!("../README.md")]
2#![feature(type_changing_struct_update)]
3
4pub mod accept_resource_packs;
5pub mod auto_reconnect;
6pub mod auto_respawn;
7pub mod auto_tool;
8pub mod bot;
9mod builder;
10mod client_impl;
11pub mod container;
12mod entity_ref;
13pub mod events;
14mod join_opts;
15pub mod nearest_entity;
16pub mod pathfinder;
17pub mod prelude;
18pub mod swarm;
19pub mod tick_broadcast;
20
21pub use azalea_auth as auth;
22pub use azalea_block as block;
23#[doc(hidden)]
24#[deprecated = "moved to `azalea::block`"]
25pub mod blocks {
26    pub type BlockStates = azalea_block::BlockStates;
27    pub type BlockState = azalea_block::BlockState;
28    pub trait BlockTrait: azalea_block::BlockTrait {}
29    // azalea_block has more items but rust doesn't mark them deprecated if we
30    // `use azalea_block::*`, so hopefully the three types above are enough for
31    // most users :(
32}
33
34pub use azalea_brigadier as brigadier;
35pub use azalea_buf as buf;
36pub use azalea_chat::FormattedText;
37pub use azalea_client::*;
38pub use azalea_core as core;
39// these are re-exported on this level because they're very common
40pub use azalea_core::position::{BlockPos, Vec3};
41pub use azalea_entity as entity;
42pub use azalea_physics as physics;
43pub use azalea_protocol as protocol;
44pub use azalea_registry as registry;
45#[doc(hidden)]
46#[deprecated(note = "renamed to `Identifier`.")]
47pub type ResourceLocation = azalea_registry::identifier::Identifier;
48pub use azalea_registry::identifier::Identifier;
49pub use azalea_world as world;
50pub use bevy_app as app;
51pub use bevy_ecs as ecs;
52use bevy_ecs::component::Component;
53pub use builder::ClientBuilder;
54use futures::future::BoxFuture;
55pub use join_opts::JoinOpts;
56
57pub use crate::{client_impl::Client, entity_ref::EntityRef, events::Event};
58
59pub type BoxHandleFn<S, R> = Box<dyn Fn(Client, Event, S) -> BoxFuture<'static, R> + Send>;
60pub type HandleFn<S, Fut> = fn(Client, Event, S) -> Fut;
61
62/// A marker that can be used in place of a State in [`ClientBuilder`] or
63/// [`SwarmBuilder`].
64///
65/// You probably don't need to use this manually since the compiler will infer
66/// it for you.
67///
68/// [`SwarmBuilder`]: swarm::SwarmBuilder
69#[derive(Clone, Component, Default)]
70pub struct NoState;