pub struct ClientBuilder<S>{ /* private fields */ }
Expand description
A builder for creating new Client
s. 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>
impl ClientBuilder<NoState>
Sourcepub fn new() -> ClientBuilder<NoState>
pub fn new() -> ClientBuilder<NoState>
Start building a client that can join the world.
Sourcepub fn new_without_plugins() -> ClientBuilder<NoState>
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);
Sourcepub fn set_handler<S, Fut>(self, handler: HandleFn<S, Fut>) -> ClientBuilder<S>
pub fn set_handler<S, Fut>(self, handler: HandleFn<S, Fut>) -> ClientBuilder<S>
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>
impl<S> ClientBuilder<S>
Sourcepub fn set_state(self, state: S) -> Self
pub fn set_state(self, state: S) -> Self
Set the client state instead of initializing defaults.
Sourcepub fn add_plugins<M>(self, plugins: impl Plugins<M>) -> Self
pub fn add_plugins<M>(self, plugins: impl Plugins<M>) -> Self
Add a group of plugins to the client.
Sourcepub async fn start(
self,
account: Account,
address: impl TryInto<ServerAddress>,
) -> Result<!, StartError>
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.
Sourcepub async fn start_with_opts(
self,
account: Account,
address: impl TryInto<ServerAddress>,
opts: JoinOpts,
) -> Result<!, StartError>
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§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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 Twhere
T: AsAny + ?Sized,
impl<T> Downcast for Twhere
T: AsAny + ?Sized,
§fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
fn downcast_ref<T>(&self) -> Option<&T>where
T: AsAny,
Any
.§fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: AsAny,
Any
.§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given [World
].