Make love calculator also support slash commands
This commit is contained in:
parent
174b78704f
commit
1c82d2b53b
@ -122,6 +122,7 @@ public class HidekoBot
|
|||||||
slashCommandListener.registerCommand(new DieCommand());
|
slashCommandListener.registerCommand(new DieCommand());
|
||||||
slashCommandListener.registerCommand(new HelpCommand());
|
slashCommandListener.registerCommand(new HelpCommand());
|
||||||
slashCommandListener.registerCommand(new InviteCommand());
|
slashCommandListener.registerCommand(new InviteCommand());
|
||||||
|
slashCommandListener.registerCommand(new LoveCalculatorCommand());
|
||||||
slashCommandListener.registerCommand(new MagicBallCommand());
|
slashCommandListener.registerCommand(new MagicBallCommand());
|
||||||
slashCommandListener.registerCommand(new PingCommand());
|
slashCommandListener.registerCommand(new PingCommand());
|
||||||
slashCommandListener.registerCommand(new SayCommand());
|
slashCommandListener.registerCommand(new SayCommand());
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package wtf.beatrice.hidekobot.commands.base;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
|
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||||
|
import net.dv8tion.jda.api.entities.User;
|
||||||
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
|
import wtf.beatrice.hidekobot.util.RandomUtil;
|
||||||
|
|
||||||
|
public class LoveCalculator
|
||||||
|
{
|
||||||
|
public static MessageEmbed buildEmbed(User author, User user1, User user2)
|
||||||
|
{
|
||||||
|
int loveAmount = RandomUtil.getRandomNumber(0, 100);
|
||||||
|
|
||||||
|
String formattedAmount = loveAmount + "%";
|
||||||
|
if(loveAmount <= 30) formattedAmount += "... \uD83D\uDE22";
|
||||||
|
else if(loveAmount < 60) formattedAmount += "! \uD83E\uDDD0";
|
||||||
|
else if(loveAmount < 75) formattedAmount += "!!! \uD83E\uDD73";
|
||||||
|
else formattedAmount = "✨ " + formattedAmount + "!!! \uD83D\uDE0D\uD83D\uDCA5";
|
||||||
|
|
||||||
|
EmbedBuilder embedBuilder = new EmbedBuilder();
|
||||||
|
embedBuilder.setColor(Cache.getBotColor());
|
||||||
|
embedBuilder.setAuthor(author.getAsTag(), null, author.getAvatarUrl());
|
||||||
|
embedBuilder.setTitle("Love Calculator");
|
||||||
|
|
||||||
|
embedBuilder.addField("\uD83D\uDC65 People",
|
||||||
|
user1.getAsMention() + " & " + user2.getAsMention(),
|
||||||
|
false);
|
||||||
|
|
||||||
|
embedBuilder.addField("❤️\u200D\uD83D\uDD25 Match",
|
||||||
|
formattedAmount,
|
||||||
|
false);
|
||||||
|
|
||||||
|
return embedBuilder.build();
|
||||||
|
}
|
||||||
|
}
|
@ -4,12 +4,14 @@ import net.dv8tion.jda.api.EmbedBuilder;
|
|||||||
import net.dv8tion.jda.api.Permission;
|
import net.dv8tion.jda.api.Permission;
|
||||||
import net.dv8tion.jda.api.entities.IMentionable;
|
import net.dv8tion.jda.api.entities.IMentionable;
|
||||||
import net.dv8tion.jda.api.entities.Mentions;
|
import net.dv8tion.jda.api.entities.Mentions;
|
||||||
|
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||||
import net.dv8tion.jda.api.entities.User;
|
import net.dv8tion.jda.api.entities.User;
|
||||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import wtf.beatrice.hidekobot.Cache;
|
import wtf.beatrice.hidekobot.Cache;
|
||||||
import wtf.beatrice.hidekobot.HidekoBot;
|
import wtf.beatrice.hidekobot.HidekoBot;
|
||||||
|
import wtf.beatrice.hidekobot.commands.base.LoveCalculator;
|
||||||
import wtf.beatrice.hidekobot.objects.commands.CommandCategory;
|
import wtf.beatrice.hidekobot.objects.commands.CommandCategory;
|
||||||
import wtf.beatrice.hidekobot.objects.commands.MessageCommand;
|
import wtf.beatrice.hidekobot.objects.commands.MessageCommand;
|
||||||
import wtf.beatrice.hidekobot.util.RandomUtil;
|
import wtf.beatrice.hidekobot.util.RandomUtil;
|
||||||
@ -86,28 +88,8 @@ public class LoveCalculatorCommand implements MessageCommand
|
|||||||
user2 = HidekoBot.getAPI().retrieveUserById(mentionedUserId).complete();
|
user2 = HidekoBot.getAPI().retrieveUserById(mentionedUserId).complete();
|
||||||
}
|
}
|
||||||
|
|
||||||
int loveAmount = RandomUtil.getRandomNumber(0, 100);
|
MessageEmbed embed = LoveCalculator.buildEmbed(event.getAuthor(), user1, user2);
|
||||||
|
event.getChannel().sendMessageEmbeds(embed).queue();
|
||||||
String formattedAmount = loveAmount + "%";
|
|
||||||
if(loveAmount <= 30) formattedAmount += "... \uD83D\uDE22";
|
|
||||||
else if(loveAmount < 60) formattedAmount += "! \uD83E\uDDD0";
|
|
||||||
else if(loveAmount < 75) formattedAmount += "!!! \uD83E\uDD73";
|
|
||||||
else formattedAmount = "✨ " + formattedAmount + "!!! \uD83D\uDE0D\uD83D\uDCA5";
|
|
||||||
|
|
||||||
EmbedBuilder embedBuilder = new EmbedBuilder();
|
|
||||||
embedBuilder.setColor(Cache.getBotColor());
|
|
||||||
embedBuilder.setAuthor(event.getAuthor().getAsTag(), null, event.getAuthor().getAvatarUrl());
|
|
||||||
embedBuilder.setTitle("Love Calculator");
|
|
||||||
|
|
||||||
embedBuilder.addField("\uD83D\uDC65 People",
|
|
||||||
user1.getAsMention() + " & " + user2.getAsMention(),
|
|
||||||
false);
|
|
||||||
|
|
||||||
embedBuilder.addField("❤️\u200D\uD83D\uDD25 Match",
|
|
||||||
formattedAmount,
|
|
||||||
false);
|
|
||||||
|
|
||||||
event.getChannel().sendMessageEmbeds(embedBuilder.build()).queue();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,61 @@
|
|||||||
|
package wtf.beatrice.hidekobot.commands.slash;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.api.entities.MessageEmbed;
|
||||||
|
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.LoveCalculator;
|
||||||
|
import wtf.beatrice.hidekobot.objects.commands.SlashCommandImpl;
|
||||||
|
|
||||||
|
public class LoveCalculatorCommand extends SlashCommandImpl
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public CommandData getSlashCommandData()
|
||||||
|
{
|
||||||
|
|
||||||
|
return Commands.slash("lovecalc",
|
||||||
|
"Calculate how much two people love each other.")
|
||||||
|
|
||||||
|
.addOption(OptionType.MENTIONABLE,
|
||||||
|
"first",
|
||||||
|
"The first person to account for",
|
||||||
|
true)
|
||||||
|
|
||||||
|
.addOption(OptionType.MENTIONABLE,
|
||||||
|
"second",
|
||||||
|
"The second person to account for",
|
||||||
|
false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void runSlashCommand(@NotNull SlashCommandInteractionEvent event)
|
||||||
|
{
|
||||||
|
User firstUser, secondUser;
|
||||||
|
|
||||||
|
OptionMapping firsUserArg = event.getOption("first");
|
||||||
|
if(firsUserArg != null)
|
||||||
|
{
|
||||||
|
firstUser = firsUserArg.getAsUser();
|
||||||
|
} else {
|
||||||
|
event.reply("\uD83D\uDE22 I need to know who to check! Please mention them.")
|
||||||
|
.setEphemeral(true)
|
||||||
|
.queue();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
OptionMapping secondUserArg = event.getOption("second");
|
||||||
|
if(secondUserArg != null)
|
||||||
|
{
|
||||||
|
secondUser = secondUserArg.getAsUser();
|
||||||
|
} else {
|
||||||
|
secondUser = event.getUser();
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageEmbed embed = LoveCalculator.buildEmbed(event.getUser(), firstUser, secondUser);
|
||||||
|
event.replyEmbeds(embed).queue();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user