azalea

Struct ClientBuilder

Source
pub struct ClientBuilder<S>
where S: Default + Send + Sync + Clone + Component + 'static,
{ /* private fields */ }
Expand description

A builder for creating new Clients. This is the recommended way of making Azalea bots.

ClientBuilder::new()
    .set_handler(handle)
    .start(Account::offline("bot"), "localhost")
    .await;

Implementations§

Source§

impl ClientBuilder<NoState>

Source

pub fn new() -> ClientBuilder<NoState>

Start building a client that can join the world.

Source

pub fn new_without_plugins() -> ClientBuilder<NoState>

Self::new but without adding the plugins by default. This is useful if you want to disable a default plugin.

Note that you can also disable LogPlugin by disabling the log feature.

You must add DefaultPlugins and DefaultBotPlugins to this.

use azalea::{app::PluginGroup, DefaultBotPlugins, DefaultPlugins};
use bevy_log::LogPlugin;

let client_builder = ClientBuilder::new_without_plugins()
    .add_plugins(DefaultPlugins.build().disable::<LogPlugin>())
    .add_plugins(DefaultBotPlugins);
Source

pub fn set_handler<S, Fut>(self, handler: HandleFn<S, Fut>) -> ClientBuilder<S>
where S: Default + Send + Sync + Clone + Component + 'static, Fut: Future<Output = Result<(), Error>> + Send + 'static,

Set the function that’s called every time a bot receives an Event. This is the way to handle normal per-bot events.

Currently you can have up to one client handler.

client_builder.set_handler(handle);

async fn handle(mut bot: Client, event: Event, state: State) -> anyhow::Result<()> {
    Ok(())
}
Source§

impl<S> ClientBuilder<S>
where S: Default + Send + Sync + Clone + Component + 'static,

Source

pub fn set_state(self, state: S) -> Self

Set the client state instead of initializing defaults.

Source

pub fn add_plugins<M>(self, plugins: impl Plugins<M>) -> Self

Add a group of plugins to the client.

Source

pub async fn start( self, account: Account, address: impl TryInto<ServerAddress>, ) -> Result<!, StartError>

Build this ClientBuilder into an actual Client and join the given server. If the client can’t join, it’ll keep retrying forever until it can.

The address argument can be a &str, ServerAddress, or anything that implements TryInto<ServerAddress>.

§Errors

This will error if the given address is invalid or couldn’t be resolved to a Minecraft server.

Source

pub async fn start_with_opts( self, account: Account, address: impl TryInto<ServerAddress>, opts: JoinOpts, ) -> Result<!, StartError>

Do the same as Self::start, but allow passing in custom join options.

Trait Implementations§

Source§

impl Default for ClientBuilder<NoState>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<S> !Freeze for ClientBuilder<S>

§

impl<S> !RefUnwindSafe for ClientBuilder<S>

§

impl<S> !Send for ClientBuilder<S>

§

impl<S> !Sync for ClientBuilder<S>

§

impl<S> Unpin for ClientBuilder<S>
where S: Unpin,

§

impl<S> !UnwindSafe for ClientBuilder<S>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

§

fn type_name(&self) -> &'static str

Gets the type name of self
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> Downcast for T
where T: AsAny + ?Sized,

§

fn is<T>(&self) -> bool
where T: AsAny,

Returns true if the boxed type is the same as T. Read more
§

fn downcast_ref<T>(&self) -> Option<&T>
where T: AsAny,

Forward to the method defined on the type Any.
§

fn downcast_mut<T>(&mut self) -> Option<&mut T>
where T: AsAny,

Forward to the method defined on the type Any.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromWorld for T
where T: Default,

§

fn from_world(_world: &mut World) -> T

Creates Self using data from the given [World].
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more