aboutsummaryrefslogtreecommitdiff
path: root/azalea/src/lib.rs
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2023-05-16 23:26:45 -0500
committermat <git@matdoes.dev>2023-05-16 23:26:45 -0500
commit2ba7b83490f5fb6e40a4e94da743bebe23cd7862 (patch)
tree730115f764f623069b490f62101c229726da815a /azalea/src/lib.rs
parent0cc76dfb67e852868e30d1c8529826c41a18e9d1 (diff)
downloadazalea-drasl-2ba7b83490f5fb6e40a4e94da743bebe23cd7862.tar.xz
ClientBuilder::new_without_plugins
Diffstat (limited to 'azalea/src/lib.rs')
-rw-r--r--azalea/src/lib.rs34
1 files changed, 30 insertions, 4 deletions
diff --git a/azalea/src/lib.rs b/azalea/src/lib.rs
index dcfa43b1..09e88534 100644
--- a/azalea/src/lib.rs
+++ b/azalea/src/lib.rs
@@ -20,7 +20,7 @@ pub use azalea_core::{BlockPos, Vec3};
pub use azalea_protocol as protocol;
pub use azalea_registry::{Block, EntityKind, Item};
pub use azalea_world::{entity, Instance};
-use bot::DefaultBotPlugins;
+pub use bot::DefaultBotPlugins;
use ecs::component::Component;
use futures::Future;
use protocol::{
@@ -81,16 +81,42 @@ where
/// Start building a client that can join the world.
#[must_use]
pub fn new() -> Self {
+ Self::new_without_plugins()
+ .add_plugins(DefaultPlugins)
+ .add_plugins(DefaultBotPlugins)
+ }
+
+ /// [`Self::new`] but without adding the plugins by default. This is useful
+ /// if you want to disable a default plugin.
+ ///
+ /// You **must** add [`DefaultPlugins`] and [`DefaultBotPlugins`] to this.
+ ///
+ /// ```
+ /// # use azalea::prelude::*;
+ /// use azalea::{app::PluginGroup, DefaultBotPlugins, DefaultPlugins};
+ /// use bevy_log::LogPlugin;
+ ///
+ /// let client = ClientBuilder::new_without_plugins()
+ /// .add_plugins(DefaultPlugins.build().disable::<LogPlugin>())
+ /// .add_plugins(DefaultBotPlugins);
+ /// # client.set_handler(handle);
+ /// # #[derive(Component, Clone, Default)]
+ /// # pub struct State;
+ /// # async fn handle(mut bot: Client, event: Event, state: State) -> anyhow::Result<()> {
+ /// # Ok(())
+ /// # }
+ /// ```
+ #[must_use]
+ pub fn new_without_plugins() -> Self {
Self {
// we create the app here so plugins can add onto it.
// the schedules won't run until [`Self::start`] is called.
- app: init_ecs_app(),
-
+ app: App::new(),
handler: None,
state: S::default(),
}
- .add_plugins(DefaultBotPlugins)
}
+
/// Set the function that's called every time a bot receives an [`Event`].
/// This is the way to handle normal per-bot events.
///