diff options
Diffstat (limited to 'src/servercommand.cpp')
-rw-r--r-- | src/servercommand.cpp | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/servercommand.cpp b/src/servercommand.cpp index a09003960..156598940 100644 --- a/src/servercommand.cpp +++ b/src/servercommand.cpp @@ -250,20 +250,19 @@ void cmd_banunban(std::wostringstream &os, ServerCommandContext *ctx) os<<L"-!- No such player"; return; } - - con::Peer *peer = ctx->server->getPeerNoEx(player->peer_id); - if(peer == NULL) - { + + try{ + Address address = ctx->server->getPeerAddress(player->peer_id); + std::string ip_string = address.serializeString(); + ctx->server->setIpBanned(ip_string, player->getName()); + os<<L"-!- Banned "<<narrow_to_wide(ip_string)<<L"|" + <<narrow_to_wide(player->getName()); + + actionstream<<ctx->player->getName()<<" bans " + <<player->getName()<<" / "<<ip_string<<std::endl; + } catch(con::PeerNotFoundException){ dstream<<__FUNCTION_NAME<<": peer was not found"<<std::endl; - return; } - std::string ip_string = peer->address.serializeString(); - ctx->server->setIpBanned(ip_string, player->getName()); - os<<L"-!- Banned "<<narrow_to_wide(ip_string)<<L"|" - <<narrow_to_wide(player->getName()); - - actionstream<<ctx->player->getName()<<" bans " - <<player->getName()<<" / "<<ip_string<<std::endl; } else { |