mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 20:51:29 +00:00
Adust ProcessUsertoWorldReq reponse codes
This commit is contained in:
parent
7c2ee06355
commit
e92d130538
@ -64,9 +64,9 @@ namespace LoginserverWebserver {
|
||||
api.Post(
|
||||
"/account/create", [](const httplib::Request &request, httplib::Response &res) {
|
||||
LoginserverWebserver::TokenManager::AuthCanWrite(request, res);
|
||||
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
||||
std::string username = request_body.get("username", "").asString();
|
||||
std::string password = request_body.get("password", "").asString();
|
||||
Json::Value request_body = LoginserverWebserver::ParseRequestBody(request);
|
||||
std::string username = request_body.get("username", "").asString();
|
||||
std::string password = request_body.get("password", "").asString();
|
||||
|
||||
Json::Value response;
|
||||
if (username.empty() || password.empty()) {
|
||||
@ -137,7 +137,7 @@ namespace LoginserverWebserver {
|
||||
user_token = LoginserverWebserver::TokenManager::CheckApiAuthorizationHeaders(request);
|
||||
|
||||
if (!user_token.can_read) {
|
||||
Json::Value response;
|
||||
Json::Value response;
|
||||
std::stringstream response_payload;
|
||||
response["message"] = "Authorization token is either invalid or cannot read!";
|
||||
response_payload << response;
|
||||
@ -165,7 +165,7 @@ namespace LoginserverWebserver {
|
||||
user_token = LoginserverWebserver::TokenManager::CheckApiAuthorizationHeaders(request);
|
||||
|
||||
if (!user_token.can_write) {
|
||||
Json::Value response;
|
||||
Json::Value response;
|
||||
std::stringstream response_payload;
|
||||
response["message"] = "Authorization token is either invalid or cannot write!";
|
||||
response_payload << response;
|
||||
|
||||
@ -70,7 +70,7 @@ void LoginServer::ProcessUsertoWorldReqLeg(uint16_t opcode, EQ::Net::Packet &p)
|
||||
|
||||
ServerPacket outpack;
|
||||
outpack.opcode = ServerOP_UsertoWorldResp;
|
||||
outpack.size = sizeof(UsertoWorldResponse_Struct);
|
||||
outpack.size = sizeof(UsertoWorldResponseLegacy_Struct);
|
||||
outpack.pBuffer = new uchar[outpack.size];
|
||||
memset(outpack.pBuffer, 0, outpack.size);
|
||||
|
||||
@ -132,46 +132,59 @@ void LoginServer::ProcessUsertoWorldReq(uint16_t opcode, EQ::Net::Packet &p)
|
||||
uint32 id = database.GetAccountIDFromLSID(utwr->login, utwr->lsaccountid);
|
||||
int16 status = database.CheckStatus(id);
|
||||
|
||||
auto outpack = new ServerPacket;
|
||||
outpack->opcode = ServerOP_UsertoWorldResp;
|
||||
outpack->size = sizeof(UsertoWorldResponse_Struct);
|
||||
outpack->pBuffer = new uchar[outpack->size];
|
||||
memset(outpack->pBuffer, 0, outpack->size);
|
||||
ServerPacket outpack;
|
||||
outpack.opcode = ServerOP_UsertoWorldResp;
|
||||
outpack.size = sizeof(UsertoWorldResponse_Struct);
|
||||
outpack.pBuffer = new uchar[outpack.size];
|
||||
memset(outpack.pBuffer, 0, outpack.size);
|
||||
|
||||
UsertoWorldResponse_Struct *utwrs = (UsertoWorldResponse_Struct *) outpack->pBuffer;
|
||||
UsertoWorldResponse_Struct *utwrs = (UsertoWorldResponse_Struct *) outpack.pBuffer;
|
||||
utwrs->lsaccountid = utwr->lsaccountid;
|
||||
utwrs->ToID = utwr->FromID;
|
||||
strn0cpy(utwrs->login, utwr->login, 64);
|
||||
utwrs->worldid = utwr->worldid;
|
||||
utwrs->response = UserToWorldStatusSuccess;
|
||||
utwrs->worldid = utwr->worldid;
|
||||
utwrs->response = UserToWorldStatusSuccess;
|
||||
|
||||
if (Config->Locked == true) {
|
||||
if ((status == 0 || status < 100) && (status != -2 || status != -1)) {
|
||||
utwrs->response = 0;
|
||||
if (status < 100) {
|
||||
utwrs->response = UserToWorldStatusWorldUnavail;
|
||||
SendPacket(&outpack);
|
||||
return;
|
||||
}
|
||||
if (status >= 100) {
|
||||
utwrs->response = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
utwrs->response = 1;
|
||||
}
|
||||
|
||||
int32 x = Config->MaxClients;
|
||||
if ((int32) numplayers >= x && x != -1 && x != 255 && status < 80) {
|
||||
utwrs->response = -3;
|
||||
utwrs->response = UserToWorldStatusWorldAtCapacity;
|
||||
SendPacket(&outpack);
|
||||
return;
|
||||
}
|
||||
|
||||
if (status == -1) {
|
||||
utwrs->response = -1;
|
||||
}
|
||||
if (status == -2) {
|
||||
utwrs->response = -2;
|
||||
utwrs->response = UserToWorldStatusSuspended;
|
||||
SendPacket(&outpack);
|
||||
return;
|
||||
}
|
||||
|
||||
utwrs->worldid = utwr->worldid;
|
||||
SendPacket(outpack);
|
||||
delete outpack;
|
||||
if (status == -2) {
|
||||
utwrs->response = UserToWorldStatusBanned;
|
||||
SendPacket(&outpack);
|
||||
return;
|
||||
}
|
||||
|
||||
if (RuleB(World, DisallowDuplicateAccountLogins)) {
|
||||
auto cle = client_list.FindCLEByLSID(utwr->lsaccountid);
|
||||
if (cle != nullptr) {
|
||||
auto status = cle->GetOnline();
|
||||
if (CLE_Status_Never != status && CLE_Status_Offline != status) {
|
||||
utwrs->response = UserToWorldStatusAlreadyOnline;
|
||||
SendPacket(&outpack);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SendPacket(&outpack);
|
||||
}
|
||||
|
||||
void LoginServer::ProcessLSClientAuthLegacy(uint16_t opcode, EQ::Net::Packet &p)
|
||||
|
||||
@ -560,9 +560,8 @@ bool Client::Process() {
|
||||
OnDisconnect(true);
|
||||
Log(Logs::General, Logs::Zone_Server, "Client linkdead: %s", name);
|
||||
|
||||
if (GetGM()) {
|
||||
if (GetMerc())
|
||||
{
|
||||
if (Admin() > 100) {
|
||||
if (GetMerc()) {
|
||||
GetMerc()->Save();
|
||||
GetMerc()->Depop();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user