package moe.oko.Kiafumi.command.fun; import moe.oko.Kiafumi.command.CommandClass; import moe.oko.Kiafumi.util.CommandInfo; import moe.oko.Kiafumi.util.CommandType; import moe.oko.Kiafumi.util.EmbedUI; import net.dv8tion.jda.api.EmbedBuilder; 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 java.time.ZonedDateTime; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.TimeUnit; import static moe.oko.Kiafumi.util.LoggingManager.slashLog; /** * Random User Choice Command * @author Kay */ public class FightCommand extends CommandClass { @Override public boolean isEnabled() { return true; } @Override public String getName() { return "Fight"; } @Override public void newCommand(String name, SlashCommandInteractionEvent e) { if ("fight".equals(name)) { slashLog(e); e.deferReply().queue(); List usersForRng = new ArrayList<>(); List userNames = new ArrayList<>(); for (OptionMapping option : e.getOptions()) { usersForRng.add(option.getAsUser()); userNames.add(option.getAsUser().getName()); } // Done, now roll var eb = new EmbedBuilder() .setColor(EmbedUI.INFO) .setTitle("Match in progress...") .setDescription("*POW! KABLAM! SCHNARF!*") .setFooter(EmbedUI.BRAND) .setTimestamp(ZonedDateTime.now()); e.getHook().sendMessageEmbeds(eb.build()).queue(); var rng = new Random(); var pickedUser = usersForRng.get(rng.nextInt(usersForRng.size())); var eb1 = new EmbedBuilder() .setColor(EmbedUI.INFO) .setTitle("FATALITY!") .setDescription(pickedUser.getName() + " wins!") .setThumbnail(pickedUser.getAvatarUrl()) .setFooter(EmbedUI.BRAND) // TODO: Make this show the list of participants .setTimestamp(ZonedDateTime.now()); e.getHook().editOriginalEmbeds(eb1.build()).completeAfter(3, TimeUnit.SECONDS); } } @Override public List getSlashCommandInfo() { List cil = new ArrayList<>(); var ci = new CommandInfo("fight", "MORTALLL KOMBATTTT", CommandType.COMMAND); ci.addOption("value1", "first fighter", OptionType.USER, true); ci.addOption("value2", "second fighter", OptionType.USER, true); ci.addOption("value3", "third fighter", OptionType.USER, false); ci.addOption("value4", "fourth fighter", OptionType.USER, false); cil.add(ci); return cil; } }