From 7c15621b32754c48889b2f6ecd724853e6c05f83 Mon Sep 17 00:00:00 2001 From: ccgauche Date: Sat, 12 Dec 2020 16:02:58 +0100 Subject: [PATCH] Added plugin command support --- assets/plugins/hello.plugin.tar | Bin 1685504 -> 1692160 bytes common/src/lib.rs | 2 + common/src/sync/uid.rs | 7 +++ plugin/api/src/lib.rs | 29 ++++++++++-- plugin/hello/Cargo.lock | 1 - plugin/hello/Cargo.toml | 1 - plugin/hello/src/lib.rs | 9 +++- plugin/rt/src/lib.rs | 2 + server/src/lib.rs | 79 +++++++++++++++++++++++--------- 9 files changed, 101 insertions(+), 29 deletions(-) diff --git a/assets/plugins/hello.plugin.tar b/assets/plugins/hello.plugin.tar index 358e51550a2ff0f3bad347ba0dfd25ba88910687..4e054cf8000acc913c35a0b3dd51c02dc1914961 100644 GIT binary patch delta 110911 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 Wt9&XLnI4#N5c)qQE4vTM&Ho2ElE)7K delta 105562 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 z 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 Qglc&F92erJbDTx}A462ix&QzG diff --git a/common/src/lib.rs b/common/src/lib.rs index 145d62a593..6bef59fea8 100644 --- a/common/src/lib.rs +++ b/common/src/lib.rs @@ -17,6 +17,8 @@ option_zip )] +pub extern crate plugin_api; + pub mod assets; pub mod astar; pub mod character; diff --git a/common/src/sync/uid.rs b/common/src/sync/uid.rs index cff2dc9664..495aba2293 100644 --- a/common/src/sync/uid.rs +++ b/common/src/sync/uid.rs @@ -13,6 +13,13 @@ impl Into for Uid { fn into(self) -> u64 { self.0 } } + +impl Into for Uid { + fn into(self) -> plugin_api::Uid { + plugin_api::Uid(self.0) + } +} + impl From for Uid { fn from(uid: u64) -> Self { Self(uid) } } diff --git a/plugin/api/src/lib.rs b/plugin/api/src/lib.rs index 2619f5de9e..3c6127cded 100644 --- a/plugin/api/src/lib.rs +++ b/plugin/api/src/lib.rs @@ -12,11 +12,34 @@ pub trait Event: Serialize + DeserializeOwned{ type Response: Serialize + DeserializeOwned; } +// TODO: Unify this with common/src/comp/uid.rs:Uid +#[derive(Copy, Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] +pub struct Uid(pub u64); + pub mod events { + + use crate::Uid; + use super::Event; use serde::{Serialize,Deserialize}; - #[derive(Serialize, Deserialize, Debug)] + #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] + pub struct ChatCommandEvent { + pub command: String, + pub command_args: Vec, + pub player: Player, + } + + impl Event for ChatCommandEvent { + type Response = Result, String>; + } + + #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] + pub struct Player { + pub id: Uid, + } + + #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] pub struct PlayerJoinEvent { pub player_name: String, pub player_id: usize @@ -26,7 +49,7 @@ pub mod events { type Response = PlayerJoinResult; } - #[derive(Serialize, Deserialize, Debug)] + #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] pub enum PlayerJoinResult { CloseConnection, None @@ -38,7 +61,7 @@ pub mod events { } } - #[derive(Serialize, Deserialize, Debug)] + #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq)] pub struct PluginLoadEvent; impl Event for PluginLoadEvent { diff --git a/plugin/hello/Cargo.lock b/plugin/hello/Cargo.lock index 28c9d0d77f..2d5d3dbb68 100644 --- a/plugin/hello/Cargo.lock +++ b/plugin/hello/Cargo.lock @@ -20,7 +20,6 @@ checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" name = "hello" version = "0.1.0" dependencies = [ - "veloren-plugin-api", "veloren-plugin-rt", ] diff --git a/plugin/hello/Cargo.toml b/plugin/hello/Cargo.toml index bb4d5fc40e..2368f8ca00 100644 --- a/plugin/hello/Cargo.toml +++ b/plugin/hello/Cargo.toml @@ -9,6 +9,5 @@ crate-type = ["cdylib"] [dependencies] plugin-rt = { package = "veloren-plugin-rt", path = "../rt" } -plugin-api = { package = "veloren-plugin-api", path = "../api" } [workspace] diff --git a/plugin/hello/src/lib.rs b/plugin/hello/src/lib.rs index b781880064..1d15335a46 100644 --- a/plugin/hello/src/lib.rs +++ b/plugin/hello/src/lib.rs @@ -1,7 +1,7 @@ -pub extern crate plugin_rt; +extern crate plugin_rt; use plugin_rt::*; -use plugin_api::{Action, events::*}; +use plugin_rt::api::{Action, events::*}; #[event_handler] pub fn on_load(load: PluginLoadEvent) -> () { @@ -9,6 +9,11 @@ pub fn on_load(load: PluginLoadEvent) -> () { println!("Hello world"); } +#[event_handler] +pub fn on_command_testplugin(command: ChatCommandEvent) -> Result, String> { + Ok(vec![format!("Player of id {:?} sended command with args {:?}",command.player,command.command_args)]) +} + #[event_handler] pub fn on_player_join(input: PlayerJoinEvent) -> PlayerJoinResult { send_actions(vec![Action::PlayerSendMessage(input.player_id,format!("Welcome {} on our server",input.player_name))]); diff --git a/plugin/rt/src/lib.rs b/plugin/rt/src/lib.rs index e5f459a6b3..fdbb5b773e 100644 --- a/plugin/rt/src/lib.rs +++ b/plugin/rt/src/lib.rs @@ -1,5 +1,7 @@ #![feature(const_fn)] +pub extern crate plugin_derive; + pub use plugin_api as api; pub use plugin_derive::*; diff --git a/server/src/lib.rs b/server/src/lib.rs index 4ee22c485c..1dc02f3182 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -46,22 +46,9 @@ use crate::{ state_ext::StateExt, sys::sentinel::{DeletedEntities, TrackedComps}, }; -use common::{ - assets::Asset, - cmd::ChatCommand, - comp::{self, ChatType}, - event::{EventBus, ServerEvent}, - msg::{ +use common::{assets::Asset, cmd::ChatCommand, comp::{self, ChatType}, event::{EventBus, ServerEvent}, msg::{ ClientType, DisconnectReason, ServerGeneral, ServerInfo, ServerInit, ServerMsg, WorldMapMsg, - }, - outcome::Outcome, - recipe::default_recipe_book, - resources::TimeOfDay, - rtsim::RtSimEntity, - sync::WorldSyncExt, - terrain::TerrainChunkSize, - vol::{ReadVol, RectVolSize}, -}; + }, outcome::Outcome, plugin::PluginMgr, recipe::default_recipe_book, resources::TimeOfDay, rtsim::RtSimEntity, sync::{Uid, WorldSyncExt}, terrain::TerrainChunkSize, vol::{ReadVol, RectVolSize}}; use common_sys::state::State; use futures_executor::block_on; use metrics::{PhysicsMetrics, ServerMetrics, StateTickMetrics, TickMetrics}; @@ -1008,13 +995,61 @@ impl Server { if let Ok(command) = kwd.parse::() { command.execute(self, entity, args); } else { - self.notify_client( - entity, - ChatType::CommandError.server_msg(format!( - "Unknown command '/{}'.\nType '/help' for available commands", - kwd - )), - ); + let plugin_manager = self.state.ecs().read_resource::(); + let rs = plugin_manager.execute_event(&format!("on_command_{}",&kwd), &common::plugin_api::events::ChatCommandEvent { + command: kwd.clone(), + command_args: args.split(" ").map(|x| x.to_owned()).collect(), + player: common::plugin_api::events::Player { + id: (*(self.state.ecs().read_storage::().get(entity).expect("Can't get player UUID [This should never appen]"))).into() + }, + }); + match rs { + Ok(e) => { + if e.is_empty() { + self.notify_client( + entity, + ChatType::CommandError.server_msg(format!( + "Unknown command '/{}'.\nType '/help' for available commands", + kwd + )) + ); + } else { + e.into_iter().for_each(|e| { + match e { + Ok(e) => { + if !e.is_empty() { + self.notify_client( + entity, + ChatType::CommandInfo.server_msg(e.join("\n")), + ); + } + }, + Err(e) => { + self.notify_client( + entity, + ChatType::CommandError.server_msg(format!( + "Error occurred while executing command '/{}'.\n{}", + kwd, + e + )), + ); + } + } + }); + } + }, + Err(e) => { + error!(?e, "Can't execute command {} {}",kwd,args); + self.notify_client( + entity, + ChatType::CommandError.server_msg(format!( + "Internal error while executing '/{}'.\nContact the server administrator", + kwd + )) + ); + } + } + } }