Ejemplo n.º 1
0
    public static bool LoadDataFromFile()
    {
        string path = Path.Combine(Application.persistentDataPath, usersSavePath);

        try
        {
            DebugHelper.Log("TwitchPlayStrings: Loading Custom strings data from file: {0}", path);
            data = SettingsConverter.Deserialize <TwitchPlaySettingsData>(File.ReadAllText(path));           //JsonConvert.DeserializeObject<TwitchPlaySettingsData>(File.ReadAllText(path));
            data.ValidateStrings();
            WriteDataToFile();
        }
        catch (FileNotFoundException)
        {
            DebugHelper.LogWarning("TwitchPlayStrings: File {0} was not found.", path);
            data = new TwitchPlaySettingsData();
            WriteDataToFile();
            return(false);
        }
        catch (Exception ex)
        {
            data = new TwitchPlaySettingsData();
            DebugHelper.LogException(ex);
            return(false);
        }
        return(true);
    }
Ejemplo n.º 2
0
    public static Tuple <bool, string> ResetSettingToDefault(string setting)
    {
        var  split         = setting.Split('.');
        Type tpdata        = typeof(TwitchPlaySettingsData);
        var  settingFields = tpdata.GetFields(BindingFlags.Public | BindingFlags.Instance).Where(x => x.Name.ToLowerInvariant().Contains(split[0].ToLowerInvariant())).ToList();

        DebugHelper.Log($"Found {settingFields.Count} settings");
        if (!settingFields.Any())
        {
            return(new Tuple <bool, string>(false, $"Setting {setting} not found."));
        }

        var settingField = settingFields[0];

        if (settingFields.Count > 1)
        {
            settingField = settingFields.FirstOrDefault(x => x.Name.Equals(split[0], StringComparison.InvariantCultureIgnoreCase));
            if (settingField == null)
            {
                return(new Tuple <bool, string>(false, $"More than one setting with the name {setting} was found. Here are the settings available with the specified name: {settingFields.Select(x => x.Name).Join(", ")}"));
            }
        }
        var originalValue = settingField.GetValue(data);

        DebugHelper.Log($"Found exactly one. Settings name is {settingField.Name}, Settings type is {originalValue.GetType().Name}");
        TwitchPlaySettingsData defaultData = new TwitchPlaySettingsData();
        var defaultValue = settingField.GetValue(defaultData);

        settingField.SetValue(data, defaultValue);
        return(new Tuple <bool, string>(true, $"Setting {settingField.Name} reset to default value."));
    }
Ejemplo n.º 3
0
    public bool ValidateStrings()
    {
        TwitchPlaySettingsData data = new TwitchPlaySettingsData();
        bool valid = true;

        valid &= ValidateString(ref InvalidCommand, data.InvalidCommand, 3);
        valid &= ValidateString(ref CommandError, data.CommandError, 4);

        valid &= ValidateString(ref HoldableInvalidCommand, data.HoldableInvalidCommand, 2);
        valid &= ValidateString(ref HoldableCommandError, data.HoldableCommandError, 3);

        valid &= ValidateString(ref AwardSolve, data.AwardSolve, 4);
        valid &= ValidateString(ref AwardStrike, data.AwardStrike, 8);
        valid &= ValidateString(ref AwardHoldableStrike, data.AwardHoldableStrike, 6);

        valid &= ValidateString(ref BombLiveMessage, data.BombLiveMessage, 0);
        valid &= ValidateString(ref MultiBombLiveMessage, data.MultiBombLiveMessage, 0);

        valid &= ValidateString(ref BombExplodedMessage, data.BombExplodedMessage, 1);

        valid &= ValidateString(ref BombDefusedMessage, data.BombDefusedMessage, 1);
        valid &= ValidateString(ref BombDefusedBonusMessage, data.BombDefusedBonusMessage, 1);
        valid &= ValidateString(ref BombDefusedFooter, data.BombDefusedFooter, 0);

        valid &= ValidateString(ref BombSoloDefusalMessage, data.BombSoloDefusalMessage, 3);
        valid &= ValidateString(ref BombSoloDefusalNewRecordMessage, data.BombSoloDefusalNewRecordMessage, 2);
        valid &= ValidateString(ref BombSoloDefusalFooter, data.BombSoloDefusalFooter, 0);

        valid &= ValidateString(ref BombAbortedMessage, data.BombAbortedMessage, 1);

        valid &= ValidateString(ref RankTooLow, data.RankTooLow, 0);

        valid &= ValidateString(ref SolverAndSolo, data.SolverAndSolo, 0);
        valid &= ValidateString(ref SoloRankQuery, data.SoloRankQuery, 3);
        valid &= ValidateString(ref RankQuery, data.RankQuery, 7);

        valid &= ValidateString(ref DoYouEvenPlayBro, data.DoYouEvenPlayBro, 1);

        valid &= ValidateString(ref TurnBombOnSolve, data.TurnBombOnSolve, 2);
        valid &= ValidateString(ref CancelBombTurn, data.CancelBombTurn, 2);

        valid &= ValidateString(ref ModuleClaimed, data.ModuleClaimed, 3);
        valid &= ValidateString(ref ModuleUnclaimed, data.ModuleUnclaimed, 3);
        valid &= ValidateString(ref ModuleNotClaimed, data.ModuleNotClaimed, 3);
        valid &= ValidateString(ref ModuleAlreadyOwned, data.ModuleAlreadyOwned, 3);

        valid &= ValidateString(ref AssignModule, data.AssignModule, 4);
        valid &= ValidateString(ref ModuleReady, data.ModuleReady, 3);

        valid &= ValidateString(ref TakeModule, data.TakeModule, 4);
        valid &= ValidateString(ref TakeInProgress, data.TakeInProgress, 3);
        valid &= ValidateString(ref ModuleAbandoned, data.ModuleAbandoned, 3);
        valid &= ValidateString(ref ModuleIsMine, data.ModuleIsMine, 3);
        valid &= ValidateString(ref NoTakes, data.NoTakes, 3);
        valid &= ValidateString(ref TooManyClaimed, data.TooManyClaimed, 2);
        valid &= ValidateString(ref ModulePlayer, data.ModulePlayer, 3);
        valid &= ValidateString(ref AlreadyClaimed, data.AlreadyClaimed, 4);
        valid &= ValidateString(ref AlreadySolved, data.AlreadySolved, 4);
        valid &= ValidateString(ref ClaimCooldown, data.ClaimCooldown, 4);

        valid &= ValidateString(ref OwnedModule, data.OwnedModule, 2);
        valid &= ValidateString(ref OwnedModuleList, data.OwnedModuleList, 2);
        valid &= ValidateString(ref NoOwnedModules, data.NoOwnedModules, 1);

        valid &= ValidateString(ref TwitchPlaysDisabled, data.TwitchPlaysDisabled, 1);
        valid &= ValidateString(ref MissionBinderDisabled, data.MissionBinderDisabled, 1);
        valid &= ValidateString(ref FreePlayDisabled, data.FreePlayDisabled, 1);
        valid &= ValidateString(ref FreePlayNeedyDisabled, data.FreePlayNeedyDisabled, 1);
        valid &= ValidateString(ref FreePlayHardcoreDisabled, data.FreePlayHardcoreDisabled, 1);
        valid &= ValidateString(ref FreePlayModsOnlyDisabled, data.FreePlayModsOnlyDisabled, 1);
        valid &= ValidateString(ref TimeModeCommandDisabled, data.TimeModeCommandDisabled, 1);
        valid &= ValidateString(ref ZenModeCommandDisabled, data.ZenModeCommandDisabled, 1);
        valid &= ValidateString(ref RetryInactive, data.RetryInactive, 0);

        valid &= ValidateString(ref AddedUserPower, data.AddedUserPower, 2, SettingsVersion < 1);
        valid &= ValidateString(ref RemoveUserPower, data.RemoveUserPower, 2, SettingsVersion < 1);

        valid &= ValidateString(ref BombHelp, data.BombHelp, 0);
        valid &= ValidateString(ref BlankBombEdgework, data.BlankBombEdgework, 0);
        valid &= ValidateString(ref BombEdgework, data.BombEdgework, 1);
        valid &= ValidateString(ref BombTimeRemaining, data.BombTimeRemaining, 2);
        valid &= ValidateString(ref BombTimeStamp, data.BombTimeStamp, 1);
        valid &= ValidateString(ref BombDetonateCommand, data.BombDetonateCommand, 0);
        valid &= ValidateString(ref BombStatusTimeMode, data.BombStatusTimeMode, 6);
        valid &= ValidateString(ref BombStatusVsMode, data.BombStatusVsMode, 5);
        valid &= ValidateString(ref BombStatus, data.BombStatus, 7);

        valid &= ValidateString(ref NotesSpaceFree, data.NotesSpaceFree, 0);
        valid &= ValidateString(ref Notes, data.Notes, 2);
        valid &= ValidateString(ref NotesTaken, data.NotesTaken, 2);
        valid &= ValidateString(ref NotesAppended, data.NotesTaken, 2);
        valid &= ValidateString(ref NoteSlotCleared, data.NoteSlotCleared, 1);

        valid &= ValidateString(ref GiveBonusPoints, data.GiveBonusPoints, 3);
        valid &= ValidateString(ref GiveBonusSolves, data.GiveBonusSolves, 3);
        valid &= ValidateString(ref GiveBonusStrikes, data.GiveBonusStrikes, 3);

        valid &= ValidateString(ref UnsubmittableAnswerPenalty, data.UnsubmittableAnswerPenalty, 5);

        valid &= ValidateString(ref UnsupportedNeedyWarning, data.UnsupportedNeedyWarning, 0, SettingsVersion < 2);

        valid &= ValidateFloat(ref AwardDropMultiplierOnStrike, data.AwardDropMultiplierOnStrike, 0, 1.0f);

        valid &= ValidateInt(ref InstantModuleClaimCooldown, data.InstantModuleClaimCooldown, 0);
        valid &= ValidateInt(ref InstantModuleClaimCooldownExpiry, data.InstantModuleClaimCooldownExpiry, 0);

        valid &= ValidateDictionaryEntry("infozen", ref BombCustomMessages, data.BombCustomMessages);

        valid &= ValidateModDistribution(ref ModDistributions);

        return(valid);
    }