Beispiel #1
0
 public override void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameter)
 {
     if (_channelTypes is not null)
     {
         properties.ChannelTypes = _channelTypes;
     }
 }
        public ApplicationCommandOption(ApplicationCommandOptionProperties option)
        {
            Choices = option.Choices?.Select(x => new ApplicationCommandOptionChoice
            {
                Name  = x.Name,
                Value = x.Value
            }).ToArray() ?? Optional <ApplicationCommandOptionChoice[]> .Unspecified;

            Options = option.Options?.Select(x => new ApplicationCommandOption(x)).ToArray() ?? Optional <ApplicationCommandOption[]> .Unspecified;

            Required = option.Required ?? Optional <bool> .Unspecified;
            Default  = option.Default ?? Optional <bool> .Unspecified;

            Name        = option.Name.ToLowerInvariant();
            Type        = option.Type;
            Description = option.Description;
        }
Beispiel #3
0
    public override void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameterInfo)
    {
        var names = Enum.GetNames(typeof(T));

        if (names.Length <= 25)
        {
            var choices = new List <ApplicationCommandOptionChoiceProperties>();

            foreach (var name in names)
            {
                choices.Add(new ApplicationCommandOptionChoiceProperties
                {
                    Name  = name,
                    Value = name
                });
            }

            properties.Choices = choices;
        }
    }
Beispiel #4
0
        public override void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameterInfo)
        {
            var names   = Enum.GetNames(typeof(T));
            var members = names.SelectMany(x => typeof(T).GetMember(x)).Where(x => !x.IsDefined(typeof(HideAttribute), true));

            if (members.Count() <= 25)
            {
                var choices = new List <ApplicationCommandOptionChoiceProperties>();

                foreach (var member in members)
                {
                    choices.Add(new ApplicationCommandOptionChoiceProperties
                    {
                        Name  = member.Name,
                        Value = member.Name
                    });
                }

                properties.Choices = choices;
            }
        }
Beispiel #5
0
        public static ApplicationCommandOptionProperties ToApplicationCommandOptionProps(this SlashCommandParameterInfo parameterInfo)
        {
            var props = new ApplicationCommandOptionProperties
            {
                Name        = parameterInfo.Name,
                Description = parameterInfo.Description,
                Type        = parameterInfo.DiscordOptionType,
                IsRequired  = parameterInfo.IsRequired,
                Choices     = parameterInfo.Choices?.Select(x => new ApplicationCommandOptionChoiceProperties
                {
                    Name  = x.Name,
                    Value = x.Value
                })?.ToList(),
                ChannelTypes   = parameterInfo.ChannelTypes?.ToList(),
                IsAutocomplete = parameterInfo.IsAutocomplete,
                MaxValue       = parameterInfo.MaxValue,
                MinValue       = parameterInfo.MinValue
            };

            parameterInfo.TypeConverter.Write(props, parameterInfo);

            return(props);
        }
Beispiel #6
0
        public ApplicationCommandOption(ApplicationCommandOptionProperties option)
        {
            Choices = option.Choices?.Select(x => new ApplicationCommandOptionChoice
            {
                Name  = x.Name,
                Value = x.Value
            }).ToArray() ?? Optional <ApplicationCommandOptionChoice[]> .Unspecified;

            Options = option.Options?.Select(x => new ApplicationCommandOption(x)).ToArray() ?? Optional <ApplicationCommandOption[]> .Unspecified;

            Required = option.IsRequired ?? Optional <bool> .Unspecified;

            Default  = option.IsDefault ?? Optional <bool> .Unspecified;
            MinValue = option.MinValue ?? Optional <double> .Unspecified;
            MaxValue = option.MaxValue ?? Optional <double> .Unspecified;

            ChannelTypes = option.ChannelTypes?.ToArray() ?? Optional <ChannelType[]> .Unspecified;

            Name         = option.Name;
            Type         = option.Type;
            Description  = option.Description;
            Autocomplete = option.IsAutocomplete;
        }
Beispiel #7
0
 /// <summary>
 ///     Will be used to manipulate the outgoing command option, before the command gets registered to Discord.
 /// </summary>
 public virtual void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameter)
 {
 }
 public override void Write(ApplicationCommandOptionProperties properties, IParameterInfo parameter)
 => _typeConverter.Write(properties, parameter);