using System.Text.Json.Nodes; using Remora.Results; namespace TeamOctolings.Octobot.Data.Options; /// <inheritdoc /> public sealed class PunishmentOption : GuildOption<string> { private static readonly List<string> AllowedValues = [ "ban", "kick", "mute", "off", "disable", "disabled" ]; public PunishmentOption(string name, string defaultValue) : base(name, defaultValue) { } /// <inheritdoc /> public override Result Set(JsonNode settings, string from) { return AllowedValues.Contains(from.ToLowerInvariant()) ? base.Set(settings, from.ToLowerInvariant()) : new ArgumentInvalidError(nameof(from), Messages.InvalidWarnPunishment); } }