From cf1aa736efde72d879024291592b4d44d8b91fc0 Mon Sep 17 00:00:00 2001 From: Dusk-92 Date: Tue, 1 Sep 2026 15:51:14 +0200 Subject: [PATCH] Require configured Discord Application ID --- src/WowPresenceLauncher.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/WowPresenceLauncher.c b/src/WowPresenceLauncher.c index 047fb35..449c11d 100644 --- a/src/WowPresenceLauncher.c +++ b/src/WowPresenceLauncher.c @@ -1,6 +1,6 @@ /* * WowPresence.exe - * Invisible companion launcher for Modernization Tool. + * Invisible companion process for WowPresence. * * - is started automatically by WowPresence.dll after WoW is running * - reads .modernization_tool\DiscordPresence\discord_wow_status.json @@ -21,7 +21,6 @@ #define PIPE_COUNT 10 #define IPC_OPCODE_HANDSHAKE 0u #define IPC_OPCODE_FRAME 1u -#define DEFAULT_DISCORD_APPLICATION_ID "1544072796098011176" typedef struct { char name[32]; @@ -138,23 +137,25 @@ static int valid_application_id(const char *text) { static int load_application_id(char *out, size_t out_size) { char path[MAX_PATH]; - char override_id[64] = {0}; + char configured_id[64] = {0}; - if (!out || out_size <= strlen(DEFAULT_DISCORD_APPLICATION_ID)) return 0; - lstrcpynA(out, DEFAULT_DISCORD_APPLICATION_ID, (int)out_size); + if (!out || out_size < 25u) return 0; + out[0] = 0; - /* Optional advanced override. Normal users never need this file. */ - if (support_file(path, sizeof(path), "discord_application_id") && - read_text_file(path, override_id, sizeof(override_id))) { - trim_ascii(override_id); - if (valid_application_id(override_id)) { - lstrcpynA(out, override_id, (int)out_size); - } else if (override_id[0]) { - log_line("Ignoring invalid discord_application_id override; using built-in OctoWoW ID."); - } + if (!support_file(path, sizeof(path), "discord_application_id") || + !read_text_file(path, configured_id, sizeof(configured_id))) { + log_line("discord_application_id is missing. Add your Discord Application ID to .modernization_tool\\WowPresence\\discord_application_id."); + return 0; } - return valid_application_id(out); + trim_ascii(configured_id); + if (!valid_application_id(configured_id)) { + log_line("discord_application_id is invalid. Replace the file contents with your numeric Discord Application ID."); + return 0; + } + + lstrcpynA(out, configured_id, (int)out_size); + return 1; } static DWORD parse_target_pid(const char *cmdline) { @@ -442,7 +443,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR cmdline, int show) have_id = load_application_id(application_id, sizeof(application_id)); if (!have_id) { - log_line("Built-in Discord Application ID is invalid; presence is disabled."); + log_line("Discord Rich Presence is disabled until a valid discord_application_id is configured."); } /* Normal path: WowPresence.dll passes the exact WoW process id.