Cache disable_anticheat and check it for "interacted_too_far"

This commit is contained in:
ASL97 2015-12-07 17:39:48 +08:00 committed by ShadowNinja
parent 711808343d
commit 106d4b7d05
1 changed files with 4 additions and 2 deletions

View File

@ -1358,7 +1358,9 @@ void Server::handleCommand_Interact(NetworkPacket* pkt)
Check that target is reasonably close
(only when digging or placing things)
*/
if (action == 0 || action == 2 || action == 3) {
static const bool enable_anticheat = !g_settings->getBool("disable_anticheat");
if ((action == 0 || action == 2 || action == 3) &&
(enable_anticheat && !isSingleplayer())) {
float d = player_pos.getDistanceFrom(pointed_pos_under);
float max_d = BS * 14; // Just some large enough value
if (d > max_d) {
@ -1495,7 +1497,7 @@ void Server::handleCommand_Interact(NetworkPacket* pkt)
/* Cheat prevention */
bool is_valid_dig = true;
if (!isSingleplayer() && !g_settings->getBool("disable_anticheat")) {
if (enable_anticheat && !isSingleplayer()) {
v3s16 nocheat_p = playersao->getNoCheatDigPos();
float nocheat_t = playersao->getNoCheatDigTime();
playersao->noCheatDigEnd();