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 config;
|
||||||
pub mod directories;
|
pub mod directories;
|
||||||
|
pub mod events;
|
||||||
pub mod java;
|
pub mod java;
|
||||||
pub mod plugin;
|
pub mod plugin;
|
||||||
|
|
||||||
@ -16,12 +17,16 @@ use java::{
|
|||||||
resources::{cleanup_stale_files, sync_embedded_resources},
|
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> {
|
async fn on_load_inner(plugin: &mut PatchBukkitPlugin, server: Arc<Context>) -> Result<(), String> {
|
||||||
server.init_log();
|
server.init_log();
|
||||||
log::info!("Starting PatchBukkit");
|
log::info!("Starting PatchBukkit");
|
||||||
|
|
||||||
|
register_handlers(&server).await;
|
||||||
|
|
||||||
// Setup directories
|
// Setup directories
|
||||||
let dirs = setup_directories(&server)?;
|
let dirs = setup_directories(&server)?;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user