0e4ef622 / wine-discord-ipc-bridge

Enable games running under wine to use Discord Rich Presence
MIT License
387 stars 28 forks source link

Doesn't work with VRChat #38

Open CorneliusCornbread opened 1 year ago

CorneliusCornbread commented 1 year ago

I'm not sure if this is a VRChat issue or an issue with this IPC bridge but I've mentioned it both under the Proton/VRChat discussion on GitHub (https://github.com/ValveSoftware/Proton/issues/1199#issuecomment-1670400881) and here. It's a good possibility that VRChat will disable its Discord rich presence when loading in Proton, similar to how they disabled AVPro players

CorneliusCornbread commented 1 year ago

Upon investigating the log files it seems RPC isn't(?) disabled by default, as the logs mention that it failed to connect to Discord. But this could also be caused by purposefully failing as well.

2023.08.08 17:46:40 Warning    -  [Always] Failed to connect to discord

Moreover, attempting to force enable discord RPC via the config.json file: https://docs.vrchat.com/docs/configuration-file

{
    "disableRichPresence": false
} 

does not work. Giving the exact same output.

0e4ef622 commented 1 year ago

Hmm, I managed to get logs from the bridge and it seems like VRChat at least connects to the socket, but then it doesn't do anything from there.

Pipe Server: Main thread awaiting client connection on \\.\pipe\discord-ipc-0
Client connected
Creating socket
Attempting to connect to /run/user/1000/discord-ipc-0
Connected successfully
48 bytes w->l
({"v":1,"client_id":"378435294170447882"}
384 bytes l->w
x{"cmd":"DISPATCH","data":{"v":1,"config":{"cdn_host":"cdn.discordapp.com","api_endpoint":"//discord.com/api","environment":"production"},"user":{"id":"146739807396167680","username":"0e4ef622","discriminator":"0","global_name":"0e4ef622","avatar":"64da4b21a3b63c91d9498dcd39a788f4","avatar_decoration":null,"bot":false,"flags":32,"premium_type":0}},"evt":"READY","nonce":null}

Actually I saw something similar in LoL when I looked into #37, which makes me wonder if something else is supposed to happen outside of the socket.

At least comparing to osu, there's nothing out of the ordinary in these first two messages.

CorneliusCornbread commented 1 year ago

Hmm, I managed to get logs from the bridge and it seems like VRChat at least connects to the socket, but then it doesn't do anything from there.

Pipe Server: Main thread awaiting client connection on \\.\pipe\discord-ipc-0
Client connected
Creating socket
Attempting to connect to /run/user/1000/discord-ipc-0
Connected successfully
48 bytes w->l
({"v":1,"client_id":"378435294170447882"}
384 bytes l->w
x{"cmd":"DISPATCH","data":{"v":1,"config":{"cdn_host":"cdn.discordapp.com","api_endpoint":"//discord.com/api","environment":"production"},"user":{"id":"146739807396167680","username":"0e4ef622","discriminator":"0","global_name":"0e4ef622","avatar":"64da4b21a3b63c91d9498dcd39a788f4","avatar_decoration":null,"bot":false,"flags":32,"premium_type":0}},"evt":"READY","nonce":null}

Actually I saw something similar in LoL when I looked into #37, which makes me wonder if something else is supposed to happen outside of the socket.

At least comparing to osu, there's nothing out of the ordinary in these first two messages.

I've had some similar issues with No Man's Sky's rich presence not working, no clue if that's related. I know Discord has two versions of their rich presence, one of which is deprecated and the other is their GameSDK. I would hope most games have since switched but it's a possibility there's an issue due to the two different versions.