using HISP.Server; using MiniMvvm; using System; using System.Diagnostics; using System.IO; namespace MPN00BS.ViewModels { public class HispViewModel : ViewModelBase { public void RefreshNames() { swearFilterHeader = (ConfigReader.EnableSwearFilter ? "Disable" : "Enable") + " Swear Filter"; correctionsHeader = (ConfigReader.EnableCorrections ? "Disable" : "Enable") + " Corrections"; vioChecksHeader = (ConfigReader.EnableNonViolations ? "Disable" : "Enable") + " Non-Vio Checks"; spamFilterHeader = (ConfigReader.EnableSpamFilter ? "Disable" : "Enable") + " Spam Filter"; allUsersSubbedHeader = (ConfigReader.AllUsersSubbed ? "Disable" : "Enable") + " All Users Subscribed"; fixOfficalBugsHeader = (ConfigReader.FixOfficalBugs ? "Disable" : "Enable") + " Fixing Offical Bugs"; } public bool CheckServerRunningAndShowMessage() { if (!ServerStarter.HasServerStarted) { MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok); return true; } return false; } public HispViewModel() { ServerStarter.ReadServerProperties(); RefreshNames(); createAccountCommand = MiniCommand.Create(() => { new RegisterWindow().Show(); }); resetPasswordCommand = MiniCommand.Create(() => { if (!ServerStarter.HasServerStarted) { if (CheckServerRunningAndShowMessage()) return; MessageBox.Show(null, "There is no Horse Isle Server running yet.", "Server not Started.", MessageBox.MessageBoxButtons.Ok); return; } new ResetWindow().Show(); }); editServerPropertiesCommand = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; Process p = new Process(); p.StartInfo.FileName = Path.Combine(ServerStarter.BaseDir, "server.properties"); p.StartInfo.UseShellExecute = true; p.Start(); }); openServerFolderCommand = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; Process p = new Process(); p.StartInfo.FileName = ServerStarter.BaseDir; p.StartInfo.UseShellExecute = true; p.Start(); }); shutdownServerCommand = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; GameServer.ShutdownServer(); }); toggleSwearFilter = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; bool enab = !ConfigReader.EnableSwearFilter; ServerStarter.ModifyConfig("enable_word_filter", enab.ToString().ToLowerInvariant()); ConfigReader.EnableSwearFilter = enab; RefreshNames(); }); toggleCorrections = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; bool enab = !ConfigReader.EnableCorrections; ServerStarter.ModifyConfig("enable_corrections", enab.ToString().ToLowerInvariant()); ConfigReader.EnableCorrections = enab; RefreshNames(); }); toggleNonVioChecks = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; bool enab = !ConfigReader.EnableNonViolations; ServerStarter.ModifyConfig("enable_non_violation_check", enab.ToString().ToLowerInvariant()); ConfigReader.EnableNonViolations = enab; RefreshNames(); }); toggleSpamFilter = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; bool enab = !ConfigReader.EnableSpamFilter; ServerStarter.ModifyConfig("enable_spam_filter", enab.ToString().ToLowerInvariant()); ConfigReader.EnableSpamFilter = enab; RefreshNames(); }); toggleAllUsersSubbed = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; bool enab = !ConfigReader.AllUsersSubbed; ServerStarter.ModifyConfig("all_users_subscribed", enab.ToString().ToLowerInvariant()); ConfigReader.AllUsersSubbed = enab; RefreshNames(); }); toggleFixOfficalBugs = MiniCommand.Create(() => { if (CheckServerRunningAndShowMessage()) return; bool enab = !ConfigReader.FixOfficalBugs; ServerStarter.ModifyConfig("fix_offical_bugs", enab.ToString().ToLowerInvariant()); ConfigReader.FixOfficalBugs = enab; RefreshNames(); }); } // Binding variables private String _swearFilterHeader; public String swearFilterHeader { get { return _swearFilterHeader; } set { RaiseAndSetIfChanged(ref _swearFilterHeader, value); } } private String _correctionsHeader; public String correctionsHeader { get { return _correctionsHeader; } set { RaiseAndSetIfChanged(ref _correctionsHeader, value); } } private String _vioChecksHeader; public String vioChecksHeader { get { return _vioChecksHeader; } set { RaiseAndSetIfChanged(ref _vioChecksHeader, value); } } private String _spamFilterHeader; public String spamFilterHeader { get { return _spamFilterHeader; } set { RaiseAndSetIfChanged(ref _spamFilterHeader, value); } } private String _allUsersSubbedHeader; public String allUsersSubbedHeader { get { return _allUsersSubbedHeader; } set { RaiseAndSetIfChanged(ref _allUsersSubbedHeader, value); } } private String _fixOfficalBugsHeader; public String fixOfficalBugsHeader { get { return _fixOfficalBugsHeader; } set { RaiseAndSetIfChanged(ref _fixOfficalBugsHeader, value); } } // Commands public MiniCommand shutdownServerCommand { get; } public MiniCommand createAccountCommand { get; } public MiniCommand editServerPropertiesCommand { get; } public MiniCommand openServerFolderCommand { get; } public MiniCommand resetPasswordCommand { get; } public MiniCommand toggleSwearFilter { get; } public MiniCommand toggleCorrections { get; } public MiniCommand toggleNonVioChecks { get; } public MiniCommand toggleSpamFilter { get; } public MiniCommand toggleAllUsersSubbed { get; } public MiniCommand toggleFixOfficalBugs { get; } } }