Add basic join handler
This commit is contained in:
parent
f1df8cad23
commit
9bd777d216
25
rust/src/events/join.rs
Normal file
25
rust/src/events/join.rs
Normal file
@ -0,0 +1,25 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use pumpkin::{
|
||||
plugin::{BoxFuture, EventHandler, player::player_join::PlayerJoinEvent},
|
||||
server::Server,
|
||||
};
|
||||
use pumpkin_api_macros::with_runtime;
|
||||
use pumpkin_util::text::{TextComponent, color::NamedColor};
|
||||
|
||||
pub struct PatchBukkitJoinHandler;
|
||||
|
||||
#[with_runtime(global)]
|
||||
impl EventHandler<PlayerJoinEvent> for PatchBukkitJoinHandler {
|
||||
fn handle_blocking<'a>(
|
||||
&self,
|
||||
_server: &Arc<Server>,
|
||||
event: &'a mut PlayerJoinEvent,
|
||||
) -> BoxFuture<'a, ()> {
|
||||
Box::pin(async {
|
||||
event.join_message =
|
||||
TextComponent::text(format!("Welcome, {}!", event.player.gameprofile.name))
|
||||
.color_named(NamedColor::Green);
|
||||
})
|
||||
}
|
||||
}
|
||||
17
rust/src/events/mod.rs
Normal file
17
rust/src/events/mod.rs
Normal file
@ -0,0 +1,17 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use pumpkin::plugin::{Context, EventPriority};
|
||||
|
||||
use crate::events::join::PatchBukkitJoinHandler;
|
||||
|
||||
pub mod join;
|
||||
|
||||
pub async fn register_handlers(server: &Arc<Context>) {
|
||||
server
|
||||
.register_event(
|
||||
Arc::new(PatchBukkitJoinHandler),
|
||||
EventPriority::Highest,
|
||||
true,
|
||||
)
|
||||
.await;
|
||||
}
|
||||
@ -6,6 +6,7 @@ use pumpkin_api_macros::{plugin_impl, plugin_method};
|
||||
|
||||
pub mod config;
|
||||
pub mod directories;
|
||||
pub mod events;
|
||||
pub mod java;
|
||||
pub mod plugin;
|
||||
|
||||
@ -16,12 +17,16 @@ use java::{
|
||||
resources::{cleanup_stale_files, sync_embedded_resources},
|
||||
};
|
||||
|
||||
use crate::{java::jar::read_configs_from_jar, plugin::manager::PluginManager};
|
||||
use crate::{
|
||||
events::register_handlers, java::jar::read_configs_from_jar, plugin::manager::PluginManager,
|
||||
};
|
||||
|
||||
async fn on_load_inner(plugin: &mut PatchBukkitPlugin, server: Arc<Context>) -> Result<(), String> {
|
||||
server.init_log();
|
||||
log::info!("Starting PatchBukkit");
|
||||
|
||||
register_handlers(&server).await;
|
||||
|
||||
// Setup directories
|
||||
let dirs = setup_directories(&server)?;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user