mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 18:51:29 +00:00
Turn NameApprovalPacket handling into a method.
This commit is contained in:
parent
a7ce66856b
commit
969f0c535e
@ -368,6 +368,50 @@ void Client::SendPostEnterWorld() {
|
|||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Client::HandleNameApprovalPacket(const EQApplicationPacket *app) {
|
||||||
|
|
||||||
|
if (GetAccountID() == 0) {
|
||||||
|
clog(WORLD__CLIENT_ERR,"Name approval request with no logged in account");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
snprintf(char_name, 64, "%s", (char*)app->pBuffer);
|
||||||
|
uchar race = app->pBuffer[64];
|
||||||
|
uchar clas = app->pBuffer[68];
|
||||||
|
|
||||||
|
clog(WORLD__CLIENT,"Name approval request. Name=%s, race=%s, class=%s",char_name,GetRaceName(race),GetEQClassName(clas));
|
||||||
|
|
||||||
|
EQApplicationPacket *outapp;
|
||||||
|
outapp = new EQApplicationPacket;
|
||||||
|
outapp->SetOpcode(OP_ApproveName);
|
||||||
|
outapp->pBuffer = new uchar[1];
|
||||||
|
outapp->size = 1;
|
||||||
|
|
||||||
|
bool valid;
|
||||||
|
if(!database.CheckNameFilter(char_name)) {
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
else if(char_name[0] < 'A' && char_name[0] > 'Z') {
|
||||||
|
//name must begin with an upper-case letter.
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
else if (database.ReserveName(GetAccountID(), char_name)) {
|
||||||
|
valid = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
valid = false;
|
||||||
|
}
|
||||||
|
outapp->pBuffer[0] = valid? 1 : 0;
|
||||||
|
QueuePacket(outapp);
|
||||||
|
safe_delete(outapp);
|
||||||
|
|
||||||
|
if(!valid) {
|
||||||
|
memset(char_name, 0, sizeof(char_name));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool Client::HandlePacket(const EQApplicationPacket *app) {
|
bool Client::HandlePacket(const EQApplicationPacket *app) {
|
||||||
const WorldConfig *Config=WorldConfig::get();
|
const WorldConfig *Config=WorldConfig::get();
|
||||||
EmuOpcode opcode = app->GetOpcode();
|
EmuOpcode opcode = app->GetOpcode();
|
||||||
@ -514,45 +558,7 @@ bool Client::HandlePacket(const EQApplicationPacket *app) {
|
|||||||
}
|
}
|
||||||
case OP_ApproveName: //Name approval
|
case OP_ApproveName: //Name approval
|
||||||
{
|
{
|
||||||
if (GetAccountID() == 0) {
|
return HandleNameApprovalPacket(app);
|
||||||
clog(WORLD__CLIENT_ERR,"Name approval request with no logged in account");
|
|
||||||
ret = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
snprintf(char_name, 64, "%s", (char*)app->pBuffer);
|
|
||||||
uchar race = app->pBuffer[64];
|
|
||||||
uchar clas = app->pBuffer[68];
|
|
||||||
|
|
||||||
clog(WORLD__CLIENT,"Name approval request. Name=%s, race=%s, class=%s",char_name,GetRaceName(race),GetEQClassName(clas));
|
|
||||||
|
|
||||||
EQApplicationPacket *outapp;
|
|
||||||
outapp = new EQApplicationPacket;
|
|
||||||
outapp->SetOpcode(OP_ApproveName);
|
|
||||||
outapp->pBuffer = new uchar[1];
|
|
||||||
outapp->size = 1;
|
|
||||||
bool valid;
|
|
||||||
if(!database.CheckNameFilter(char_name)) {
|
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
else if(char_name[0] < 'A' && char_name[0] > 'Z') {
|
|
||||||
//name must begin with an upper-case letter.
|
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
else if (database.ReserveName(GetAccountID(), char_name)) {
|
|
||||||
valid = true;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
outapp->pBuffer[0] = valid? 1 : 0;
|
|
||||||
QueuePacket(outapp);
|
|
||||||
safe_delete(outapp);
|
|
||||||
|
|
||||||
if(!valid) {
|
|
||||||
memset(char_name, 0, sizeof(char_name));
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
case OP_RandomNameGenerator:
|
case OP_RandomNameGenerator:
|
||||||
{
|
{
|
||||||
|
|||||||
@ -98,6 +98,8 @@ private:
|
|||||||
bool seencharsel;
|
bool seencharsel;
|
||||||
bool realfirstlogin;
|
bool realfirstlogin;
|
||||||
bool HandlePacket(const EQApplicationPacket *app);
|
bool HandlePacket(const EQApplicationPacket *app);
|
||||||
|
bool HandleNameApprovalPacket(const EQApplicationPacket *app);
|
||||||
|
|
||||||
EQStreamInterface* const eqs;
|
EQStreamInterface* const eqs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user