Skip to content

Commit

Permalink
Merge pull request #27908 from smoogipoo/silence-flatpak-exception
Browse files Browse the repository at this point in the history
Globally silence Discord RPC registration failures
  • Loading branch information
bdach committed Apr 19, 2024
2 parents 78fbc28 + 03e13dd commit 6f84467
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions osu.Desktop/DiscordRichPresence.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
using DiscordRPC;
using DiscordRPC.Message;
using Newtonsoft.Json;
using osu.Framework;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Extensions.ObjectExtensions;
Expand Down Expand Up @@ -80,14 +79,20 @@ private void load()
client.OnReady += onReady;
client.OnError += (_, e) => Logger.Log($"An error occurred with Discord RPC Client: {e.Message} ({e.Code})", LoggingTarget.Network, LogLevel.Error);

// A URI scheme is required to support game invitations, as well as informing Discord of the game executable path to support launching the game when a user clicks on join/spectate.
// The library doesn't properly support URI registration when ran from an app bundle on macOS.
if (!RuntimeInfo.IsApple)
try
{
client.RegisterUriScheme();
client.Subscribe(EventType.Join);
client.OnJoin += onJoin;
}
catch (Exception ex)
{
// This is known to fail in at least the following sandboxed environments:
// - macOS (when packaged as an app bundle)
// - flatpak (see: https://github.com/flathub/sh.ppy.osu/issues/170)
// There is currently no better way to do this offered by Discord, so the best we can do is simply ignore it for now.
Logger.Log($"Failed to register Discord URI scheme: {ex}");
}

client.Initialize();
}
Expand Down

0 comments on commit 6f84467

Please sign in to comment.