Skip to content

Commit

Permalink
GameCMS Storage: Getting the server address from CVar (#275)
Browse files Browse the repository at this point in the history
  • Loading branch information
ufame committed May 15, 2022
1 parent 4a483b7 commit 3d60f26
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions cstrike/addons/amxmodx/scripting/CA_Storage_GameCMS.sma
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ new Queue: g_queueLoad = Invalid_Queue,
new g_serverID = -1
new g_gamecmsAdminId[MAX_PLAYERS + 1]

new ca_storage_host[64],
new ca_server_address[128],
ca_storage_host[64],
ca_storage_user[128],
ca_storage_pass[128],
ca_storage_dbname[128]
Expand Down Expand Up @@ -62,6 +63,7 @@ public _OnConfigsExecuted() {
g_tuple = SQL_MakeDbTuple(ca_storage_host, ca_storage_user, ca_storage_pass, ca_storage_dbname)
SQL_SetCharset(g_tuple, "utf8")

ServerAddress_Check()
Storage_Create()
}

Expand Down Expand Up @@ -95,6 +97,12 @@ public client_disconnected(id) {
}

Create_CVars() {
bind_pcvar_string(create_cvar("ca_server_address", "",
.description = "Server address in the GameCMS database"
),
ca_server_address, charsmax(ca_server_address)
)

bind_pcvar_string(create_cvar("ca_storage_host", "127.0.0.1", FCVAR_PROTECTED,
.description = "GameCMS MySQL database host address"
),
Expand All @@ -120,6 +128,13 @@ Create_CVars() {
)
}

ServerAddress_Check() {
if (ca_server_address[0] != EOS)
return

get_cvar_string("net_address", ca_server_address, charsmax(ca_server_address))
}

Storage_Create() {
formatex(g_query, charsmax(g_query), "CREATE TABLE IF NOT EXISTS %s ", SQL_TBL_GAGS); {
strcat(g_query, "( bid int(6) NOT NULL AUTO_INCREMENT,", charsmax(g_query))
Expand Down Expand Up @@ -388,10 +403,9 @@ public handle_Removed(failstate, Handle: query, error[], errnum, data[], size, F
ExecuteForward(g_fwd_StorageRemoved, g_ret)
}


GameCMS_GetServerID() {
new net_address[64]; get_cvar_string("net_address", net_address, charsmax(net_address))
new serverAddress[2][32]; explode_string(net_address, ":", serverAddress, sizeof(serverAddress), charsmax(serverAddress[]))
new serverAddress[2][128]
explode_string(ca_server_address, ":", serverAddress, sizeof(serverAddress), charsmax(serverAddress[]))

formatex(g_query, charsmax(g_query), "SELECT id FROM servers WHERE servers.ip = '%s' AND servers.port = '%s' LIMIT 1;",
serverAddress[0], serverAddress[1]
Expand All @@ -406,16 +420,15 @@ public handle_GetServerID(failstate, Handle: query, error[], errnum, data[], siz
}

new bool: found = bool: (SQL_NumResults(query) != 0)
new net_address[64]; get_cvar_string("net_address", net_address, charsmax(net_address))

if(!found) {
set_fail_state("Server `%s` not found on db.", net_address)
set_fail_state("Server `%s` not found on db.", ca_server_address)

return
}

g_serverID = SQL_ReadResult(query, 0)
CA_Log(logLevel_Debug, "Found server `%s` in db. ServerID=%i", net_address, g_serverID)
CA_Log(logLevel_Debug, "Found server `%s` in db. ServerID=%i", ca_server_address, g_serverID)

g_storageInitialized = true
ExecuteForward(g_fwd_StorageInitialized, g_ret)
Expand Down

0 comments on commit 3d60f26

Please sign in to comment.