Channel move improvements

This commit is contained in:
WolverinDEV
2020-05-13 11:51:01 +02:00
parent 1a2dd4a008
commit e3bf46a89b
4 changed files with 13 additions and 6 deletions
+10 -3
View File
@@ -102,8 +102,6 @@ command_result ConnectedClient::handleCommandClientKick(Command &cmd) {
clients.emplace_back(std::move(client));
result.emplace_result(error::ok);
}
if (clients.empty())
return command_result{error::database_empty_result};
for(auto& client : clients) {
if (target_channel) {
@@ -170,6 +168,7 @@ command_result ConnectedClient::handleCommandClientMove(Command &cmd) {
auto permission_cache = make_shared<CalculateCache>();
if(!cmd[0].has("cpw"))
cmd["cpw"] = "";
if (!channel->passwordMatch(cmd["cpw"], true))
if (!permission::v2::permission_granted(1, this->calculate_permission(permission::b_channel_join_ignore_password, channel->channelId())))
return command_result{error::channel_invalid_password};
@@ -196,9 +195,17 @@ command_result ConnectedClient::handleCommandClientMove(Command &cmd) {
continue;
}
}
if(target_client->getChannel() == channel) {
result.emplace_result(error::ok);
continue;
}
if(target_client.client != this) {
if(!permission::v2::permission_granted(target_client->calculate_permission(permission::i_client_needed_move_power, 0), this->calculate_permission(permission::i_client_move_power, 0))) {
if(!permission::v2::permission_granted(target_client->calculate_permission(permission::i_client_needed_move_power, target_client->getChannelId()), this->calculate_permission(permission::i_client_move_power, target_client->getChannelId()))) {
result.emplace_result(permission::i_client_move_power);
continue;
}
if(!permission::v2::permission_granted(target_client->calculate_permission(permission::i_client_needed_move_power, channel->channelId()), this->calculate_permission(permission::i_client_move_power, channel->channelId()))) {
result.emplace_result(permission::i_client_move_power);
continue;
}