示例#1
0
        static void Main(string[] args)
        {
            var logger = new ConsoleLogger();

            try
            {
                var dbCtxProvider = new RavenfallDbContextProvider(new AppSettings
                {
                    DbConnectionString = "Server=localhost;Database=Ravenfall2;Trusted_Connection=True;Integrated Security=True;"
                });

                IGameData gameData = new GameData(
                    dbCtxProvider,
                    logger,
                    new Kernel(),
                    new QueryBuilder());

                ImportGameObjects(logger, gameData);
            }
            catch (Exception exc)
            {
                logger.LogError(exc.ToString());
                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                }
            }
        }
示例#2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            var appSettingsSection = Configuration.GetSection("AppSettings");
            var appSettings        = appSettingsSection.Get <AppSettings>();

            services.Configure <AppSettings>(appSettingsSection);
            services.Configure <JsonOptions>(options =>
            {
                options.SerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault | JsonIgnoreCondition.WhenWritingNull;
            });

            services.AddLogging(loggingBuilder =>
            {
                var loggingDbContext = new RavenfallDbContextProvider(Options.Create(appSettings));
                loggingBuilder.AddProvider(new RavenfallDbLoggerProvider(loggingDbContext));
            });

            //services.Configure<CookiePolicyOptions>(options =>
            //{
            //    options.CheckConsentNeeded = context => true;
            //    options.MinimumSameSitePolicy = SameSiteMode.None;
            //});

            services.AddCors(options =>
            {
                options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin());
                options.AddPolicy("AllowAllMethods", builder => builder.AllowAnyMethod());
                options.AddPolicy("AllowAllHeaders", builder => builder.AllowAnyHeader());
            });

            services.AddSession(options =>
            {
                options.IdleTimeout         = TimeSpan.FromHours(24);
                options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
                options.Cookie.SameSite     = SameSiteMode.Strict;
                options.Cookie.HttpOnly     = true;
                options.Cookie.IsEssential  = true;
            });

            services.AddRazorPages();
            services.AddServerSideBlazor();
            services.AddHttpContextAccessor();

            RegisterServices(services);

            services.Configure <GzipCompressionProviderOptions>(options =>
                                                                options.Level = System.IO.Compression.CompressionLevel.Optimal);

            services.AddResponseCompression(options =>
            {
                options.Providers.Add <GzipCompressionProvider>();
            });

            services.AddRavenNestHealthChecks(Configuration.GetSection("AppSettings"));
        }
示例#3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            var appSettingsSection = Configuration.GetSection("AppSettings");
            var appSettings = appSettingsSection.Get<AppSettings>();
            services.Configure<AppSettings>(appSettingsSection);
            services.AddLogging(loggingBuilder =>
            {
                var loggingDbContext = new RavenfallDbContextProvider(Options.Create(appSettings));
                loggingBuilder.AddProvider(new RavenfallDbLoggerProvider(loggingDbContext));
            });

            //services.AddAuthentication(options => { })
            //    .AddTwitch(conf =>
            //    {
            //        conf.ClientId = appSettings.TwitchClientId;
            //        conf.ClientSecret = appSettings.TwitchClientSecret;
            //    });

            services.AddCors(options =>
            {
                options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin());
                options.AddPolicy("AllowAllMethods", builder => builder.AllowAnyMethod());
                options.AddPolicy("AllowAllHeaders", builder => builder.AllowAnyHeader());
            });

            services.AddSession(options =>
            {
                options.IdleTimeout = TimeSpan.FromHours(1);
                options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
                options.Cookie.SameSite = SameSiteMode.Strict;
                options.Cookie.HttpOnly = true;
                options.Cookie.IsEssential = true;
            });

            RegisterServices(services);

            services.AddMvc().AddJsonOptions(options =>
            {
                options.JsonSerializerOptions.PropertyNameCaseInsensitive = true;
                options.JsonSerializerOptions.IgnoreNullValues = true;
            }).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

            services.Configure<GzipCompressionProviderOptions>(options =>
                options.Level = System.IO.Compression.CompressionLevel.Optimal);

            services.AddResponseCompression(options =>
            {
                options.Providers.Add<GzipCompressionProvider>();
            });

            services.AddRavenNestHealthChecks(Configuration.GetSection("AppSettings"));
        }
示例#4
0
        public void Apply()
        {
            ToolStatus.Text = "Exp Adjustment has been disabled.";
            return;


            ToolStatus.Text = "Loading backup files...";
            Task.Run(() =>
            {
                var backupProvider = new GameDataBackupProvider();
                var rpBefore       = backupProvider.GetRestorePoint(@"C:\backup\637367260672779696", typeof(Character), typeof(Skills));
                var rpAfter        = backupProvider.GetRestorePoint(@"C:\backup\637369626496299730", typeof(Character), typeof(Skills));

                var skillsIds       = Ravenfall.RavenNest.GetAffectedSkillsIds();
                var oldSkillsBefore = rpBefore.Get <Skills>();
                var oldSkillsAfter  = rpAfter.Get <Skills>();
                var oldChars        = rpBefore.Get <Character>();

                var builder = new ConfigurationBuilder()
                              .SetBasePath(Directory.GetCurrentDirectory())
                              .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

                var configuration = builder.Build();

                var appSettingsSection = configuration.GetSection("AppSettings");
                var appSettings        = appSettingsSection.Get <AppSettings>();

                var dbContextProvider = new RavenfallDbContextProvider(Options.Create(appSettings));

                ToolStatus.Text = "Processing " + skillsIds.Length + " players...";
                var con         = dbContextProvider.Get();
                {
                    var skillsDoubled   = 0;
                    var zeroSkills      = 0;
                    var skillDeltaCount = 0;
                    var updated         = false;
                    var playersUpdated  = 0;
                    var processIndex    = 0;
                    foreach (var skillId in skillsIds)
                    {
                        ++processIndex;
                        ToolProgress.Value = (float)Math.Floor((processIndex / (float)skillsIds.Length) * 100d);

                        var skillBefore     = oldSkillsBefore.FirstOrDefault(x => x.Id == skillId);
                        var skillAfter      = oldSkillsAfter.FirstOrDefault(x => x.Id == skillId);
                        var skillListBefore = skillBefore.GetSkills();

                        var character      = oldChars.FirstOrDefault(x => x.SkillsId == skillId);
                        var skillListAfter = skillAfter.GetSkills();

                        var curSkills     = con.Skills.FirstOrDefault(x => x.Id == skillId);
                        var skillsUpdated = false;
                        for (int i = 0; i < skillListAfter.Count; i++)
                        {
                            var sb = skillListBefore[i];
                            var sa = skillListAfter[i];

                            var exp      = sb.Experience;
                            var totalExp = exp;
                            var level    = sb.Level;

                            if (sb.Level == 0)
                            {
                                ++zeroSkills;
                                level    = GameMath.OLD_ExperienceToLevel((decimal)sb.Experience);
                                totalExp = sb.Experience;
                                exp      = totalExp - (double)GameMath.OLD_LevelToExperience(level);
                            }

                            if (level == 1 && exp == 0)
                            {
                                continue;
                            }

                            var levelDelta = sa.Level - level;
                            var expDelta   = 0d;

                            if (sa.Level > 0 && levelDelta > 0)
                            {
                                expDelta    = sa.Experience;
                                var saLevel = sa.Level;
                                for (var j = 1; j <= levelDelta; ++j)
                                {
                                    expDelta += GameMath.ExperienceForLevel(level + j);
                                }
                            }

                            if (levelDelta != 0 || expDelta > 0)
                            {
                                if (levelDelta != 0)
                                {
                                    ++skillDeltaCount;
                                }
                                if (expDelta >= totalExp * 0.95d)
                                {
                                    skillsUpdated = true;
                                    Ravenfall.RavenNest.ReduceSkillExp(i, curSkills, totalExp);
                                }
                            }
                        }

                        if (skillsUpdated)
                        {
                            ToolStatus.Text = playersUpdated + " players will be updated. " + processIndex + " players processed.";
                            ++playersUpdated;
                            updated = true;
                            con.Update(curSkills);
                        }
                    }

                    //ToolStatus.Text = playersUpdated + " players will be updated. Are you sure you want to continue?";
                    confirmDialog.MessageLabel.Text = playersUpdated + " players will be updated. Are you sure you want to continue?";
                    confirmDialog.Show(result =>
                    {
                        if (result.GetValueOrDefault())
                        {
                            ToolStatus.Text = "Saving players...";
                            if (updated)
                            {
                                con.SaveChanges();
                            }
                            ToolStatus.Text = playersUpdated + " players saved.";
                        }
                        else
                        {
                            ToolStatus.Text    = "No players was saved. Save cancelled.";
                            ToolProgress.Value = 0;
                        }

                        con.Dispose();
                    });
                }
            });
        }