Skip to content

Conversation

@Lachee
Copy link
Owner

@Lachee Lachee commented Aug 2, 2025

Refactored how the pipe is resolved for all operating systems. This is done to be able to support more package managers on Linux such as the issue #270 .

This does require the removal of several APIs within the ManagedNamedPipe, which is a breaking change. These have been marked as obsolete but as their implementation was removed it has been marked as erroring.

Features

  • This reaffirms support for Snap installed Discord Clients
  • Adds support for Flatpak installed Discord Clients
  • Adds support for multiple TEMP paths
  • Fixed MacOSX PlatformID being unvailable on .NET 9

Migration

  • The following APIs have been removed in favour for DiscordRPC.IO.PipeLocation.GetPipes:
    • DiscordRPC.IO.ManagedNamedPipeClient.GetPipeName(int)
    • DiscordRPC.IO.ManagedNamedPipeClient.GetPipeName(int, string)
    • DiscordRPC.IO.ManagedNamedPipeClient.GetPipeSandbox()
    • DiscordRPC.IO.ManagedNamedPipeClient.IsUnix()
  • The follow is marked as Obsolete with no planned replacement:
    • DiscordRPC.IO.INamedPipeClient.ConnectedPipe
    • DiscordRPC.Message.ConnectionEstablishedMessage.ConnectedPipe

@SineVector241
Copy link

SineVector241 commented Aug 2, 2025

One thing. You should also add the ability to add/remove custom pipe paths for future proofing the library in case there may be name changes which won't likely happen but is possible.

@Lachee
Copy link
Owner Author

Lachee commented Aug 3, 2025

One thing. You should also add the ability to add/remove custom pipe paths for future proofing the library in case there may be name changes which won't likely happen but is possible.

This would cause each dependant to keep track of the pipe names themselves and handle it manually. I feel like this library should be able to handle this. A contribution guide on how to add/fix pipe paths would be useful.

In the end of the day, this is a "linux issue". Due to the nature of enthusiasts, there will always be a million different ways to implement a pipe and that burden shouldn't be on game developers. This library should be a plugin play.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants