private void CmdAccept_Click(object sender, EventArgs e) { if (cboSkin.SelectedItem == null) { MessageBox.Show("You must select the visual skin.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning); cboSkin.Focus(); return; } // Change the current skin SkinContainer skin = ((ImageComboBoxItem)cboSkin.SelectedItem).Value as SkinContainer; SkinManager.EnableFormSkins(); DevExpress.LookAndFeel.UserLookAndFeel.Default.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Skin; DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = skin.SkinName; // General settings StudioContext.SkinName = skin.SkinName; StudioContext.OpenLastProject = chkProjectsLoadLast.Checked; // LOGs settings Logger.LogLevel level = this.GetLoggerLevel(cboLogFileLevel); if (level == Logger.LogLevel.Disabled) { Logger.ModuleManager.RemoveLibrary(typeof(FileLogger).Name); } else { XmlSettingsItem library = new XmlSettingsItem(typeof(FileLogger).Name, typeof(FileLogger).FullName); library.AddSetting(Logger.SETTING_LOG_LEVEL, level.ToString().ToLower()); Logger.ModuleManager.AddLibrary(library); } level = this.GetLoggerLevel(cboLogWindowsLevel); if (level == Logger.LogLevel.Disabled) { Logger.ModuleManager.RemoveLibrary(typeof(WinLogger).Name); } else { XmlSettingsItem library = new XmlSettingsItem(typeof(WinLogger).Name, typeof(WinLogger).FullName); library.AddSetting(Logger.SETTING_LOG_LEVEL, level.ToString().ToLower()); library.AddSetting(WinLogger.SETTING_LOG_NAME, txtLogWindowsName.Text); library.AddSetting(WinLogger.SETTING_LOG_SOURCE, txtLogWindowsSource.Text); Logger.ModuleManager.AddLibrary(library); } OTCContext.Settings.SaveSettings(); this.RefreshPluginsBar = this.PluginsControl.PluginsChanged; this.DialogResult = DialogResult.OK; this.Close(); }
private void WriteLogEntry(Logger.LogLevel level, object sender, string message, params object[] args) { try { // Ensure folder LOGS is created DirectoryInfo dir = new DirectoryInfo(Path.GetDirectoryName(this.Filename)); if (!dir.Exists) { dir.Create(); } // Generate text for entry StringBuilder txt = new StringBuilder(); txt.AppendLine(string.Format("{0} - {1} at {2}", DateTime.Now.ToString(Logger.FORMAT_DATETIME_LONG), level.ToString().ToUpper(), sender != null ? sender.GetType().Assembly.FullName : Application.ProductName)); txt.AppendLine(string.Format(message, args)); using (StreamWriter sw = File.AppendText(this.Filename)) { sw.WriteLine(txt.ToString()); } // Set all used instances to null to minimize memory usage txt = null; dir = null; } catch { // This class can't thrown exceptions // Any exception is ignored } }
public void Log(Logger.LogLevel level, string message, bool containsPii) { if (!containsPii) { string requestId = Activity.Current?.Id; log.AppendLine($"{requestId} - {level.ToString()} - {message}"); } }
internal void AddDefaultCommands() { _LoggerSubscriber = (logger, loglevel, indent, str) => { PrintLine(logger.String(loglevel, str, indent: indent), color: _LoggerColors[loglevel]); }; AddCommand("!!", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Execute(histindex.Value - 1)); }); AddCommand("!'", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Entries[histindex.Value - 1]); }); AddCommand("echo", (args) => { return(string.Join(" ", args.ToArray())); }).WithSubCommand("hello", (args) => { return("Hello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!"); }); AddGroup("debug") .WithSubCommand("spawn-rand-chest", (args) => { var chest = GameManager.Instance.RewardManager.SpawnTotallyRandomChest(GameManager.Instance.PrimaryPlayer.CurrentRoom.GetRandomAvailableCellDumb()); return(chest.name); }) .WithSubCommand("force-dual-wield", (args) => { if (args.Count < 1) { throw new Exception("At least 1 argument required."); } var partner_id = int.Parse(args[0]); var player = GameManager.Instance.PrimaryPlayer; var gun = player.inventory.CurrentGun; var partner_gun = PickupObjectDatabase.GetById(partner_id) as Gun; player.inventory.AddGunToInventory(partner_gun); var forcer = gun.gameObject.AddComponent <DualWieldForcer>(); forcer.Gun = gun; forcer.PartnerGunID = partner_gun.PickupObjectId; forcer.TargetPlayer = player; return("Done"); }) .WithSubCommand("unexclude-all-items", (args) => { foreach (var ent in PickupObjectDatabase.Instance.Objects) { if (ent == null) { continue; } ent.quality = PickupObject.ItemQuality.SPECIAL; } return("Done"); }) .WithSubCommand("activate-all-synergies", (args) => { foreach (var ent in GameManager.Instance.SynergyManager.synergies) { if (ent == null) { continue; } ent.ActivationStatus = SynergyEntry.SynergyActivation.ACTIVE; } return("Done"); }) .WithSubCommand("character", (args) => { if (args.Count < 1) { throw new Exception("At least 1 argument required."); } StartCoroutine(_ChangeCharacter(args[0], args.Count > 1)); return($"Changed character to {args[0]}"); }) .WithSubCommand("parser-bounds-test", (args) => { var text = "echo Hello! \"Hello world!\" This\\ is\\ great \"It\"works\"with\"\\ wacky\" stuff\" \\[\\] \"\\[\\]\" [e[echo c][echo h][echo [echo \"o\"]] \"hel\"[echo lo][echo !]]"; CurrentCommandText = text; return(null); }) .WithSubCommand("giveid", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required."); } var pickup_obj = PickupObjectDatabase.Instance.InternalGetById(int.Parse(args[0])); if (pickup_obj == null) { return("Item ID {args[0]} doesn't exist!"); } LootEngine.TryGivePrefabToPlayer(pickup_obj.gameObject, GameManager.Instance.PrimaryPlayer, true); return(pickup_obj.EncounterNameOrDisplayName); }); AddGroup("pool") .WithSubGroup( new Group("items") .WithSubCommand("idof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (numeric ID)."); } var id = int.Parse(args[0]); foreach (var pair in ETGMod.Items.Pairs) { if (pair.Value.PickupObjectId == id) { return(pair.Key); } } return("Entry not found."); }) .WithSubCommand("nameof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(_GetPickupObjectName(pair.Value)); } } return("Entry not found."); }) .WithSubCommand("numericof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(pair.Value.PickupObjectId.ToString()); } } return("Entry not found."); }) .WithSubCommand("list", (args) => { var s = new StringBuilder(); var pairs = new List <KeyValuePair <string, PickupObject> >(); foreach (var pair in ETGMod.Items.Pairs) { pairs.Add(pair); } foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } } pairs.Sort((x, y) => string.Compare(_GetPickupObjectName(x.Value), _GetPickupObjectName(y.Value))); foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { continue; } s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } return(s.ToString()); }) .WithSubCommand("random", (args) => { return(ETGMod.Items.RandomKey); }) ); AddCommand("summon", (args) => { var player = GameManager.Instance.PrimaryPlayer; if (player == null) { throw new Exception("No player"); } var cell = player.CurrentRoom.GetRandomAvailableCellDumb(); var entity = AIActor.Spawn(ETGMod.Entities[args[0]], cell, player.CurrentRoom, true, AIActor.AwakenAnimationType.Default, true); if (ETGMod.Entities.GetType(args[0]) == ETGMod.EntityType.Friendly) { entity.CompanionOwner = player; entity.CompanionSettings = new ActorCompanionSettings(); entity.CanTargetPlayers = false; var companion = entity.GetComponent <CompanionController>(); if (companion != null) { companion.Initialize(player); if (companion.specRigidbody) { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(companion.specRigidbody, null, false); } } } var name = args[0]; if (entity.encounterTrackable?.journalData?.PrimaryDisplayName != null) { name = StringTableManager.GetEnemiesString(entity.encounterTrackable?.journalData?.PrimaryDisplayName); } return(name); }); AddCommand("listmods", (args) => { var s = new StringBuilder(); s.AppendLine("Loaded mods:"); foreach (var mod in ETGMod.ModLoader.LoadedMods) { _GetModInfo(s, mod); } return(s.ToString()); }); AddCommand("lua", (args) => { LuaMode = true; return("[entered lua mode]"); }); AddCommand("give", (args) => { LootEngine.TryGivePrefabToPlayer(ETGMod.Items[args[0]].gameObject, GameManager.Instance.PrimaryPlayer, true); return(args[0]); }); AddGroup("dump") .WithSubCommand("synergy_chest", (args) => { System.Console.WriteLine(ObjectDumper.Dump(GameManager.Instance.RewardManager.Synergy_Chest, depth: 10)); return("Dumped to log"); }) .WithSubCommand("synergies", (args) => { var id = 0; foreach (var synergy in GameManager.Instance.SynergyManager.synergies) { if (synergy.NameKey != null) { var name = StringTableManager.GetSynergyString(synergy.NameKey); System.Console.WriteLine($"== SYNERGY ID {id} NAME {name} =="); } else { System.Console.WriteLine($"== SYNERGY ID {id} =="); } System.Console.WriteLine($" ACTIVATION STATUS: {synergy.ActivationStatus}"); System.Console.WriteLine($" # OF OBJECTS REQUIRED: {synergy.NumberObjectsRequired}"); System.Console.WriteLine($" ACTIVE WHEN GUN UNEQUIPPED?: {synergy.ActiveWhenGunUnequipped}"); System.Console.WriteLine($" REQUIRES AT LEAST ONE GUN AND ONE ITEM?: {synergy.RequiresAtLeastOneGunAndOneItem}"); System.Console.WriteLine($" MANDATORY GUNS:"); foreach (var itemid in synergy.MandatoryGunIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" OPTIONAL GUNS:"); foreach (var itemid in synergy.OptionalGunIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" MANDATORY ITEMS:"); foreach (var itemid in synergy.MandatoryItemIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" OPTIONAL ITEMS:"); foreach (var itemid in synergy.OptionalItemIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" BONUS SYNERGIES:"); foreach (var bonus in synergy.bonusSynergies) { System.Console.WriteLine($" - {bonus}"); } System.Console.WriteLine($" STAT MODIFIERS:"); foreach (var statmod in synergy.statModifiers) { System.Console.WriteLine($" - STAT: {statmod.statToBoost}"); System.Console.WriteLine($" AMOUNT: {statmod.amount}"); System.Console.WriteLine($" MODIFY TYPE: {statmod.modifyType}"); System.Console.WriteLine($" PERSISTS ON COOP DEATH?: {statmod.PersistsOnCoopDeath}"); System.Console.WriteLine($" IGNORED FOR SAVE DATA?: {statmod.ignoredForSaveData}"); } id++; } return("Dumped to log"); }) .WithSubCommand("items", (args) => { var b = new StringBuilder(); var db = PickupObjectDatabase.Instance.Objects; for (int i = 0; i < db.Count; i++) { PickupObject obj = null; string nameprefix = ""; string name = null; try { obj = db[i]; } catch { name = "[ERROR: failed getting object by index]"; } if (obj != null) { try { var displayname = obj.encounterTrackable.journalData.PrimaryDisplayName; name = StringTableManager.ItemTable[displayname].GetWeightedString(); } catch { name = "[ERROR: failed getting ammonomicon name]"; } if (name == null) { try { name = obj.EncounterNameOrDisplayName; } catch { name = "[ERROR: failed getting encounter or display name]"; } } } if (name == null && obj != null) { name = "[NULL NAME (but object is not null)]"; } name = $"{nameprefix} {name}"; if (name != null) { b.AppendLine($"{i}: {name}"); _Logger.Info($"{i}: {name}"); } } return(b.ToString()); }); AddGroup("log") .WithSubCommand("sub", (args) => { if (_Subscribed) { return("Already subscribed."); } Logger.Subscribe(_LoggerSubscriber); _Subscribed = true; return("Done."); }) .WithSubCommand("unsub", (args) => { if (!_Subscribed) { return("Not subscribed yet."); } Logger.Unsubscribe(_LoggerSubscriber); _Subscribed = false; return("Done."); }) .WithSubCommand("level", (args) => { if (args.Count == 0) { return(_LogLevel.ToString().ToLowerInvariant()); } else { switch (args[0]) { case "debug": _LogLevel = Logger.LogLevel.Debug; break; case "info": _LogLevel = Logger.LogLevel.Info; break; case "warn": _LogLevel = Logger.LogLevel.Warn; break; case "error": _LogLevel = Logger.LogLevel.Error; break; default: throw new Exception($"Unknown log level '{args[0]}"); } return("Done."); } }); // test commands to dump collection AddGroup("texdump") .WithSubCommand("collection", (args) => { if (args.Count == 0) { return("No name specified"); } else { string collectionName = args[0]; Animation.Collection.Dump(collectionName); return("Successfull"); } }); }
internal void AddDefaultCommands() { _LoggerSubscriber = (logger, loglevel, indent, str) => { PrintLine(logger.String(loglevel, str, indent: indent), color: _LoggerColors[loglevel]); }; AddCommand("!!", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Execute(histindex.Value - 1)); }); AddCommand("!'", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Entries[histindex.Value - 1]); }); AddCommand("echo", (args) => { return(string.Join(" ", args.ToArray())); }).WithSubCommand("hello", (args) => { return("Hello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!"); }); AddGroup("debug") .WithSubCommand("parser-bounds-test", (args) => { var text = "echo Hello! \"Hello world!\" This\\ is\\ great \"It\"works\"with\"\\ wacky\" stuff\" \\[\\] \"\\[\\]\" [e[echo c][echo h][echo [echo \"o\"]] \"hel\"[echo lo][echo !]]"; CurrentCommandText = text; return(null); }) .WithSubCommand("giveid", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required."); } var pickup_obj = PickupObjectDatabase.Instance.InternalGetById(int.Parse(args[0])); if (pickup_obj == null) { return("Item ID {args[0]} doesn't exist!"); } LootEngine.TryGivePrefabToPlayer(pickup_obj.gameObject, GameManager.Instance.PrimaryPlayer, true); return(pickup_obj.EncounterNameOrDisplayName); }); AddGroup("pool") .WithSubGroup( new Group("items") .WithSubCommand("idof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (numeric ID)."); } var id = int.Parse(args[0]); foreach (var pair in ETGMod.Items.Pairs) { if (pair.Value.PickupObjectId == id) { return(pair.Key); } } return("Entry not found."); }) .WithSubCommand("nameof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(_GetPickupObjectName(pair.Value)); } } return("Entry not found."); }) .WithSubCommand("numericof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(pair.Value.PickupObjectId.ToString()); } } return("Entry not found."); }) .WithSubCommand("list", (args) => { var s = new StringBuilder(); var pairs = new List <KeyValuePair <string, PickupObject> >(); foreach (var pair in ETGMod.Items.Pairs) { pairs.Add(pair); } foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } } pairs.Sort((x, y) => string.Compare(_GetPickupObjectName(x.Value), _GetPickupObjectName(y.Value))); foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { continue; } s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } return(s.ToString()); }) .WithSubCommand("random", (args) => { return(ETGMod.Items.RandomKey); }) ); AddCommand("listmods", (args) => { var s = new StringBuilder(); s.AppendLine("Loaded mods:"); foreach (var mod in ETGMod.ModLoader.LoadedMods) { _GetModInfo(s, mod); } return(s.ToString()); }); AddCommand("give", (args) => { LootEngine.TryGivePrefabToPlayer(ETGMod.Items[args[0]].gameObject, GameManager.Instance.PrimaryPlayer, true); return(args[0]); }); AddCommand("exec", (args) => { var script = args[0]; try { var result = ETGMod.ModLoader.LuaState.DoString(script); string output = "[?]"; if (result.Count > 0) { var b = new StringBuilder(); foreach (var r in result) { b.AppendLine(r.ToString()); } output = b.ToString(); } else { output = "[ok]"; } return(output); } catch (Eluant.LuaException e) { return(e.ToString()); } }); AddGroup("dump") .WithSubCommand("synergy_chest", (args) => { System.Console.WriteLine(ObjectDumper.Dump(GameManager.Instance.RewardManager.Synergy_Chest, depth: 10)); return("Dumped to log"); }) .WithSubCommand("synergies", (args) => { var id = 0; foreach (var synergy in GameManager.Instance.SynergyManager.synergies) { if (synergy.NameKey != null) { var name = StringTableManager.GetSynergyString(synergy.NameKey); System.Console.WriteLine($"== SYNERGY ID {id} NAME {name} =="); } else { System.Console.WriteLine($"== SYNERGY ID {id} =="); } System.Console.WriteLine($" ACTIVATION STATUS: {synergy.ActivationStatus}"); System.Console.WriteLine($" # OF OBJECTS REQUIRED: {synergy.NumberObjectsRequired}"); System.Console.WriteLine($" ACTIVE WHEN GUN UNEQUIPPED?: {synergy.ActiveWhenGunUnequipped}"); System.Console.WriteLine($" REQUIRES AT LEAST ONE GUN AND ONE ITEM?: {synergy.RequiresAtLeastOneGunAndOneItem}"); System.Console.WriteLine($" MANDATORY GUNS:"); foreach (var itemid in synergy.MandatoryGunIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" OPTIONAL GUNS:"); foreach (var itemid in synergy.OptionalGunIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" MANDATORY ITEMS:"); foreach (var itemid in synergy.MandatoryItemIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" OPTIONAL ITEMS:"); foreach (var itemid in synergy.OptionalItemIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" BONUS SYNERGIES:"); foreach (var bonus in synergy.bonusSynergies) { System.Console.WriteLine($" - {bonus}"); } System.Console.WriteLine($" STAT MODIFIERS:"); foreach (var statmod in synergy.statModifiers) { System.Console.WriteLine($" - STAT: {statmod.statToBoost}"); System.Console.WriteLine($" AMOUNT: {statmod.amount}"); System.Console.WriteLine($" MODIFY TYPE: {statmod.modifyType}"); System.Console.WriteLine($" PERSISTS ON COOP DEATH?: {statmod.PersistsOnCoopDeath}"); System.Console.WriteLine($" IGNORED FOR SAVE DATA?: {statmod.ignoredForSaveData}"); } id++; } return("Dumped to log"); }) .WithSubCommand("items", (args) => { var b = new StringBuilder(); var db = PickupObjectDatabase.Instance.Objects; for (int i = 0; i < db.Count; i++) { PickupObject obj = null; string nameprefix = ""; string name = null; try { obj = db[i]; } catch { name = "[ERROR: failed getting object by index]"; } if (obj != null) { try { var displayname = obj.encounterTrackable.journalData.PrimaryDisplayName; name = StringTableManager.ItemTable[displayname].GetWeightedString(); } catch { name = "[ERROR: failed getting ammonomicon name]"; } if (name == null) { try { name = obj.EncounterNameOrDisplayName; } catch { name = "[ERROR: failed getting encounter or display name]"; } } } if (name == null && obj != null) { name = "[NULL NAME (but object is not null)]"; } name = $"{nameprefix} {name}"; if (name != null) { b.AppendLine($"{i}: {name}"); _Logger.Info($"{i}: {name}"); } } return(b.ToString()); }); AddGroup("log") .WithSubCommand("sub", (args) => { if (_Subscribed) { return("Already subscribed."); } Logger.Subscribe(_LoggerSubscriber); _Subscribed = true; return("Done."); }) .WithSubCommand("unsub", (args) => { if (!_Subscribed) { return("Not subscribed yet."); } Logger.Unsubscribe(_LoggerSubscriber); _Subscribed = false; return("Done."); }) .WithSubCommand("level", (args) => { if (args.Count == 0) { return(_LogLevel.ToString().ToLowerInvariant()); } else { switch (args[0]) { case "debug": _LogLevel = Logger.LogLevel.Debug; break; case "info": _LogLevel = Logger.LogLevel.Info; break; case "warn": _LogLevel = Logger.LogLevel.Warn; break; case "error": _LogLevel = Logger.LogLevel.Error; break; default: throw new Exception($"Unknown log level '{args[0]}"); } return("Done."); } }); }
public static bool GetUserConf() { Logger.GetInstance().Debug("GetUserConf called"); try { RegistryKey mydlpKey = Registry.LocalMachine.OpenSubKey("Software", true).CreateSubKey("MyDLP"); //Get screenShotConfiguration if ((int)(getRegistryConfSafe(mydlpKey, "prtscr_block", 0, RegistryValueKind.DWord)) == 0) { blockScreenShot = false; } else { blockScreenShot = true; screentShotProcesses = (String)getRegistryConfSafe(mydlpKey, "prtscr_processes", 0, RegistryValueKind.String); } //Get archiveInbound if ((int)(getRegistryConfSafe(mydlpKey, "archive_inbound", 0, RegistryValueKind.DWord)) == 0) { archiveInbound = false; } else { archiveInbound = true; } //Get usbSerialAccessControl if ((int)(getRegistryConfSafe(mydlpKey, "usb_serial_access_control", 0, RegistryValueKind.DWord)) == 0) { usbSerialAccessControl = false; } else { usbSerialAccessControl = true; } //Get printMonitor if ((int)(getRegistryConfSafe(mydlpKey, "print_monitor", 0, RegistryValueKind.DWord)) == 0) { printerMonitor = false; } else { printerMonitor = true; } //Get printerPrefix printerPrefix = (String)getRegistryConfSafe(mydlpKey, "printer_prefix", "(MyDLP)", RegistryValueKind.String); //Get remStorEncryption if ((int)(getRegistryConfSafe(mydlpKey, "usbstor_encryption", 0, RegistryValueKind.DWord)) == 0) { remStorEncryption = false; } else { remStorEncryption = true; } //Get seapServer seapServer = (String)getRegistryConfSafe(mydlpKey, "seap_server", "127.0.0.1", RegistryValueKind.String); //Get managementServer managementServer = (String)getRegistryConfSafe(mydlpKey, "management_server", "127.0.0.1", RegistryValueKind.String); //Get seapPort seapPort = (int)getRegistryConfSafe(mydlpKey, "seap_port", 9099, RegistryValueKind.DWord); //Try to use old management server if local host found for management server if (managementServer == "127.0.0.1") { managementServer = (String)getRegistryConfSafe(mydlpKey, "ManagementServer", "127.0.0.1", RegistryValueKind.String, false); //set new key mydlpKey.SetValue("management_server", managementServer, RegistryValueKind.String); } //try to delete old key anyway mydlpKey.DeleteValue("ManagementServer", false); //Get logLimit logLimit = (int)getRegistryConfSafe(mydlpKey, "log_limit", 10485760, RegistryValueKind.DWord); //Get maximumObjectSize maximumObjectSize = (int)getRegistryConfSafe(mydlpKey, "maximum_object_size", 10485760, RegistryValueKind.DWord); if (!Environment.UserInteractive) { //Get loglevel logLevel = (Logger.LogLevel)getRegistryConfSafe(mydlpKey, "log_level", 1, RegistryValueKind.DWord); if (logLevel > Logger.LogLevel.DEBUG) { logLevel = Logger.LogLevel.DEBUG; } } } catch (Exception e) { Logger.GetInstance().Error("Unable to open registry key HKLM/Software/MyDLP " + e); return(false); } Logger.GetInstance().Info("MyDLP LogLevel: " + logLevel.ToString()); Logger.GetInstance().Info("MyDLP ManagementServer: " + managementServer); Logger.GetInstance().Info("MyDLP ArchiveInbound: " + archiveInbound); Logger.GetInstance().Info("MyDLP USBSerialAccessControl: " + usbSerialAccessControl); Logger.GetInstance().Info("MyDLP PrinterMonitor: " + printerMonitor); Logger.GetInstance().Info("MyDLP LogLimit: " + logLimit); Logger.GetInstance().Info("MyDLP MaximumObjectSize: " + maximumObjectSize); Logger.GetInstance().Info("MyDLP PrinterPrefix: " + printerPrefix); return(true); }
internal void AddDefaultCommands() { _LoggerSubscriber = (logger, loglevel, indent, str) => { PrintLine(logger.String(loglevel, str, indent: indent), color: _LoggerColors[loglevel]); }; AddCommand("!!", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Execute(histindex.Value - 1)); }); AddCommand("!'", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Entries[histindex.Value - 1]); }); AddCommand("echo", (args) => { return(string.Join(" ", args.ToArray())); }).WithSubCommand("hello", (args) => { return("Hello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!"); }); AddGroup("debug") .WithSubCommand("parser-bounds-test", (args) => { var text = "echo Hello! \"Hello world!\" This\\ is\\ great \"It\"works\"with\"\\ wacky\" stuff\" \\[\\] \"\\[\\]\" [e[echo c][echo h][echo [echo \"o\"]] \"hel\"[echo lo][echo !]]"; CurrentCommandText = text; return(null); }) .WithSubCommand("giveid", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required."); } var pickup_obj = PickupObjectDatabase.Instance.InternalGetById(int.Parse(args[0])); if (pickup_obj == null) { return("Item ID {args[0]} doesn't exist!"); } LootEngine.TryGivePrefabToPlayer(pickup_obj.gameObject, GameManager.Instance.PrimaryPlayer, true); return(pickup_obj.EncounterNameOrDisplayName); }); AddGroup("pool") .WithSubGroup( new Group("items") .WithSubCommand("idof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (numeric ID)."); } var id = int.Parse(args[0]); foreach (var pair in ETGMod.Items.Pairs) { if (pair.Value.PickupObjectId == id) { return(pair.Key); } } return("Entry not found."); }) .WithSubCommand("nameof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(_GetPickupObjectName(pair.Value)); } } return("Entry not found."); }) .WithSubCommand("numericof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(pair.Value.PickupObjectId.ToString()); } } return("Entry not found."); }) .WithSubCommand("list", (args) => { var s = new StringBuilder(); var pairs = new List <KeyValuePair <string, PickupObject> >(); foreach (var pair in ETGMod.Items.Pairs) { pairs.Add(pair); } foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } } pairs.Sort((x, y) => string.Compare(_GetPickupObjectName(x.Value), _GetPickupObjectName(y.Value))); foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { continue; } s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } return(s.ToString()); }) .WithSubCommand("random", (args) => { return(ETGMod.Items.RandomKey); }) ); AddCommand("listmods", (args) => { var s = new StringBuilder(); s.AppendLine("Loaded mods:"); foreach (var mod in ETGMod.ModLoader.LoadedMods) { _GetModInfo(s, mod); } return(s.ToString()); }); AddCommand("give", (args) => { LootEngine.TryGivePrefabToPlayer(ETGMod.Items[args[0]].gameObject, GameManager.Instance.PrimaryPlayer, true); return(args[0]); }); AddGroup("dump") .WithSubCommand("items", (args) => { var b = new StringBuilder(); var db = PickupObjectDatabase.Instance.Objects; for (int i = 0; i < db.Count; i++) { PickupObject obj = null; string name = null; try { obj = db[i]; } catch { name = "[ERROR: failed getting object by index]"; } if (obj != null) { try { var displayname = obj.encounterTrackable.journalData.PrimaryDisplayName; name = StringTableManager.ItemTable[displayname].GetWeightedString(); } catch { name = "[ERROR: failed getting ammonomicon name]"; } if (name == null) { try { name = obj.EncounterNameOrDisplayName; } catch { name = "[ERROR: failed getting encounter or display name]"; } } } if (name == null && obj != null) { name = "[NULL NAME (but object is not null)]"; } if (name != null) { b.AppendLine($"{i}: {name}"); _Logger.Info($"{i}: {name}"); } } return(b.ToString()); }); AddGroup("log") .WithSubCommand("sub", (args) => { if (_Subscribed) { return("Already subscribed."); } Logger.Subscribe(_LoggerSubscriber); _Subscribed = true; return("Done."); }) .WithSubCommand("unsub", (args) => { if (!_Subscribed) { return("Not subscribed yet."); } Logger.Unsubscribe(_LoggerSubscriber); _Subscribed = false; return("Done."); }) .WithSubCommand("level", (args) => { if (args.Count == 0) { return(_LogLevel.ToString().ToLowerInvariant()); } else { switch (args[0]) { case "debug": _LogLevel = Logger.LogLevel.Debug; break; case "info": _LogLevel = Logger.LogLevel.Info; break; case "warn": _LogLevel = Logger.LogLevel.Warn; break; case "error": _LogLevel = Logger.LogLevel.Error; break; default: throw new Exception($"Unknown log level '{args[0]}"); } return("Done."); } }); }