mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Altered ban so that it kicks the player as well
This commit is contained in:
parent
e9348f2fb5
commit
f402df2c56
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user