Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d4c4f0eef3 | |||
| c4d0d5fee6 | |||
| f8886e15aa | |||
| 35a94d6b49 | |||
| 9f50681798 | |||
| 699b158fdf | |||
| 05376fabd2 | |||
| 6f11db08d7 | |||
| ee71b4364c | |||
| f2623c33fd | |||
| a63a7b5a48 | |||
| a4e0b7afcf | |||
| 05dc4094a0 | |||
| e27c7334bc | |||
| fdb3126d1f | |||
| 4576605dce |
@@ -4,6 +4,7 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- test/discord-detail-flags
|
||||
tags:
|
||||
- 'v*'
|
||||
pull_request:
|
||||
@@ -72,6 +73,22 @@ jobs:
|
||||
dist/WowPresence.zip
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Publish Discord details test prerelease
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/test/discord-detail-flags' }}
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
tag_name: test-discord-details
|
||||
target_commitish: ${{ github.sha }}
|
||||
files: |
|
||||
dist/WowPresence.zip
|
||||
fail_on_unmatched_files: true
|
||||
name: "WowPresence Discord Details Test"
|
||||
body: |
|
||||
Test-only WowPresence build for Modernization Tool Discord detail controls.
|
||||
Not intended for stable/manual installation.
|
||||
prerelease: true
|
||||
make_latest: false
|
||||
|
||||
- name: Create GitHub Release v1.2
|
||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.head_commit.message == 'release v1.2' }}
|
||||
uses: softprops/action-gh-release@v3
|
||||
@@ -79,13 +96,11 @@ jobs:
|
||||
tag_name: v1.2
|
||||
target_commitish: ${{ github.sha }}
|
||||
files: |
|
||||
dist/WowPresence.dll
|
||||
dist/WowPresence.exe
|
||||
dist/WowPresence.zip
|
||||
fail_on_unmatched_files: true
|
||||
name: "WowPresence v1.2"
|
||||
body_path: RELEASE_NOTES.md
|
||||
generate_release_notes: true
|
||||
generate_release_notes: false
|
||||
make_latest: true
|
||||
|
||||
- name: Create GitHub Release
|
||||
@@ -93,8 +108,6 @@ jobs:
|
||||
uses: softprops/action-gh-release@v3
|
||||
with:
|
||||
files: |
|
||||
dist/WowPresence.dll
|
||||
dist/WowPresence.exe
|
||||
dist/WowPresence.zip
|
||||
fail_on_unmatched_files: true
|
||||
name: "WowPresence ${{ github.ref_name }}"
|
||||
|
||||
@@ -44,7 +44,7 @@ After extraction, the relevant files should look like this:
|
||||
|
||||
The runtime JSON and log files are created automatically inside the same `WowPresence` folder.
|
||||
|
||||
When WowPresence is installed through **Modernization Tool**, the same binaries automatically use:
|
||||
When WowPresence is installed through the **[Modernization Tool](https://github.com/Dusk-92/Modernization-Tool)**, the same binaries automatically use:
|
||||
|
||||
```text
|
||||
<WoW folder>\.modernization_tool\WowPresence\
|
||||
@@ -54,9 +54,8 @@ instead. No separate build is required.
|
||||
|
||||
## 🛰️ Discord Application ID
|
||||
|
||||
WowPresence intentionally does **not** include a server-specific Discord Application ID.
|
||||
To configure your own Discord Application ID:
|
||||
|
||||
To create yours:
|
||||
|
||||
1. Open the **Discord Developer Portal**: https://discord.com/developers/applications
|
||||
2. Create a **New Application**.
|
||||
@@ -75,6 +74,14 @@ Example:
|
||||
123456789012345678
|
||||
```
|
||||
|
||||
For **OctoWoW**, you can use the preconfigured Discord Application ID:
|
||||
|
||||
```text
|
||||
1544072796098011176
|
||||
```
|
||||
|
||||
This is the same Application ID automatically configured by **Modernization Tool**.
|
||||
|
||||
No Discord Client Secret, bot token or bot account is used or required.
|
||||
|
||||
If `discord_application_id` is missing or invalid, Rich Presence remains disabled and the reason is written to `WowPresence\WowPresence.log`.
|
||||
@@ -206,7 +213,7 @@ GitHub Actions builds:
|
||||
|
||||
The ZIP includes the ready-to-edit `WowPresence` configuration folder.
|
||||
|
||||
Tags matching `v*` can publish these files as a GitHub Release.
|
||||
Tags matching `v*` publish `WowPresence.zip` as the GitHub Release asset.
|
||||
|
||||
## 📜 Project identity & licensing
|
||||
|
||||
|
||||
+16
-3
@@ -8,9 +8,22 @@
|
||||
- Uses the client's active localized AreaTable name when available, with a safe populated-locale fallback.
|
||||
- Keeps WowPresence fully standalone; ClassicAPI is not required.
|
||||
- Modernization Tool installations continue to use `.modernization_tool\WowPresence\` automatically.
|
||||
- Improved WoW process detection logging with a generic `WoW process detected.` message.
|
||||
- Manual/debug process fallback now supports both `WoW_Modernized.exe` and `WoW.exe`.
|
||||
- Documented the OctoWoW Discord Application ID for standalone configuration.
|
||||
|
||||
## Included
|
||||
|
||||
- `WowPresence.dll`
|
||||
- `WowPresence.exe`
|
||||
- `WowPresence.zip` ready-to-install standalone package
|
||||
- `WowPresence.zip` — ready-to-install package containing `WowPresence.dll`, `WowPresence.exe`, and the WowPresence configuration folder.
|
||||
|
||||
## Commits
|
||||
|
||||
- [`f261c3b`](https://github.com/Dusk-92/WowPresence/commit/f261c3be298d56bc025671e22a348555157f94b3) Resolve zones through AreaTable
|
||||
- [`0994fe4`](https://github.com/Dusk-92/WowPresence/commit/0994fe4e08b03ec17b09d09eb51a2e7c2b0b2db1) Document AreaTable zone resolution
|
||||
- [`3c76de9`](https://github.com/Dusk-92/WowPresence/commit/3c76de9bdbcb19a45543bd09b03bbd75a2d65d8f) Document ClassicAPI technical reference
|
||||
- [`8048e80`](https://github.com/Dusk-92/WowPresence/commit/8048e804f6629c75cc3b1d81f835aaa1c1f8a423) Prepare WowPresence v1.2 release
|
||||
- [`4576605`](https://github.com/Dusk-92/WowPresence/commit/4576605dce59702d8f90d542e7db3dae4789e1ed) Document OctoWoW Discord Application ID
|
||||
- [`fdb3126`](https://github.com/Dusk-92/WowPresence/commit/fdb3126d1fc6c09392c21d07327c21084aeeb112) Improve WoW process detection logging
|
||||
- [`05dc409`](https://github.com/Dusk-92/WowPresence/commit/05dc4094a0f326699c72176ad516d3341e7be33f) Publish only the WowPresence ZIP release asset
|
||||
|
||||
**Full Changelog**: [v1.1...v1.2](https://github.com/Dusk-92/WowPresence/compare/v1.1...v1.2)
|
||||
|
||||
@@ -1 +1 @@
|
||||
63
|
||||
127
|
||||
|
||||
+4
-2
@@ -75,7 +75,8 @@
|
||||
#define SHARE_CLASS 8u
|
||||
#define SHARE_LEVEL 16u
|
||||
#define SHARE_ZONE 32u
|
||||
#define SHARE_ALL 63u
|
||||
#define SHARE_RACE 64u
|
||||
#define SHARE_ALL 127u
|
||||
|
||||
static const uintptr_t kPlayerNameLocations[] = {
|
||||
0x00C27FC8u, 0x00C27D88u, 0x00C27FD8u, 0
|
||||
@@ -751,7 +752,8 @@ static void publish_character_snapshot(void) {
|
||||
|
||||
collect_character_snapshot(&snapshot);
|
||||
mask = load_share_mask();
|
||||
race_text = snapshot.in_world ? label_for_id(kRaceLabels, snapshot.race_id) : "";
|
||||
race_text = (snapshot.in_world && (mask & SHARE_RACE))
|
||||
? label_for_id(kRaceLabels, snapshot.race_id) : "";
|
||||
class_text = (snapshot.in_world && (mask & SHARE_CLASS))
|
||||
? label_for_id(kClassLabels, snapshot.class_id) : "";
|
||||
faction_text = (snapshot.in_world && (mask & SHARE_FACTION))
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* - is started automatically by WowPresence.dll after WoW is running
|
||||
* - reads the standalone WowPresence folder or the Modernization Tool managed folder
|
||||
* - publishes Discord Rich Presence over the local Discord IPC named pipe
|
||||
* - exits when WoW_Modernized.exe exits
|
||||
* - exits when the target WoW process exits
|
||||
*/
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
@@ -293,7 +293,9 @@ static int load_status(Status *status) {
|
||||
json_string(json, "class", status->class_name, sizeof(status->class_name));
|
||||
json_string(json, "race", status->race, sizeof(status->race));
|
||||
json_int(json, "level", &status->level);
|
||||
return status->name[0] || status->zone[0] || status->level > 0;
|
||||
return status->name[0] || status->zone[0] || status->level > 0 ||
|
||||
status->guild[0] || status->faction[0] || status->class_name[0] ||
|
||||
status->race[0];
|
||||
}
|
||||
|
||||
static int rpc_read_packet(HANDLE pipe, char *payload, size_t payload_size) {
|
||||
@@ -470,10 +472,11 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR cmdline, int show)
|
||||
|
||||
while (!pid && wait_loops++ < 25) {
|
||||
pid = find_process("WoW_Modernized.exe");
|
||||
if (!pid) pid = find_process("WoW.exe");
|
||||
if (!pid) Sleep(200);
|
||||
}
|
||||
if (!pid) {
|
||||
log_line("No running WoW_Modernized.exe found; WowPresence exiting.");
|
||||
log_line("No running WoW process found; WowPresence exiting.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -483,7 +486,7 @@ int WINAPI WinMain(HINSTANCE instance, HINSTANCE prev, LPSTR cmdline, int show)
|
||||
return 0;
|
||||
}
|
||||
|
||||
log_line("WoW_Modernized.exe detected.");
|
||||
log_line("WoW process detected.");
|
||||
/* Fixed for the lifetime of this WoW process. Text updates, character
|
||||
* changes and loading states reuse the same Discord elapsed-time origin. */
|
||||
session_start = (long long)time(NULL);
|
||||
|
||||
Reference in New Issue
Block a user