Altered ban so that it kicks the player as well

This commit is contained in:
tylerlowrey 2020-07-17 12:25:52 -04:00 committed by Joshua Yanovski
parent e9348f2fb5
commit f402df2c56

View File

@ -1860,7 +1860,7 @@ fn handle_kick(
fn handle_ban(
server: &mut Server,
client: EcsEntity,
_target: EcsEntity,
target: EcsEntity,
args: String,
action: &ChatCommand,
) {
@ -1878,9 +1878,9 @@ fn handle_ban(
server.settings_mut().edit(|s| {
s.banlist.push((target_alias.clone(), reason.clone()))
});
// Override AuthProvider's banlist since it is only a copy
let mut accounts = server.state.ecs().write_resource::<AuthProvider>();
accounts.banlist = server.settings().banlist.clone();
// Overwrite AuthProvider's banlist since it AuthProvider only has a copy
let ecs = server.state.ecs();
ecs.write_resource::<AuthProvider>().banlist = server.settings().banlist.clone();
server.notify_client(
client,
ChatType::CommandInfo.server_msg(
@ -1888,6 +1888,15 @@ fn handle_ban(
target_alias,
reason))
);
// If the player is online kick them
let entity_opt = (&ecs.entities(), &ecs.read_storage::<comp::Player>())
.join()
.find(|(_, player)| player.alias == target_alias)
.map(|(entity, _)| entity);
if let Some(_) = entity_opt {
get_handler(&ChatCommand::Kick)(server, client, target, format!("{} {}", target_alias, reason), &ChatCommand::Kick)
}
}
} else {
@ -1909,7 +1918,7 @@ fn handle_unban(
server.settings_mut().edit(|s| {
s.banlist.retain(|x| !(x.0).eq_ignore_ascii_case(&username))
});
// Override AuthProvider's banlist since it is only a copy
// Overwrite AuthProvider's banlist since it AuthProvider only has a copy
let mut accounts = server.state.ecs().write_resource::<AuthProvider>();
accounts.banlist = server.settings().banlist.clone();
server.notify_client(