mirror of
https://github.com/whoahq/whoa.git
synced 2026-02-01 00:02:45 +03:00
feat(client): add ClientServices::GetErrorToken
This commit is contained in:
parent
78b5637ff9
commit
9b262f901c
@ -27,6 +27,113 @@ REALM_INFO ClientServices::s_selectRealmInfo;
|
|||||||
bool ClientServices::s_selectRealmInfoValid;
|
bool ClientServices::s_selectRealmInfoValid;
|
||||||
CVar* ClientServices::s_serverAlertVar;
|
CVar* ClientServices::s_serverAlertVar;
|
||||||
|
|
||||||
|
const char* s_errorCodeTokens[] = {
|
||||||
|
"RESPONSE_SUCCESS",
|
||||||
|
"RESPONSE_FAILURE",
|
||||||
|
"RESPONSE_CANCELLED",
|
||||||
|
"RESPONSE_DISCONNECTED",
|
||||||
|
"RESPONSE_FAILED_TO_CONNECT",
|
||||||
|
"RESPONSE_CONNECTED",
|
||||||
|
"RESPONSE_VERSION_MISMATCH",
|
||||||
|
"CSTATUS_CONNECTING",
|
||||||
|
"CSTATUS_NEGOTIATING_SECURITY",
|
||||||
|
"CSTATUS_NEGOTIATION_COMPLETE",
|
||||||
|
"CSTATUS_NEGOTIATION_FAILED",
|
||||||
|
"CSTATUS_AUTHENTICATING",
|
||||||
|
"AUTH_OK",
|
||||||
|
"AUTH_FAILED",
|
||||||
|
"AUTH_REJECT",
|
||||||
|
"AUTH_BAD_SERVER_PROOF",
|
||||||
|
"AUTH_UNAVAILABLE",
|
||||||
|
"AUTH_SYSTEM_ERROR",
|
||||||
|
"AUTH_BILLING_ERROR",
|
||||||
|
"AUTH_BILLING_EXPIRED",
|
||||||
|
"AUTH_VERSION_MISMATCH",
|
||||||
|
"AUTH_UNKNOWN_ACCOUNT",
|
||||||
|
"AUTH_INCORRECT_PASSWORD",
|
||||||
|
"AUTH_SESSION_EXPIRED",
|
||||||
|
"AUTH_SERVER_SHUTTING_DOWN",
|
||||||
|
"AUTH_ALREADY_LOGGING_IN",
|
||||||
|
"AUTH_LOGIN_SERVER_NOT_FOUND",
|
||||||
|
"AUTH_WAIT_QUEUE",
|
||||||
|
"AUTH_BANNED",
|
||||||
|
"AUTH_ALREADY_ONLINE",
|
||||||
|
"AUTH_NO_TIME",
|
||||||
|
"AUTH_DB_BUSY",
|
||||||
|
"AUTH_SUSPENDED",
|
||||||
|
"AUTH_PARENTAL_CONTROL",
|
||||||
|
"AUTH_LOCKED_ENFORCED",
|
||||||
|
"REALM_LIST_IN_PROGRESS",
|
||||||
|
"REALM_LIST_SUCCESS",
|
||||||
|
"REALM_LIST_FAILED",
|
||||||
|
"REALM_LIST_INVALID",
|
||||||
|
"REALM_LIST_REALM_NOT_FOUND",
|
||||||
|
"ACCOUNT_CREATE_IN_PROGRESS",
|
||||||
|
"ACCOUNT_CREATE_SUCCESS",
|
||||||
|
"ACCOUNT_CREATE_FAILED",
|
||||||
|
"CHAR_LIST_RETRIEVING",
|
||||||
|
"CHAR_LIST_RETRIEVED",
|
||||||
|
"CHAR_LIST_FAILED",
|
||||||
|
"CHAR_CREATE_IN_PROGRESS",
|
||||||
|
"CHAR_CREATE_SUCCESS",
|
||||||
|
"CHAR_CREATE_ERROR",
|
||||||
|
"CHAR_CREATE_FAILED",
|
||||||
|
"CHAR_CREATE_NAME_IN_USE",
|
||||||
|
"CHAR_CREATE_DISABLED",
|
||||||
|
"CHAR_CREATE_PVP_TEAMS_VIOLATION",
|
||||||
|
"CHAR_CREATE_SERVER_LIMIT",
|
||||||
|
"CHAR_CREATE_ACCOUNT_LIMIT",
|
||||||
|
"CHAR_CREATE_SERVER_QUEUE",
|
||||||
|
"CHAR_CREATE_ONLY_EXISTING",
|
||||||
|
"CHAR_CREATE_EXPANSION",
|
||||||
|
"CHAR_CREATE_EXPANSION_CLASS",
|
||||||
|
"CHAR_CREATE_LEVEL_REQUIREMENT",
|
||||||
|
"CHAR_CREATE_UNIQUE_CLASS_LIMIT",
|
||||||
|
"CHAR_CREATE_CHARACTER_IN_GUILD",
|
||||||
|
"CHAR_CREATE_RESTRICTED_RACECLASS",
|
||||||
|
"CHAR_CREATE_CHARACTER_CHOOSE_RACE",
|
||||||
|
"CHAR_CREATE_CHARACTER_ARENA_LEADER",
|
||||||
|
"CHAR_CREATE_CHARACTER_DELETE_MAIL",
|
||||||
|
"CHAR_CREATE_CHARACTER_SWAP_FACTION",
|
||||||
|
"CHAR_CREATE_CHARACTER_RACE_ONLY",
|
||||||
|
"CHAR_CREATE_CHARACTER_GOLD_LIMIT",
|
||||||
|
"CHAR_CREATE_FORCE_LOGIN",
|
||||||
|
"CHAR_DELETE_IN_PROGRESS",
|
||||||
|
"CHAR_DELETE_SUCCESS",
|
||||||
|
"CHAR_DELETE_FAILED",
|
||||||
|
"CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER",
|
||||||
|
"CHAR_DELETE_FAILED_GUILD_LEADER",
|
||||||
|
"CHAR_DELETE_FAILED_ARENA_CAPTAIN",
|
||||||
|
"CHAR_LOGIN_IN_PROGRESS",
|
||||||
|
"CHAR_LOGIN_SUCCESS",
|
||||||
|
"CHAR_LOGIN_NO_WORLD",
|
||||||
|
"CHAR_LOGIN_DUPLICATE_CHARACTER",
|
||||||
|
"CHAR_LOGIN_NO_INSTANCES",
|
||||||
|
"CHAR_LOGIN_FAILED",
|
||||||
|
"CHAR_LOGIN_DISABLED",
|
||||||
|
"CHAR_LOGIN_NO_CHARACTER",
|
||||||
|
"CHAR_LOGIN_LOCKED_FOR_TRANSFER",
|
||||||
|
"CHAR_LOGIN_LOCKED_BY_BILLING",
|
||||||
|
"CHAR_LOGIN_LOCKED_BY_MOBILE_AH",
|
||||||
|
"CHAR_NAME_SUCCESS",
|
||||||
|
"CHAR_NAME_FAILURE",
|
||||||
|
"CHAR_NAME_NO_NAME",
|
||||||
|
"CHAR_NAME_TOO_SHORT",
|
||||||
|
"CHAR_NAME_TOO_LONG",
|
||||||
|
"CHAR_NAME_INVALID_CHARACTER",
|
||||||
|
"CHAR_NAME_MIXED_LANGUAGES",
|
||||||
|
"CHAR_NAME_PROFANE",
|
||||||
|
"CHAR_NAME_RESERVED",
|
||||||
|
"CHAR_NAME_INVALID_APOSTROPHE",
|
||||||
|
"CHAR_NAME_MULTIPLE_APOSTROPHES",
|
||||||
|
"CHAR_NAME_THREE_CONSECUTIVE",
|
||||||
|
"CHAR_NAME_INVALID_SPACE",
|
||||||
|
"CHAR_NAME_CONSECUTIVE_SPACES",
|
||||||
|
"CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS",
|
||||||
|
"CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END",
|
||||||
|
"CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME",
|
||||||
|
};
|
||||||
|
|
||||||
void ClientServices::ConnectToSelectedServer() {
|
void ClientServices::ConnectToSelectedServer() {
|
||||||
if (!ClientServices::s_selectRealmInfoValid && !ClientServices::SetSelectedRealmInfo(0)) {
|
if (!ClientServices::s_selectRealmInfoValid && !ClientServices::SetSelectedRealmInfo(0)) {
|
||||||
ClientServices::Connection()->Complete(0, 39);
|
ClientServices::Connection()->Complete(0, 39);
|
||||||
@ -65,6 +172,14 @@ const char* ClientServices::GetCurrentLoginServer() {
|
|||||||
: ClientServices::s_realmListVar->GetString();
|
: ClientServices::s_realmListVar->GetString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* ClientServices::GetErrorToken(int32_t errorCode) {
|
||||||
|
if (errorCode >= 104) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return s_errorCodeTokens[errorCode];
|
||||||
|
}
|
||||||
|
|
||||||
ClientServices* ClientServices::GetInstance() {
|
ClientServices* ClientServices::GetInstance() {
|
||||||
if (ClientServices::s_instance) {
|
if (ClientServices::s_instance) {
|
||||||
return ClientServices::s_instance;
|
return ClientServices::s_instance;
|
||||||
|
|||||||
@ -33,6 +33,7 @@ class ClientServices : public LoginResponse {
|
|||||||
static ClientConnection* Connection();
|
static ClientConnection* Connection();
|
||||||
static const char* GetCurrentLoginPortal();
|
static const char* GetCurrentLoginPortal();
|
||||||
static const char* GetCurrentLoginServer();
|
static const char* GetCurrentLoginServer();
|
||||||
|
static const char* GetErrorToken(int32_t errorCode);
|
||||||
static ClientServices* GetInstance();
|
static ClientServices* GetInstance();
|
||||||
static REALM_INFO* GetRealmInfoByIndex(int32_t index);
|
static REALM_INFO* GetRealmInfoByIndex(int32_t index);
|
||||||
static const char* GetSelectedRealmName();
|
static const char* GetSelectedRealmName();
|
||||||
|
|||||||
@ -3,113 +3,6 @@
|
|||||||
#include "client/ClientServices.hpp"
|
#include "client/ClientServices.hpp"
|
||||||
#include "ui/FrameScript.hpp"
|
#include "ui/FrameScript.hpp"
|
||||||
|
|
||||||
const char* s_errorCodeTokens[] = {
|
|
||||||
"RESPONSE_SUCCESS",
|
|
||||||
"RESPONSE_FAILURE",
|
|
||||||
"RESPONSE_CANCELLED",
|
|
||||||
"RESPONSE_DISCONNECTED",
|
|
||||||
"RESPONSE_FAILED_TO_CONNECT",
|
|
||||||
"RESPONSE_CONNECTED",
|
|
||||||
"RESPONSE_VERSION_MISMATCH",
|
|
||||||
"CSTATUS_CONNECTING",
|
|
||||||
"CSTATUS_NEGOTIATING_SECURITY",
|
|
||||||
"CSTATUS_NEGOTIATION_COMPLETE",
|
|
||||||
"CSTATUS_NEGOTIATION_FAILED",
|
|
||||||
"CSTATUS_AUTHENTICATING",
|
|
||||||
"AUTH_OK",
|
|
||||||
"AUTH_FAILED",
|
|
||||||
"AUTH_REJECT",
|
|
||||||
"AUTH_BAD_SERVER_PROOF",
|
|
||||||
"AUTH_UNAVAILABLE",
|
|
||||||
"AUTH_SYSTEM_ERROR",
|
|
||||||
"AUTH_BILLING_ERROR",
|
|
||||||
"AUTH_BILLING_EXPIRED",
|
|
||||||
"AUTH_VERSION_MISMATCH",
|
|
||||||
"AUTH_UNKNOWN_ACCOUNT",
|
|
||||||
"AUTH_INCORRECT_PASSWORD",
|
|
||||||
"AUTH_SESSION_EXPIRED",
|
|
||||||
"AUTH_SERVER_SHUTTING_DOWN",
|
|
||||||
"AUTH_ALREADY_LOGGING_IN",
|
|
||||||
"AUTH_LOGIN_SERVER_NOT_FOUND",
|
|
||||||
"AUTH_WAIT_QUEUE",
|
|
||||||
"AUTH_BANNED",
|
|
||||||
"AUTH_ALREADY_ONLINE",
|
|
||||||
"AUTH_NO_TIME",
|
|
||||||
"AUTH_DB_BUSY",
|
|
||||||
"AUTH_SUSPENDED",
|
|
||||||
"AUTH_PARENTAL_CONTROL",
|
|
||||||
"AUTH_LOCKED_ENFORCED",
|
|
||||||
"REALM_LIST_IN_PROGRESS",
|
|
||||||
"REALM_LIST_SUCCESS",
|
|
||||||
"REALM_LIST_FAILED",
|
|
||||||
"REALM_LIST_INVALID",
|
|
||||||
"REALM_LIST_REALM_NOT_FOUND",
|
|
||||||
"ACCOUNT_CREATE_IN_PROGRESS",
|
|
||||||
"ACCOUNT_CREATE_SUCCESS",
|
|
||||||
"ACCOUNT_CREATE_FAILED",
|
|
||||||
"CHAR_LIST_RETRIEVING",
|
|
||||||
"CHAR_LIST_RETRIEVED",
|
|
||||||
"CHAR_LIST_FAILED",
|
|
||||||
"CHAR_CREATE_IN_PROGRESS",
|
|
||||||
"CHAR_CREATE_SUCCESS",
|
|
||||||
"CHAR_CREATE_ERROR",
|
|
||||||
"CHAR_CREATE_FAILED",
|
|
||||||
"CHAR_CREATE_NAME_IN_USE",
|
|
||||||
"CHAR_CREATE_DISABLED",
|
|
||||||
"CHAR_CREATE_PVP_TEAMS_VIOLATION",
|
|
||||||
"CHAR_CREATE_SERVER_LIMIT",
|
|
||||||
"CHAR_CREATE_ACCOUNT_LIMIT",
|
|
||||||
"CHAR_CREATE_SERVER_QUEUE",
|
|
||||||
"CHAR_CREATE_ONLY_EXISTING",
|
|
||||||
"CHAR_CREATE_EXPANSION",
|
|
||||||
"CHAR_CREATE_EXPANSION_CLASS",
|
|
||||||
"CHAR_CREATE_LEVEL_REQUIREMENT",
|
|
||||||
"CHAR_CREATE_UNIQUE_CLASS_LIMIT",
|
|
||||||
"CHAR_CREATE_CHARACTER_IN_GUILD",
|
|
||||||
"CHAR_CREATE_RESTRICTED_RACECLASS",
|
|
||||||
"CHAR_CREATE_CHARACTER_CHOOSE_RACE",
|
|
||||||
"CHAR_CREATE_CHARACTER_ARENA_LEADER",
|
|
||||||
"CHAR_CREATE_CHARACTER_DELETE_MAIL",
|
|
||||||
"CHAR_CREATE_CHARACTER_SWAP_FACTION",
|
|
||||||
"CHAR_CREATE_CHARACTER_RACE_ONLY",
|
|
||||||
"CHAR_CREATE_CHARACTER_GOLD_LIMIT",
|
|
||||||
"CHAR_CREATE_FORCE_LOGIN",
|
|
||||||
"CHAR_DELETE_IN_PROGRESS",
|
|
||||||
"CHAR_DELETE_SUCCESS",
|
|
||||||
"CHAR_DELETE_FAILED",
|
|
||||||
"CHAR_DELETE_FAILED_LOCKED_FOR_TRANSFER",
|
|
||||||
"CHAR_DELETE_FAILED_GUILD_LEADER",
|
|
||||||
"CHAR_DELETE_FAILED_ARENA_CAPTAIN",
|
|
||||||
"CHAR_LOGIN_IN_PROGRESS",
|
|
||||||
"CHAR_LOGIN_SUCCESS",
|
|
||||||
"CHAR_LOGIN_NO_WORLD",
|
|
||||||
"CHAR_LOGIN_DUPLICATE_CHARACTER",
|
|
||||||
"CHAR_LOGIN_NO_INSTANCES",
|
|
||||||
"CHAR_LOGIN_FAILED",
|
|
||||||
"CHAR_LOGIN_DISABLED",
|
|
||||||
"CHAR_LOGIN_NO_CHARACTER",
|
|
||||||
"CHAR_LOGIN_LOCKED_FOR_TRANSFER",
|
|
||||||
"CHAR_LOGIN_LOCKED_BY_BILLING",
|
|
||||||
"CHAR_LOGIN_LOCKED_BY_MOBILE_AH",
|
|
||||||
"CHAR_NAME_SUCCESS",
|
|
||||||
"CHAR_NAME_FAILURE",
|
|
||||||
"CHAR_NAME_NO_NAME",
|
|
||||||
"CHAR_NAME_TOO_SHORT",
|
|
||||||
"CHAR_NAME_TOO_LONG",
|
|
||||||
"CHAR_NAME_INVALID_CHARACTER",
|
|
||||||
"CHAR_NAME_MIXED_LANGUAGES",
|
|
||||||
"CHAR_NAME_PROFANE",
|
|
||||||
"CHAR_NAME_RESERVED",
|
|
||||||
"CHAR_NAME_INVALID_APOSTROPHE",
|
|
||||||
"CHAR_NAME_MULTIPLE_APOSTROPHES",
|
|
||||||
"CHAR_NAME_THREE_CONSECUTIVE",
|
|
||||||
"CHAR_NAME_INVALID_SPACE",
|
|
||||||
"CHAR_NAME_CONSECUTIVE_SPACES",
|
|
||||||
"CHAR_NAME_RUSSIAN_CONSECUTIVE_SILENT_CHARACTERS",
|
|
||||||
"CHAR_NAME_RUSSIAN_SILENT_CHARACTER_AT_BEGINNING_OR_END",
|
|
||||||
"CHAR_NAME_DECLENSION_DOESNT_MATCH_BASE_NAME",
|
|
||||||
};
|
|
||||||
|
|
||||||
void ClientConnection::AccountLogin(const char* name, const char* password, int32_t region, WOW_LOCALE locale) {
|
void ClientConnection::AccountLogin(const char* name, const char* password, int32_t region, WOW_LOCALE locale) {
|
||||||
// Assertion-like thing
|
// Assertion-like thing
|
||||||
|
|
||||||
@ -220,7 +113,7 @@ int32_t ClientConnection::PollStatus(WOWCS_OPS& op, const char** msg, int32_t& r
|
|||||||
|
|
||||||
if (this->m_statusComplete) {
|
if (this->m_statusComplete) {
|
||||||
auto text = errorCode >= 0 && errorCode < 104
|
auto text = errorCode >= 0 && errorCode < 104
|
||||||
? FrameScript_GetText(s_errorCodeTokens[errorCode], -1, GENDER_NOT_APPLICABLE)
|
? FrameScript_GetText(ClientServices::GetErrorToken(errorCode), -1, GENDER_NOT_APPLICABLE)
|
||||||
: nullptr;
|
: nullptr;
|
||||||
|
|
||||||
if (!text) {
|
if (!text) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user