Пример #1
0
        private void OnLoad()
        {
            const string classDirectory = "leveling";

            Config.Instance = JsonConfig.LoadOrCreate <Config>(this, ConfigPath);

            var dbConfig = Config.Instance.DatabaseConfig;

            SessionRepository = SessionDatabaseFactory.LoadOrCreateDatabase(dbConfig.DatabaseType, dbConfig.ConnectionString);

            InitializeBanking();

            Directory.CreateDirectory(classDirectory);

            var classDefs = ClassDefinition.Load(classDirectory);

            _classDefinitions = classDefs;
            _classes          = _classDefinitions.Select(cd => new Class(cd)).ToList();

            ////if default class file does not exist, we're in an error state
            //if( _classDefinitions.Select(cd => cd.Name).
            //	FirstOrDefault(n => n == Config.Instance.DefaultClassName) == null )
            //{
            //	//throw new Exception($"DefaultClassName: '{Config.Instance.DefaultClassName}' was not found.");
            //	ServerApi.LogWriter.PluginWriteLine(this, $"DefaultClassName: '{Config.Instance.DefaultClassName}' was not found. ", TraceLevel.Error);
            //	//_classDefinitions.Clear();
            //	//_classes.Clear();
            //	//return;
            //}

            //foreach(var def in classDefs)
            //{
            //	//disabled during conversion to multi currency
            //	//def.PreParseRewardValues(ExpCurrency);
            //	def.PreParseRewardValues();
            //}

            ItemNameToLevelRequirements?.Clear();
            var levels = _classes.SelectMany(c => c.Levels).ToList();

            foreach (var @class in _classes)
            {
                @class.Resolve(levels, 0);
            }
            foreach (var @class in _classes)
            {
                @class.Resolve(levels, 1);
            }
            foreach (var level in levels)
            {
                foreach (var itemName in level.ItemNamesAllowed)
                {
                    ItemNameToLevelRequirements[itemName] = level;
                }
            }
        }
        private void OnLoad()
        {
            var cfg      = Config.Instance = JsonConfig.LoadOrCreate <Config>(this, ConfigPath);
            var dbConfig = cfg.DatabaseConfig;

            SessionRepository = SessionDatabaseFactory.LoadOrCreateDatabase(dbConfig.DatabaseType, dbConfig.ConnectionString);

            CustomSkillDefinitionLoader = CustomSkillDefinitionLoader.Load(Path.Combine(DataDirectory, cfg.DefinitionFilepath), cfg.AutoCreateDefinitionFile);
            CustomSkillRunner           = new CustomSkillRunner();

            //connected players need sessions regenerated, in case this was a reload
            foreach (var player in TShock.Players)
            {
                if (player?.Active == true)
                {
                    var session = Session.GetOrCreateSession(player);
                    //... may not need to actually do anything here
                }
            }
        }