public static async Task ReplyWithLegalizedSetAsync(this ISocketMessageChannel channel, string content)
 {
     content = ReusableActions.StripCodeBlock(content);
     var set = new ShowdownSet(content);
     var sav = TrainerSettings.GetSavedTrainerData(set.Format);
     await channel.ReplyWithLegalizedSetAsync(sav, set).ConfigureAwait(false);
 }
        static AutoLegalityExtensions()
        {
            Task.Run(() => {
                var lang = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName.Substring(0, 2);
                Util.SetLocalization(typeof(LegalityCheckStrings), lang);
                Util.SetLocalization(typeof(MessageStrings), lang);
                RibbonStrings.ResetDictionary(GameInfo.Strings.ribbons);
            });

            // Seed the Trainer Database with enough fake save files so that we return a generation sensitive format when needed.
            for (int i = 1; i < PKX.Generation; i++)
            {
                const string OT       = "PKHeX-D";
                var          blankSAV = SaveUtil.GetBlankSAV(i, OT);
                TrainerSettings.Register(blankSAV);
            }

            var trainer = TrainerSettings.GetSavedTrainerData(7);

            PKMConverter.SetPrimaryTrainer(trainer);

            // Legalizer.AllowBruteForce = false;

            // Update Legality Analysis strings
            LegalityAnalysis.MoveStrings    = GameInfo.Strings.movelist;
            LegalityAnalysis.SpeciesStrings = GameInfo.Strings.specieslist;
        }
    public ITrainerInfo GetTrainerInfo <T>() where T : PKM, new()
    {
        if (typeof(T) == typeof(PK8))
        {
            return(TrainerSettings.GetSavedTrainerData(GameVersion.SWSH, 8));
        }
        if (typeof(T) == typeof(PB8))
        {
            return(TrainerSettings.GetSavedTrainerData(GameVersion.BDSP, 8));
        }

        throw new ArgumentException("Type does not have a recognized trainer fetch.", typeof(T).Name);
    }
    private static void InitializeTrainerDatabase()
    {
        var ot           = GetEnvOrThrow("PKHEX_DEFAULT_OT");
        var trainerId    = int.Parse(GetEnvOrThrow("PKHEX_DEFAULT_TID"));
        var secretId     = int.Parse(GetEnvOrThrow("PKHEX_DEFAULT_SID"));
        var languageName = GetEnvOrThrow("PKHEX_DEFAULT_LANGUAGE");

        if (!Enum.TryParse <LanguageID>(languageName, true, out var language))
        {
            throw new Exception($"Invalid default language {languageName}");
        }

        SaveFile GetFallbackBlank(int generation)
        {
            var blankSav = SaveUtil.GetBlankSAV(generation, ot);

            blankSav.Language = (int)language;
            blankSav.TID      = trainerId;
            blankSav.SID      = secretId;
            blankSav.OT       = ot;
            return(blankSav);
        }

        for (var i = 1; i < PKX.Generation + 1; i++)
        {
            var versions = GameUtil.GetVersionsInGeneration(i, PKX.Generation);
            foreach (var v in versions)
            {
                var fallback = new SimpleTrainerInfo(v)
                {
                    Language = (int)language,
                    TID      = trainerId,
                    SID      = secretId,
                    OT       = ot,
                };
                var exist = TrainerSettings.GetSavedTrainerData(v, i, fallback);
                if (exist is SimpleTrainerInfo)
                {
                    TrainerSettings.Register(fallback);
                }
            }
        }

        var trainer = TrainerSettings.GetSavedTrainerData(PKX.Generation);

        PKMConverter.SetPrimaryTrainer(trainer);
    }
        private static void InitializeTrainerDatabase()
        {
            // Seed the Trainer Database with enough fake save files so that we return a generation sensitive format when needed.
            var    cfg  = SysCordInstance.Self.Hub.Config;
            string OT   = cfg.GenerateOT;
            int    TID  = cfg.GenerateTID16;
            int    SID  = cfg.GenerateSID16;
            int    lang = (int)cfg.GenerateLanguage;

            var externalSource = cfg.GeneratePathTrainerInfo;

            if (!string.IsNullOrWhiteSpace(externalSource) && Directory.Exists(externalSource))
            {
                TrainerSettings.LoadTrainerDatabaseFromPath(externalSource);
            }

            SaveFile GetFallbackBlank(int generation)
            {
                var blankSav = SaveUtil.GetBlankSAV(generation, OT);

                blankSav.Language = lang;
                blankSav.TID      = TID;
                blankSav.SID      = SID;
                blankSav.OT       = OT;
                return(blankSav);
            }

            for (int i = 1; i < PKX.Generation; i++)
            {
                var fallback = GetFallbackBlank(i);
                var exist    = TrainerSettings.GetSavedTrainerData(i, fallback);
                if (exist == fallback)
                {
                    TrainerSettings.Register(fallback);
                }
            }

            var trainer = TrainerSettings.GetSavedTrainerData(7);

            PKMConverter.SetPrimaryTrainer(trainer);
        }
Esempio n. 6
0
        private static void InitializeTrainerDatabase(LegalitySettings cfg)
        {
            // Seed the Trainer Database with enough fake save files so that we return a generation sensitive format when needed.
            string OT   = cfg.GenerateOT;
            int    TID  = cfg.GenerateTID16;
            int    SID  = cfg.GenerateSID16;
            int    lang = (int)cfg.GenerateLanguage;

            var externalSource = cfg.GeneratePathTrainerInfo;

            if (!string.IsNullOrWhiteSpace(externalSource) && Directory.Exists(externalSource))
            {
                TrainerSettings.LoadTrainerDatabaseFromPath(externalSource);
            }

            for (int i = 1; i < PKX.Generation + 1; i++)
            {
                var versions = GameUtil.GetVersionsInGeneration(i, PKX.Generation);
                foreach (var v in versions)
                {
                    var fallback = new SimpleTrainerInfo(v)
                    {
                        Language = lang,
                        TID      = TID,
                        SID      = SID,
                        OT       = OT,
                    };
                    var exist = TrainerSettings.GetSavedTrainerData(v, i, fallback);
                    if (exist is SimpleTrainerInfo) // not anything from files; this assumes ALM returns SimpleTrainerInfo for non-user-provided fake templates.
                    {
                        TrainerSettings.Register(fallback);
                    }
                }
            }

            var trainer = TrainerSettings.GetSavedTrainerData(PKX.Generation);

            PKMConverter.SetPrimaryTrainer(trainer);
        }
 public static ITrainerInfo GetTrainerInfo(int gen) => TrainerSettings.GetSavedTrainerData(gen);