mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Added the ability to change your password (via pause menu)
--HG-- extra : rebase_source : e8ec407f60711d42d33be4811b2880088f617b5b
This commit is contained in:
parent
e0329a3cae
commit
a8a3271470
14 changed files with 457 additions and 28 deletions
|
@ -1602,6 +1602,43 @@ void Client::sendChatMessage(const std::wstring &message)
|
|||
Send(0, data, true);
|
||||
}
|
||||
|
||||
void Client::sendChangePassword(const std::wstring oldpassword,
|
||||
const std::wstring newpassword)
|
||||
{
|
||||
Player *player = m_env.getLocalPlayer();
|
||||
if(player == NULL)
|
||||
return;
|
||||
|
||||
std::string playername = player->getName();
|
||||
std::string oldpwd = translatePassword(playername, oldpassword);
|
||||
std::string newpwd = translatePassword(playername, newpassword);
|
||||
|
||||
std::ostringstream os(std::ios_base::binary);
|
||||
u8 buf[2+PASSWORD_SIZE*2];
|
||||
/*
|
||||
[0] u16 TOSERVER_PASSWORD
|
||||
[2] u8[28] old password
|
||||
[30] u8[28] new password
|
||||
*/
|
||||
|
||||
writeU16(buf, TOSERVER_PASSWORD);
|
||||
for(u32 i=0;i<PASSWORD_SIZE-1;i++)
|
||||
{
|
||||
buf[2+i] = i<oldpwd.length()?oldpwd[i]:0;
|
||||
buf[30+i] = i<newpwd.length()?newpwd[i]:0;
|
||||
}
|
||||
buf[2+PASSWORD_SIZE-1] = 0;
|
||||
buf[30+PASSWORD_SIZE-1] = 0;
|
||||
os.write((char*)buf, 2+PASSWORD_SIZE*2);
|
||||
|
||||
// Make data buffer
|
||||
std::string s = os.str();
|
||||
SharedBuffer<u8> data((u8*)s.c_str(), s.size());
|
||||
// Send as reliable
|
||||
Send(0, data, true);
|
||||
}
|
||||
|
||||
|
||||
void Client::sendDamage(u8 damage)
|
||||
{
|
||||
DSTACK(__FUNCTION_NAME);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue