2022-04-01 17:36:19 +00:00
|
|
|
package moe.oko.Kiafumi.command.fun;
|
2022-03-29 01:33:02 +00:00
|
|
|
|
2022-04-01 17:36:19 +00:00
|
|
|
import moe.oko.Kiafumi.command.CommandClass;
|
2022-03-29 01:33:02 +00:00
|
|
|
import moe.oko.Kiafumi.util.CommandInfo;
|
2022-03-29 15:35:38 +00:00
|
|
|
import moe.oko.Kiafumi.util.CommandType;
|
2022-03-29 11:52:52 +00:00
|
|
|
import moe.oko.Kiafumi.util.EmbedUI;
|
2022-03-29 01:33:02 +00:00
|
|
|
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;
|
|
|
|
|
2022-05-22 05:41:04 +00:00
|
|
|
import static moe.oko.Kiafumi.util.LoggingManager.slashLog;
|
2022-05-17 01:50:46 +00:00
|
|
|
|
2022-04-01 17:59:40 +00:00
|
|
|
/**
|
|
|
|
* Random User Choice Command
|
|
|
|
* @author Kay
|
|
|
|
*/
|
2022-03-30 03:52:10 +00:00
|
|
|
public class FightCommand extends CommandClass {
|
2022-03-29 01:33:02 +00:00
|
|
|
@Override
|
|
|
|
public boolean isEnabled() {
|
2022-05-17 01:50:46 +00:00
|
|
|
return true;
|
2022-03-29 01:33:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getName() {
|
2022-03-30 03:52:10 +00:00
|
|
|
return "Fight";
|
2022-03-29 01:33:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void newCommand(String name, SlashCommandInteractionEvent e) {
|
2022-03-30 03:52:10 +00:00
|
|
|
if ("fight".equals(name)) {
|
2022-05-17 01:50:46 +00:00
|
|
|
slashLog(e);
|
2022-03-29 11:52:52 +00:00
|
|
|
e.deferReply().queue();
|
|
|
|
List<User> usersForRng = new ArrayList<>();
|
2022-03-29 20:49:05 +00:00
|
|
|
List<String> userNames = new ArrayList<>();
|
2022-03-29 11:52:52 +00:00
|
|
|
for (OptionMapping option : e.getOptions()) {
|
|
|
|
usersForRng.add(option.getAsUser());
|
2022-03-29 20:49:05 +00:00
|
|
|
userNames.add(option.getAsUser().getName());
|
2022-03-29 11:52:52 +00:00
|
|
|
}
|
2022-05-17 01:50:46 +00:00
|
|
|
// Done, now roll
|
|
|
|
var eb = new EmbedBuilder()
|
2022-03-29 11:52:52 +00:00
|
|
|
.setColor(EmbedUI.INFO)
|
2022-05-16 22:57:13 +00:00
|
|
|
.setTitle("Match in progress...")
|
|
|
|
.setDescription("*POW! KABLAM! SCHNARF!*")
|
2022-03-29 11:52:52 +00:00
|
|
|
.setFooter(EmbedUI.BRAND)
|
|
|
|
.setTimestamp(ZonedDateTime.now());
|
|
|
|
e.getHook().sendMessageEmbeds(eb.build()).queue();
|
2022-05-17 01:50:46 +00:00
|
|
|
var rng = new Random();
|
|
|
|
var pickedUser = usersForRng.get(rng.nextInt(usersForRng.size()));
|
|
|
|
var eb1 = new EmbedBuilder()
|
2022-03-29 11:52:52 +00:00
|
|
|
.setColor(EmbedUI.INFO)
|
2022-05-16 22:57:13 +00:00
|
|
|
.setTitle("FATALITY!")
|
|
|
|
.setDescription(pickedUser.getName() + " wins!")
|
2022-03-29 11:52:52 +00:00
|
|
|
.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);
|
2022-03-29 01:33:02 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public List<CommandInfo> getSlashCommandInfo() {
|
|
|
|
List<CommandInfo> cil = new ArrayList<>();
|
2022-05-17 01:50:46 +00:00
|
|
|
var ci = new CommandInfo("fight", "MORTALLL KOMBATTTT", CommandType.COMMAND);
|
2022-03-30 03:52:10 +00:00
|
|
|
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);
|
2022-03-29 01:33:02 +00:00
|
|
|
cil.add(ci);
|
|
|
|
return cil;
|
|
|
|
}
|
|
|
|
}
|