All checks were successful
continuous-integration/drone/push Build is passing
63 lines
2.1 KiB
Java
63 lines
2.1 KiB
Java
package wtf.beatrice.hidekobot.commands.slash;
|
|
|
|
import net.dv8tion.jda.api.entities.User;
|
|
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent;
|
|
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
|
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
|
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
|
import net.dv8tion.jda.api.interactions.commands.build.Commands;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import wtf.beatrice.hidekobot.commands.base.ProfileImage;
|
|
import wtf.beatrice.hidekobot.objects.MessageResponse;
|
|
import wtf.beatrice.hidekobot.objects.commands.SlashCommandImpl;
|
|
|
|
public class AvatarCommand extends SlashCommandImpl
|
|
{
|
|
@Override
|
|
public CommandData getSlashCommandData()
|
|
{
|
|
return Commands.slash("avatar", "Get someone's profile picture.")
|
|
.addOption(OptionType.USER, "user", "User you want to grab the avatar of.")
|
|
.addOption(OptionType.INTEGER, "size", "The size of the returned image.",
|
|
false,
|
|
true);
|
|
}
|
|
|
|
@Override
|
|
public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
|
|
{
|
|
// defer reply because this might take a moment
|
|
event.deferReply().queue();
|
|
|
|
User user;
|
|
int resolution;
|
|
|
|
OptionMapping userArg = event.getOption("user");
|
|
if (userArg != null)
|
|
{
|
|
user = userArg.getAsUser();
|
|
} else
|
|
{
|
|
user = event.getUser();
|
|
}
|
|
|
|
OptionMapping sizeArg = event.getOption("size");
|
|
if (sizeArg != null)
|
|
{
|
|
resolution = ProfileImage.parseResolution(sizeArg.getAsInt());
|
|
} else
|
|
{
|
|
resolution = ProfileImage.parseResolution(512);
|
|
}
|
|
|
|
MessageResponse response = ProfileImage.buildResponse(resolution, user, ProfileImage.ImageType.AVATAR);
|
|
if (response.content() != null)
|
|
{
|
|
event.getHook().editOriginal(response.content()).queue();
|
|
} else if (response.embed() != null)
|
|
{
|
|
event.getHook().editOriginalEmbeds(response.embed()).queue();
|
|
}
|
|
}
|
|
}
|