diff --git a/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml b/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml index 59c0fde..5c5bb7f 100644 --- a/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml +++ b/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml @@ -4,10 +4,9 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" - xmlns:local="clr-namespace:Bloxstrap.UI.Elements" + xmlns:local="clr-namespace:Bloxstrap.UI.Elements.ContextMenu" mc:Ignorable="d" Title="ContextMenuContainer" - Background="{ui:ThemeResource ApplicationBackgroundBrush}" MinWidth="0" MinHeight="0" Width="0" @@ -22,6 +21,7 @@ + diff --git a/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs b/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs index c687fc3..44bd1d0 100644 --- a/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs +++ b/Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs @@ -65,6 +65,26 @@ namespace Bloxstrap.UI.Elements.ContextMenu _serverInformationWindow.Activate(); } + private void ActivityWatcher_OnGameJoin(object? sender, EventArgs e) + { + Dispatcher.Invoke(() => { + if (_activityWatcher?.ActivityServerType == ServerType.Public) + InviteDeeplinkMenuItem.Visibility = Visibility.Visible; + + ServerDetailsMenuItem.Visibility = Visibility.Visible; + }); + } + + private void ActivityWatcher_OnGameLeave(object? sender, EventArgs e) + { + Dispatcher.Invoke(() => { + InviteDeeplinkMenuItem.Visibility = Visibility.Collapsed; + ServerDetailsMenuItem.Visibility = Visibility.Collapsed; + + _serverInformationWindow?.Close(); + }); + } + private void Window_Loaded(object? sender, RoutedEventArgs e) { // this is an awful hack lmao im so sorry to anyone who reads this @@ -81,6 +101,8 @@ namespace Bloxstrap.UI.Elements.ContextMenu private void RichPresenceMenuItem_Click(object sender, RoutedEventArgs e) => _richPresenceHandler?.SetVisibility(((MenuItem)sender).IsChecked); + private void InviteDeeplinkMenuItem_Click(object sender, RoutedEventArgs e) => Clipboard.SetText($"roblox://experiences/start?placeId={_activityWatcher?.ActivityPlaceId}&gameInstanceId={_activityWatcher?.ActivityJobId}"); + private void ServerDetailsMenuItem_Click(object sender, RoutedEventArgs e) => ShowServerInformationWindow(); private void LogTracerMenuItem_Click(object sender, RoutedEventArgs e) @@ -96,15 +118,5 @@ namespace Bloxstrap.UI.Elements.ContextMenu _logTracerWindow.Activate(); } - - private void ActivityWatcher_OnGameJoin(object? sender, EventArgs e) => Dispatcher.Invoke(() => ServerDetailsMenuItem.Visibility = Visibility.Visible); - - private void ActivityWatcher_OnGameLeave(object? sender, EventArgs e) - { - Dispatcher.Invoke(() => { - ServerDetailsMenuItem.Visibility = Visibility.Collapsed; - _serverInformationWindow?.Close(); - }); - } } }