Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 41 additions & 2 deletions VintageStoryModManager/DevConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public static class DevConfig
public static double DefaultModInfoPanelRightMargin { get; } = 40.0;
public static string ManagerModDatabaseUrl { get; } = "https://mods.vintagestory.at/simplevsmanager";
public static string ManagerModDatabaseModId { get; } = "5545";
public static string DiscordInviteUrl { get; } = "https://discord.gg/Zhm3QnD2s9";

public static string ModDatabaseUnavailableMessage { get; } =
"Could not reach the online Mod Database, please check your internet connection";
Expand All @@ -60,8 +61,32 @@ public static class DevConfig
public static string FirebaseLegacyModlistDbUrl { get; } =
"https://simple-vs-manager-default-rtdb.europe-west1.firebasedatabase.app";

// Cloud/Firebase cache location (Simple VS Manager/Temp Cache/Firebase Cache)
public static string FirebaseBackupDirectory => Path.Combine(GetManagerDirectory(), FirebaseCacheDirectoryName);
// Cloud/Firebase cache backup location (SVSM Backup folder)
public static string FirebaseBackupDirectory
{
get
{
var customFolder = VintageStoryModManager.Services.CustomConfigFolderManager.GetCustomConfigFolder();
if (!string.IsNullOrWhiteSpace(customFolder))
{
var parentDirectory = Path.GetDirectoryName(customFolder);
if (!string.IsNullOrWhiteSpace(parentDirectory))
{
return Path.Combine(parentDirectory, FirebaseAuthBackupDirectoryName);
}
}

var localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
if (!string.IsNullOrWhiteSpace(localAppData))
return Path.Combine(localAppData, FirebaseAuthBackupDirectoryName);

var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
if (!string.IsNullOrWhiteSpace(appData))
return Path.Combine(appData, FirebaseAuthBackupDirectoryName);

return Path.Combine(AppContext.BaseDirectory, FirebaseAuthBackupDirectoryName);
}
}

// Status log display.
public static string StatusTimestampFormat { get; } = "yyyy-MM-dd HH:mm:ss.fff";
Expand Down Expand Up @@ -89,6 +114,20 @@ public static class DevConfig

public static string FirebaseCacheDirectoryName { get; } = "Temp Cache/Firebase Cache";

public static string FirebaseDatabaseCacheDirectoryName { get; } = "Temp Cache/Firebase Database Cache";

public static string FirebaseDatabaseCacheDirectory
{
get
{
var managerDirectory = VintageStoryModManager.Services.ModCacheLocator.GetManagerDataDirectory();
if (!string.IsNullOrWhiteSpace(managerDirectory))
return Path.Combine(managerDirectory, FirebaseDatabaseCacheDirectoryName);

return Path.Combine(AppContext.BaseDirectory, FirebaseDatabaseCacheDirectoryName);
}
}

// User configuration defaults.
public static string ConfigurationFileName { get; } = "SimpleVSManagerConfiguration.json";
public static string ModConfigPathsFileName { get; } = "SimpleVSManagerModConfigPaths.json";
Expand Down
3 changes: 2 additions & 1 deletion VintageStoryModManager/Services/ModVersionVoteService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ public sealed class ModVersionVoteService : IDisposable

private static readonly string VotesRootPath = DevConfig.ModVersionVoteRootPath;

private static readonly string VoteCachePath = Path.Combine(DevConfig.FirebaseBackupDirectory, "compat-votes-cache.json");
private static readonly string VoteCachePath =
Path.Combine(DevConfig.FirebaseDatabaseCacheDirectory, "compat-votes-cache.json");

/// <summary>
/// Gets the full path to the votes cache file.
Expand Down
2 changes: 1 addition & 1 deletion VintageStoryModManager/Views/Dialogs/HelpDialogWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
TextWrapping="Wrap"><Run Text="If you are experiencing any problems, have any suggestions or just want to ask a question, join the" /><Run Text=" " /><Hyperlink
x:Name="DiscordLink"
Foreground="{DynamicResource Brush.Text.Emphasis}"
RequestNavigate="OnBackupHyperlinkRequestNavigate">
RequestNavigate="OnDiscordLinkRequestNavigate">
<Run Text="Discord server!" />
</Hyperlink></TextBlock>
<TextBlock FontSize="12" TextWrapping="Wrap"><Run Text="Most issues can be solved by deleting the temp cache (See Help and Advanced menu)" />
Expand Down
35 changes: 35 additions & 0 deletions VintageStoryModManager/Views/Dialogs/HelpDialogWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public HelpDialogWindow(string managerDirectory, string? cachedModsDirectory)
{
InitializeComponent();

DiscordLink.NavigateUri = TryCreateUri(DevConfig.DiscordInviteUrl);
DiscordLink.ToolTip = DevConfig.DiscordInviteUrl;

ConfigureCachedModsHyperlink(ModDBlink, cachedModsDirectory, true);
ConfigureFirebaseHyperlink(FirebaseFileHyperlink, managerDirectory, true);
ConfigureHyperlinkCommon(BackupLink, DevConfig.FirebaseBackupDirectory, true);
Expand Down Expand Up @@ -80,6 +83,38 @@ private void OnCachedModsHyperlinkRequestNavigate(object sender, RequestNavigate
HandleHyperlinkNavigation(sender, e);
}

private void OnDiscordLinkRequestNavigate(object sender, RequestNavigateEventArgs e)
{
e.Handled = true;

if (InternetAccessManager.IsInternetAccessDisabled)
{
WpfMessageBox.Show(this,
"Enable Internet Access in the File menu to open Discord.",
"Simple VS Manager",
MessageBoxButton.OK,
MessageBoxImage.Information);
return;
}

try
{
Process.Start(new ProcessStartInfo
{
FileName = DevConfig.DiscordInviteUrl,
UseShellExecute = true
});
}
catch (Exception ex)
{
WpfMessageBox.Show(this,
$"Failed to open Discord:\n{ex.Message}",
"Simple VS Manager",
MessageBoxButton.OK,
MessageBoxImage.Error);
}
}

// NEW: Open the manager's Mod DB page exactly like the Help menu item.
private void OnModDBlinkNavigate(object sender, RequestNavigateEventArgs e)
{
Expand Down
2 changes: 1 addition & 1 deletion VintageStoryModManager/Views/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ public partial class MainWindow : Window
#region Static Configuration

// URLs
private const string DiscordInviteUrl = "https://discord.gg/Zhm3QnD2s9";
private static readonly string DiscordInviteUrl = DevConfig.DiscordInviteUrl;
private static readonly string ManagerModDatabaseUrl = DevConfig.ManagerModDatabaseUrl;
private static readonly string ManagerModDatabaseModId = DevConfig.ManagerModDatabaseModId;
private static readonly string ModDatabaseUnavailableMessage = DevConfig.ModDatabaseUnavailableMessage;
Expand Down