antihacks: Protect per-player detached inventory actions
* backported https://github.com/minetest/minetest/pull/10341 Unfortunately also requires invhack mods to implement workarounds, but they seem to already be doing this.
This commit is contained in:
parent
abb65d5544
commit
ac73843843
@ -945,13 +945,19 @@ void Server::handleCommand_InventoryAction(NetworkPacket* pkt)
|
||||
setInventoryModified(ma->from_inv, false);
|
||||
setInventoryModified(ma->to_inv, false);
|
||||
|
||||
bool from_inv_is_current_player =
|
||||
(ma->from_inv.type == InventoryLocation::PLAYER) &&
|
||||
(ma->from_inv.name == player->getName());
|
||||
bool from_inv_is_current_player = false;
|
||||
if (ma->from_inv.type == InventoryLocation::PLAYER) {
|
||||
if (ma->from_inv.name != player->getName())
|
||||
return;
|
||||
from_inv_is_current_player = true;
|
||||
}
|
||||
|
||||
bool to_inv_is_current_player =
|
||||
(ma->to_inv.type == InventoryLocation::PLAYER) &&
|
||||
(ma->to_inv.name == player->getName());
|
||||
bool to_inv_is_current_player = false;
|
||||
if (ma->to_inv.type == InventoryLocation::PLAYER) {
|
||||
if (ma->to_inv.name != player->getName())
|
||||
return;
|
||||
to_inv_is_current_player = true;
|
||||
}
|
||||
|
||||
InventoryLocation *remote = from_inv_is_current_player ?
|
||||
&ma->to_inv : &ma->from_inv;
|
||||
|
Loading…
x
Reference in New Issue
Block a user