* respond for some time, your server was overloaded or
* things like that.
*/
- infostream << "Server::ProcessData(): Cancelling: peer "
+ infostream << "Server::ProcessData(): Canceling: peer "
<< pkt->getPeerId() << " not found" << std::endl;
return;
}
DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
L"Your client's version is not supported.\n"
L"Server version is ")
- + narrow_to_wide(minetest_version_simple) + L"."
+ + narrow_to_wide(g_version_string) + L"."
);
return;
}
DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
L"Your client's version is not supported.\n"
L"Server version is ")
- + narrow_to_wide(minetest_version_simple) + L",\n"
+ + narrow_to_wide(g_version_string) + L",\n"
+ L"server's PROTOCOL_VERSION is "
+ narrow_to_wide(itos(SERVER_PROTOCOL_VERSION_MIN))
+ L"..."
DenyAccess_Legacy(pkt->getPeerId(), std::wstring(
L"Your client's version is not supported.\n"
L"Server version is ")
- + narrow_to_wide(minetest_version_simple) + L",\n"
+ + narrow_to_wide(g_version_string) + L",\n"
+ L"server's PROTOCOL_VERSION (strict) is "
+ narrow_to_wide(itos(LATEST_PROTOCOL_VERSION))
+ L", client's PROTOCOL_VERSION is "
if (peer_proto_ver <= 22) {
infostream << "Client sent message not expected by a "
<< "client using protocol version <= 22,"
- << "disconnecing peer_id: " << peer_id << std::endl;
+ << "disconnecting peer_id: " << peer_id << std::endl;
m_con.DisconnectPeer(peer_id);
return;
}
return;
}
- u8 major_ver, minor_ver, patch_ver;
- *pkt >> major_ver >> minor_ver >> patch_ver;
+ u8 major_ver, minor_ver, patch_ver, reserved;
+ std::string full_ver;
+ *pkt >> major_ver >> minor_ver >> patch_ver >> reserved >> full_ver;
m_clients.setClientVersion(
peer_id, major_ver, minor_ver, patch_ver,
- std::string(pkt->getString(6),(u16) pkt->getU8(4)));
+ full_ver);
m_clients.event(peer_id, CSE_SetClientReady);
m_script->on_joinplayer(playersao);
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
{
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
ma->from_inv.applyCurrentPlayer(player->getName());
ma->to_inv.applyCurrentPlayer(player->getName());
- setInventoryModified(ma->from_inv);
- setInventoryModified(ma->to_inv);
+ setInventoryModified(ma->from_inv, false);
+ setInventoryModified(ma->to_inv, false);
bool from_inv_is_current_player =
(ma->from_inv.type == InventoryLocation::PLAYER) &&
da->from_inv.applyCurrentPlayer(player->getName());
- setInventoryModified(da->from_inv);
+ setInventoryModified(da->from_inv, false);
/*
Disable dropping items out of craftpreview
ca->craft_inv.applyCurrentPlayer(player->getName());
- setInventoryModified(ca->craft_inv);
+ setInventoryModified(ca->craft_inv, false);
//bool craft_inv_is_current_player =
// (ca->craft_inv.type == InventoryLocation::PLAYER) &&
a->apply(this, playersao, this);
// Eat the action
delete a;
+
+ SendInventory(playersao);
}
void Server::handleCommand_ChatMessage(NetworkPacket* pkt)
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
} else {
actionstream << player->getName() << " tries to change password but "
<< "it fails" << std::endl;
- SendChatMessage(pkt->getPeerId(), L"Password change failed or inavailable.");
+ SendChatMessage(pkt->getPeerId(), L"Password change failed or unavailable.");
}
}
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
{
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
<< PP(player->getPosition()/BS) << std::endl;
// ActiveObject is added to environment in AsyncRunStep after
- // the previous addition has been succesfully removed
+ // the previous addition has been successfully removed
}
void Server::handleCommand_Interact(NetworkPacket* pkt)
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
if (m_script->item_OnUse(
item, playersao, pointed)) {
// Apply returned ItemStack
- playersao->setWieldedItem(item);
+ if (playersao->setWieldedItem(item)) {
+ SendInventory(playersao);
+ }
}
} // action == 4
Player *player = m_env->getPlayer(pkt->getPeerId());
if (player == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());
PlayerSAO *playersao = player->getPlayerSAO();
if (playersao == NULL) {
- errorstream << "Server::ProcessData(): Cancelling: "
+ errorstream << "Server::ProcessData(): Canceling: "
"No player object for peer_id=" << pkt->getPeerId()
<< " disconnecting peer!" << std::endl;
m_con.DisconnectPeer(pkt->getPeerId());