private void SaveButton_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(NameBox.Text)) { MessageBox.Show("You must enter a server name."); return; } if (string.IsNullOrEmpty(IPBox.Text) || !IPAddress.TryParse(IPBox.Text, out IPAddress ipAddress)) { MessageBox.Show("You must enter a (valid) IP address."); return; } if (string.IsNullOrEmpty(PasswordBox.Text)) { MessageBox.Show("You must enter a password."); return; } ServerItem serverItem = new ServerItem(NameBox.Text, ipAddress.ToString(), (int)ServerPort.Value, (int)RCONPort.Value, PasswordBox.Text, ConnectOnStartupCheck.Checked); var search = DataFileSystem.Data.AllServers.Where(x => x.Name == serverItem.Name); if (search.Any()) { DataFileSystem.Data.AllServers.Remove(search.First()); } DataFileSystem.Data.AllServers.Add(serverItem); DataFileSystem.SaveData(); RefreshServerList(); }
private void Init() { storedData = Interface.Oxide.DataFileSystem.ReadObject <StoredData>("MyDataFile"); Interface.Oxide.DataFileSystem.WriteObject("MyDataFile", storedData); dataFile = new DataFileSystem($"{Interface.Oxide.DataDirectory}\\player_info"); }
void Loaded() { datafile = Interface.GetMod().DataFileSystem; LoadData(); foreach (string userid in storedData.knownPlayers) { LoadPlayer(userid); } }
void Init() { Unsubscribe(nameof(CanNetworkTo)); Unsubscribe(nameof(OnEntityTakeDamage)); ////Unsubscribe(nameof(OnItemAddedToContainer)); configFile = new DataFileSystem(Interface.Oxide.ConfigDirectory); itemLimits = configFile.ReadObject <Dictionary <string, object> > ("Bank_ItemLimits"); permission.RegisterPermission("bank.use", this); CheckConfig(); datafile = new DataFileSystem(Interface.Oxide.DataDirectory + "\\" + this.GetConfig <string> ("subDirectory", "banks")); boxPrefabs = GetConfig("Settings", "boxes", GetDefaultBoxes()); boxSlots = GetConfig("Settings", "slots", GetDefaultSlots()); defaultBoxPrefab = GetConfig("Settings", "defaultBox", "assets/prefabs/deployable/woodenbox/woodbox_deployed.prefab"); defaultSlots = GetConfig("Settings", "defaultSlots", 4); cooldownMinutes = GetConfig("Settings", "cooldownMinutes", 5f); radiationMax = GetConfig("Settings", "radiationMax", 1f); allowSafeZone = GetConfig("Settings", "allowSafeZone", true); npconly = GetConfig("Settings", "NPCBankersOnly", false); List <object> lnpcids = GetConfig("Settings", "NPCIDs", new List <object> ()); foreach (object id in lnpcids) { npcids.Add(id.ToString()); } keyring = GetConfig("Settings", "Keyring", true); foreach (KeyValuePair <string, object> kvp in boxPrefabs) { permission.RegisterPermission(kvp.Key, this); } foreach (KeyValuePair <string, object> kvp in boxSlots) { if (!boxPrefabs.ContainsKey(kvp.Key)) { permission.RegisterPermission(kvp.Key, this); } } foreach (BasePlayer player in BasePlayer.activePlayerList) { LoadProfile(player.userID); } }
void Loaded() { configFile = new DataFileSystem(Interface.Oxide.ConfigDirectory); itemLimits = configFile.ReadObject <Dictionary <string, object> >("Bank_ItemLimits"); permission.RegisterPermission("bank.use", this); CheckConfig(); LoadMessages(); datafile = new DataFileSystem(Interface.Oxide.DataDirectory + "\\" + this.GetConfig <string>("subDirectory", "banks")); boxPrefabs = GetConfig("Settings", "boxes", GetDefaultBoxes()); boxSlots = GetConfig("Settings", "slots", GetDefaultSlots()); defaultBoxPrefab = GetConfig("Settings", "defaultBox", "assets/prefabs/deployable/woodenbox/woodbox_deployed.prefab"); defaultSlots = GetConfig("Settings", "defaultSlots", 4); cooldownMinutes = GetConfig("Settings", "cooldownMinutes", 5f); radiationMax = GetConfig("Settings", "radiationMax", 1f); npconly = GetConfig("Settings", "NPCBankersOnly", false); npcids = GetConfig("Settings", "NPCIDs", new List <object>()); keyring = GetConfig("Settings", "Keyring", true); foreach (KeyValuePair <string, object> kvp in boxPrefabs) { permission.RegisterPermission(kvp.Key, this); } foreach (KeyValuePair <string, object> kvp in boxSlots) { if (!boxPrefabs.ContainsKey(kvp.Key)) { permission.RegisterPermission(kvp.Key, this); } } foreach (BasePlayer player in BasePlayer.activePlayerList) { LoadProfile(player.userID); } }
private void LoadVariables() { MuteData = new DataFileSystem($"{Interface.Oxide.DataDirectory}{Path.DirectorySeparatorChar}VoiceMute"); Mute = new MuteManager(); permission.RegisterPermission(permMute, this); permission.RegisterPermission(permList, this); permission.RegisterPermission(permUnmute, this); addReason = BoolConfig("General Settings", "Replace Existing Reason", true); broadcastMessage = BoolConfig("General Settings", "Broadcast Mutes", true); if (Changed) { SaveConfig(); Changed = false; } }
protected override void LoadDefaultConfig() { Config ["Settings", "boxes"] = GetDefaultBoxes(); Config ["Settings", "slots"] = GetDefaultSlots(); Config ["Settings", "defaultBox"] = "assets/prefabs/deployable/woodenbox/woodbox_deployed.prefab"; Config ["Settings", "defaultSlots"] = 4; Config ["Settings", "keyring"] = true; Config ["Settings", "cooldownMinutes"] = 5; Config ["Settings", "radiationMax"] = 1; Config ["Settings", "NPCBankersOnly"] = false; Config ["Settings", "NPCIDs"] = new List <object> (); if (configFile == null) { configFile = new DataFileSystem(Interface.Oxide.ConfigDirectory); } configFile.WriteObject <Dictionary <string, object> > ("Bank_ItemLimits", GetDefaultItemLimits()); Config ["VERSION"] = Version.ToString(); }
private void DeleteButton_Click(object sender, EventArgs e) { string currentItem = ServerList.Text; if (string.IsNullOrEmpty(currentItem)) { MessageBox.Show("There is no server to delete."); return; } ServerItem item = DataFileSystem.Data.AllServers.FirstOrDefault(x => x.Name == currentItem); if (item == null) { RefreshServerList(); return; } DataFileSystem.Data.AllServers.Remove(item); DataFileSystem.SaveData(); RefreshServerList(); }
public Controller() { Instance = this; IsRunning = true; // Time since startup var timer = new Stopwatch(); timer.Start(); TimeSinceStartup = () => timer.Elapsed.TotalSeconds; RootDirectory = Environment.CurrentDirectory; PluginDirectory = Path.Combine(RootDirectory, "plugins"); LogDirectory = Path.Combine(RootDirectory, "logs"); LanguageDirectory = Path.Combine(RootDirectory, "lang"); DataDirectory = Path.Combine(RootDirectory, "data"); DataTemporaryDirectory = Path.Combine(DataDirectory, "Temporary"); if (!Directory.Exists(PluginDirectory)) { Directory.CreateDirectory(PluginDirectory); } if (!Directory.Exists(LogDirectory)) { Directory.CreateDirectory(LogDirectory); } if (!Directory.Exists(LanguageDirectory)) { Directory.CreateDirectory(LanguageDirectory); } if (!Directory.Exists(DataDirectory)) { Directory.CreateDirectory(DataDirectory); } if (!Directory.Exists(DataTemporaryDirectory)) { Directory.CreateDirectory(DataTemporaryDirectory); } DataFileSystem = new DataFileSystem(DataDirectory); // Logging exceptions AppDomain.CurrentDomain.UnhandledException += (sender, eventArgs) => { Log.Exception((Exception)eventArgs.ExceptionObject); Log.Error("Exit in 5 seconds"); System.Console.Beep(1000, 1000); Thread.Sleep(5000); IsRunning = false; Environment.Exit(0); }; // File System Watchers FSWatcherPlugins = new FileSystemWatcher(PluginDirectory, "*.dll"); FSWatcherPlugins.Created += OnFileCreated; FSWatcherPlugins.Changed += OnFileChanged; FSWatcherPlugins.Deleted += OnFileDeleted; FSWatcherPlugins.Renamed += OnFileRenamed; FSWatcherPlugins.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite; FSWatcherPlugins.IncludeSubdirectories = false; FSWatcherPlugins.EnableRaisingEvents = true; GC.KeepAlive(FSWatcherPlugins); // Version setup Version = new Version(Assembly.GetExecutingAssembly()); // Initializing console ConsoleManager = new ConsoleManager(); ConsoleManager.Initialize(); // Loading core plugins Plugin.CreatePlugin(typeof(Core), string.Empty, false); // Loading other available plugins var files = Directory.GetFiles(PluginDirectory); for (var i = 0; i < files.Length; i++) { var path = files[i]; if (Path.GetExtension(path) == ".dll") { Interface.LoadAssembly(path); } } Interface.CallHook("OnInitialized"); }
public DropBox() { _DataFileSystem = Interface.Oxide.DataFileSystem; _ConfigDirectory = Interface.Oxide.ConfigDirectory; _DataDirectory = Interface.Oxide.DataDirectory; }
private static void ProcessExit(object sender, EventArgs e) { DataFileSystem.SaveData(); ServerManager.ConnectedServers.ForEach(x => x.Disconnect()); }
private static void OnProcessLoad() { DataFileSystem.ReadData(); }