All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.dv8tion.jda.api.interactions.callbacks.IAutoCompleteCallback Maven / Gradle / Ivy

Go to download

Java wrapper for the popular chat & VOIP service: Discord https://discord.com

There is a newer version: 5.1.0
Show newest version
/*
 * Copyright 2015 Austin Keener, Michael Ritter, Florian Spieß, and the JDA contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package net.dv8tion.jda.api.interactions.callbacks;

import net.dv8tion.jda.api.interactions.Interaction;
import net.dv8tion.jda.api.interactions.commands.Command;
import net.dv8tion.jda.api.interactions.commands.OptionType;
import net.dv8tion.jda.api.interactions.commands.build.OptionData;
import net.dv8tion.jda.api.requests.restaction.interactions.AutoCompleteCallbackAction;
import net.dv8tion.jda.internal.utils.Checks;

import javax.annotation.CheckReturnValue;
import javax.annotation.Nonnull;
import java.util.Arrays;
import java.util.Collection;
import java.util.stream.Collectors;

/**
 * Interactions which allow auto-complete suggestion replies.
 *
 * 

Auto-complete must be enabled on {@link OptionData options} via {@link OptionData#setAutoComplete(boolean)}. * When a user inputs auto-complete options, you will receive these interactions and can provide up to {@value OptionData#MAX_CHOICES} suggestions for the user to pick from. * You can also use {@link #replyChoices(Command.Choice...)} without parameters to acknowledge the interaction with 0 choices. */ public interface IAutoCompleteCallback extends Interaction { /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * * @param choices * The choice suggestions to present to the user, 0-{@value OptionData#MAX_CHOICES} choices * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If any of the choice names are empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the numeric value of any of the choices is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
  • If the string value of any of the choices is empty or longer than {@value OptionData#MAX_CHOICE_VALUE_LENGTH}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue AutoCompleteCallbackAction replyChoices(@Nonnull Collection choices); /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * * @param choices * The choice suggestions to present to the user, 0-{@value OptionData#MAX_CHOICES} choices * * @throws IllegalArgumentException *
    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If any of the choice names are empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the numeric value of any of the choices is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
  • If the string value of any of the choices is empty or longer than {@value OptionData#MAX_CHOICE_VALUE_LENGTH}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoices(@Nonnull Command.Choice... choices) { Checks.noneNull(choices, "Choice"); return replyChoices(Arrays.asList(choices)); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * * @param name * The choice name to show to the user, 1-{@value OptionData#MAX_CHOICE_NAME_LENGTH} characters * @param value * The choice value, 1-{@value OptionData#MAX_CHOICE_VALUE_LENGTH} characters * * @throws IllegalArgumentException *
    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the choice name is empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the option type is not {@link OptionType#STRING}
  • *
  • If the string value of any of the choices is empty or longer than {@value OptionData#MAX_CHOICE_VALUE_LENGTH}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoice(@Nonnull String name, @Nonnull String value) { return replyChoices(new Command.Choice(name, value)); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * * @param name * The choice name to show to the user, 1-{@value OptionData#MAX_CHOICE_NAME_LENGTH} characters * @param value * The choice value, must be between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER} * * @throws IllegalArgumentException *
    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the choice name is empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the value of is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoice(@Nonnull String name, long value) { return replyChoices(new Command.Choice(name, value)); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * * @param name * The choice name to show to the user, 1-{@value OptionData#MAX_CHOICE_NAME_LENGTH} characters * @param value * The choice value, must be between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER} * * @throws IllegalArgumentException *
    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the choice name is empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the value of is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoice(@Nonnull String name, double value) { return replyChoices(new Command.Choice(name, value)); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * *

The provided strings will be used as value and name for the {@link net.dv8tion.jda.api.interactions.commands.Command.Choice Choices}. * * @param choices * The choice suggestions to present to the user, each limited to {@value OptionData#MAX_CHOICE_NAME_LENGTH} characters * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If any of the choice names are empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the string value of any of the choices is empty or longer than {@value OptionData#MAX_CHOICE_VALUE_LENGTH}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoiceStrings(@Nonnull String... choices) { return replyChoices(Arrays.stream(choices) .map(it -> new Command.Choice(it, it)) .collect(Collectors.toList())); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * *

The provided strings will be used as value and name for the {@link net.dv8tion.jda.api.interactions.commands.Command.Choice Choices}. * * @param choices * The choice suggestions to present to the user, each limited to {@value OptionData#MAX_CHOICE_NAME_LENGTH} characters * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If any of the choice names are empty or longer than {@value OptionData#MAX_CHOICE_NAME_LENGTH}
  • *
  • If the string value of any of the choices is empty or longer than {@value OptionData#MAX_CHOICE_VALUE_LENGTH}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoiceStrings(@Nonnull Collection choices) { return replyChoices(choices.stream() .map(it -> new Command.Choice(it, it)) .collect(Collectors.toList())); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * *

The string values of the provided longs will be used as value and name for the {@link net.dv8tion.jda.api.interactions.commands.Command.Choice Choices}. * * @param choices * The choice suggestions to present to the user * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the numeric value of any of the choices is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoiceLongs(@Nonnull long... choices) { return replyChoices(Arrays.stream(choices) .mapToObj(it -> new Command.Choice(String.valueOf(it), it)) .collect(Collectors.toList())); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * *

The string values of the provided longs will be used as value and name for the {@link net.dv8tion.jda.api.interactions.commands.Command.Choice Choices}. * * @param choices * The choice suggestions to present to the user * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the numeric value of any of the choices is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoiceLongs(@Nonnull Collection choices) { return replyChoices(choices.stream() .map(it -> new Command.Choice(String.valueOf(it), it)) .collect(Collectors.toList())); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * *

The string values of the provided doubles will be used as value and name for the {@link net.dv8tion.jda.api.interactions.commands.Command.Choice Choices}. * * @param choices * The choice suggestions to present to the user * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the numeric value of any of the choices is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoiceDoubles(@Nonnull double... choices) { return replyChoices(Arrays.stream(choices) .mapToObj(it -> new Command.Choice(String.valueOf(it), it)) .collect(Collectors.toList())); } /** * Reply with up to {@value OptionData#MAX_CHOICES} choices which can be picked from by the user. *
The user may continue writing inputs instead of using one of your choices. * *

The string values of the provided doubles will be used as value and name for the {@link net.dv8tion.jda.api.interactions.commands.Command.Choice Choices}. * * @param choices * The choice suggestions to present to the user * * @throws IllegalArgumentException *

    *
  • If {@code null} is provided
  • *
  • If more than {@value OptionData#MAX_CHOICES} choices are added
  • *
  • If the option type is incompatible with the choice type
  • *
  • If the numeric value of any of the choices is not between {@value OptionData#MIN_NEGATIVE_NUMBER} and {@value OptionData#MAX_POSITIVE_NUMBER}
  • *
* * @return {@link AutoCompleteCallbackAction} */ @Nonnull @CheckReturnValue default AutoCompleteCallbackAction replyChoiceDoubles(@Nonnull Collection choices) { return replyChoices(choices.stream() .map(it -> new Command.Choice(String.valueOf(it), it)) .collect(Collectors.toList())); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy