65 lines
2.0 KiB
C#
65 lines
2.0 KiB
C#
using Avalonia;
|
|
using Avalonia.Controls.ApplicationLifetimes;
|
|
using Avalonia.Markup.Xaml;
|
|
using DiscordRPC;
|
|
using DiscordRPC.Logging;
|
|
using DiscordRPC.Message;
|
|
|
|
namespace MafiaClient
|
|
{
|
|
public class App : Application
|
|
{
|
|
public override void Initialize()
|
|
{
|
|
Instance = this;
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
|
|
public override void OnFrameworkInitializationCompleted()
|
|
{
|
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
|
{
|
|
_rpcClient = new DiscordRpcClient("800016130097152000", autoEvents: true);
|
|
_rpcClient.RegisterUriScheme();
|
|
_rpcClient.Logger = new ConsoleLogger() { Level = LogLevel.Warning };
|
|
_rpcClient.OnJoinRequested += RpcClientOnOnJoinRequested;
|
|
_rpcClient.OnJoin += RpcClientOnOnJoin;
|
|
_rpcClient.SetSubscription(EventType.Join | EventType.JoinRequest);
|
|
_rpcClient.Initialize();
|
|
_rpcClient.SetPresence(new RichPresence()
|
|
{
|
|
State = "Запуск игры..."
|
|
});
|
|
|
|
desktop.MainWindow = new MainWindow();
|
|
|
|
Settings.Initialize();
|
|
Settings.Save();
|
|
}
|
|
|
|
base.OnFrameworkInitializationCompleted();
|
|
}
|
|
|
|
public static App Instance;
|
|
|
|
private DiscordRpcClient _rpcClient;
|
|
|
|
public ServerConnection Connection;
|
|
|
|
public DiscordRpcClient GetRpcClient()
|
|
{
|
|
return _rpcClient;
|
|
}
|
|
|
|
private void RpcClientOnOnJoin(object sender, JoinMessage args)
|
|
{
|
|
string secret = args.Secret;
|
|
Connection = new ServerConnection(secret.Replace("/join", ""));
|
|
}
|
|
|
|
private void RpcClientOnOnJoinRequested(object sender, JoinRequestMessage args)
|
|
{
|
|
_rpcClient.Respond(args, true);
|
|
}
|
|
}
|
|
} |