From 910902dc1400601a688db12d33f946e7f9dc8e2b Mon Sep 17 00:00:00 2001 From: Kumpelinus Date: Sat, 11 Jul 2026 02:21:23 +0200 Subject: [PATCH 1/2] fix op command message --- src/default_commands/src/op.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/default_commands/src/op.rs b/src/default_commands/src/op.rs index c111b94f..ad0b69de 100644 --- a/src/default_commands/src/op.rs +++ b/src/default_commands/src/op.rs @@ -3,6 +3,7 @@ use temper_command_infra::args::EntitiesArg; use temper_command_infra::{CommandHandler, CommandResult, CommandSource}; use temper_components::entity_identity::Identity; use temper_components::player::player_marker::PlayerMarker; +use temper_core::mq; use temper_macros::Command; use temper_permissions::Access::Allow; use temper_permissions::Permissions; @@ -23,7 +24,7 @@ impl CommandHandler for OpCommand { fn handle( self, - source: CommandSource, + _source: CommandSource, params: &mut Self::SystemParam<'_, '_>, ) -> CommandResult { let (entities, permissions) = params; @@ -31,7 +32,11 @@ impl CommandHandler for OpCommand { for entity in self.target.resolve(entities.iter()) { if let Ok(mut player_permission) = permissions.get_mut(entity) { player_permission.set_permission(Permissions::ALL, Allow); - source.send_message(TextComponent::from("You have been opped".to_string())); + mq::queue( + TextComponent::from("You have been opped".to_string()), + false, + entity, + ); } } From d062e35c5b39830a5419094f880f02222684bd7b Mon Sep 17 00:00:00 2001 From: Kumpelinus Date: Sat, 11 Jul 2026 02:22:30 +0200 Subject: [PATCH 2/2] Add QoL messages to op command --- src/default_commands/src/op.rs | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/default_commands/src/op.rs b/src/default_commands/src/op.rs index ad0b69de..abd4b648 100644 --- a/src/default_commands/src/op.rs +++ b/src/default_commands/src/op.rs @@ -8,7 +8,7 @@ use temper_macros::Command; use temper_permissions::Access::Allow; use temper_permissions::Permissions; use temper_permissions::player::PlayerPermission; -use temper_text::TextComponent; +use temper_text::{Color, NamedColor, TextComponent, TextContent}; #[derive(Debug, Command)] #[command(name = "op", permission = Permissions::Op)] @@ -24,14 +24,35 @@ impl CommandHandler for OpCommand { fn handle( self, - _source: CommandSource, + source: CommandSource, params: &mut Self::SystemParam<'_, '_>, ) -> CommandResult { let (entities, permissions) = params; for entity in self.target.resolve(entities.iter()) { if let Ok(mut player_permission) = permissions.get_mut(entity) { + if player_permission.permissions.get(&Permissions::ALL) == Some(&Allow) { + source.send_message(TextComponent { + content: TextContent::Text { + text: "Nothing changed. The player is already an operator".to_string(), + }, + color: Some(Color::Named(NamedColor::Red)), + ..Default::default() + }); + continue; + } + player_permission.set_permission(Permissions::ALL, Allow); + + let Ok(Some(player_name)) = entities.get(entity).map(|e| &e.1.name) else { + return Err("player entity does not have a name".into()); + }; + + source.send_message(TextComponent::from(format!( + "Made {} a server operator", + player_name + ))); + mq::queue( TextComponent::from("You have been opped".to_string()), false,