Set partyId

This commit is contained in:
Federico Cecchetto 2022-04-11 11:42:42 +02:00
parent f65a942897
commit 2ae2831d06

View File

@ -67,7 +67,7 @@ namespace discord
discord_presence.details = utils::string::va("%s on %s", gametype, mapname); discord_presence.details = utils::string::va("%s on %s", gametype, mapname);
char clean_hostname[0x100] = {0}; char clean_hostname[0x80] = {0};
utils::string::strip(game::Dvar_FindVar("sv_hostname")->current.string, utils::string::strip(game::Dvar_FindVar("sv_hostname")->current.string,
clean_hostname, sizeof(clean_hostname)); clean_hostname, sizeof(clean_hostname));
auto max_clients = party::server_client_count(); auto max_clients = party::server_client_count();
@ -81,18 +81,22 @@ namespace discord
} }
else else
{ {
discord_presence.partyPrivacy = DISCORD_PARTY_PUBLIC;
// TODO: we need to make this a random string that represents the session ID
// const auto sessionId = party::get_state_challenge();
discord_presence.partyId = "PLACEHOLDER";
const auto server_net_info = party::get_state_host(); const auto server_net_info = party::get_state_host();
const auto server_ip_port = utils::string::va("%i.%i.%i.%i:%i", const auto server_ip_port = utils::string::va("%i.%i.%i.%i:%i",
server_net_info.ip[0], server_net_info.ip[1], server_net_info.ip[2], server_net_info.ip[3], server_net_info.ip[0],
ntohs(server_net_info.port)); server_net_info.ip[1],
server_net_info.ip[2],
server_net_info.ip[3],
ntohs(server_net_info.port)
);
char party_id[0x80] = {0};
const auto server_ip_port_hash = utils::cryptography::sha1::compute(server_ip_port, true);
strcpy_s(party_id, 0x80, server_ip_port_hash.data());
discord_presence.partyId = party_id;
discord_presence.joinSecret = server_ip_port; discord_presence.joinSecret = server_ip_port;
discord_presence.partyPrivacy = DISCORD_PARTY_PUBLIC;
} }
discord_presence.partySize = *reinterpret_cast<int*>(0x1429864C4); discord_presence.partySize = *reinterpret_cast<int*>(0x1429864C4);