Exemple #1
0
        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();
        }
Exemple #2
0
        private void Init()
        {
            storedData = Interface.Oxide.DataFileSystem.ReadObject <StoredData>("MyDataFile");
            Interface.Oxide.DataFileSystem.WriteObject("MyDataFile", storedData);

            dataFile = new DataFileSystem($"{Interface.Oxide.DataDirectory}\\player_info");
        }
Exemple #3
0
 void Loaded()
 {
     datafile = Interface.GetMod().DataFileSystem;
     LoadData();
     foreach (string userid in storedData.knownPlayers)
     {
         LoadPlayer(userid);
     }
 }
 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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        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;
            }
        }
Exemple #8
0
        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();
        }
Exemple #9
0
        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();
        }
Exemple #10
0
        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");
        }
Exemple #11
0
 public DropBox()
 {
     _DataFileSystem  = Interface.Oxide.DataFileSystem;
     _ConfigDirectory = Interface.Oxide.ConfigDirectory;
     _DataDirectory   = Interface.Oxide.DataDirectory;
 }
Exemple #12
0
        private static void ProcessExit(object sender, EventArgs e)
        {
            DataFileSystem.SaveData();

            ServerManager.ConnectedServers.ForEach(x => x.Disconnect());
        }
Exemple #13
0
 private static void OnProcessLoad()
 {
     DataFileSystem.ReadData();
 }