forked from SteamWar/SteamWar
@@ -27,6 +27,7 @@ import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEve
|
||||
import net.dv8tion.jda.api.hooks.ListenerAdapter;
|
||||
import net.dv8tion.jda.api.interactions.InteractionHook;
|
||||
import net.dv8tion.jda.api.interactions.commands.Command;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionMapping;
|
||||
import net.dv8tion.jda.api.interactions.commands.OptionType;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.OptionData;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.SubcommandData;
|
||||
@@ -52,7 +53,8 @@ public class VacationCommand extends ListenerAdapter {
|
||||
public VacationCommand() {
|
||||
COMMAND.addSubcommands(new SubcommandData("create", "Erstelle deinen Urlaub")
|
||||
.addOptions(new OptionData(OptionType.STRING, "from", "Datum (TT.MM.JJJJ)", true),
|
||||
new OptionData(OptionType.STRING, "to", "Datum (TT.MM.JJJJ)", true)));
|
||||
new OptionData(OptionType.STRING, "to", "Datum (TT.MM.JJJJ)", true),
|
||||
new OptionData(OptionType.STRING, "reason", "Abwesenheitsnotiz", false)));
|
||||
COMMAND.addSubcommands(new SubcommandData("delete", "Lösche deinen Urlaub")
|
||||
.addOptions(new OptionData(OptionType.STRING, "vacation", "Dein Urlaub", true, true)));
|
||||
}
|
||||
@@ -78,6 +80,7 @@ public class VacationCommand extends ListenerAdapter {
|
||||
InteractionHook interactionHook = event.deferReply(true).complete();
|
||||
String from = event.getOption("from").getAsString();
|
||||
String to = event.getOption("to").getAsString();
|
||||
String reason = event.getOption("reason", "", OptionMapping::getAsString);
|
||||
|
||||
LocalDateTime fromDate;
|
||||
try {
|
||||
@@ -115,12 +118,19 @@ public class VacationCommand extends ListenerAdapter {
|
||||
return;
|
||||
}
|
||||
|
||||
if (reason.length() > 1000) {
|
||||
interactionHook.editOriginal("Die Abwesenheitsnotiz darf nicht länger als 1000 Zeichen sein!").queue();
|
||||
return;
|
||||
}
|
||||
|
||||
guild.createScheduledEvent(
|
||||
"Urlaub " + event.getMember().getEffectiveName(),
|
||||
event.getMember().getId(),
|
||||
OffsetDateTime.of(fromDate, ZoneId.of("Europe/Berlin").getRules().getOffset(fromDate)),
|
||||
OffsetDateTime.of(toDate, ZoneId.of("Europe/Berlin").getRules().getOffset(toDate))
|
||||
).onSuccess(scheduledEvent -> {
|
||||
)
|
||||
.setDescription(reason)
|
||||
.onSuccess(scheduledEvent -> {
|
||||
interactionHook.editOriginal("Urlaub erstellt!").queue();
|
||||
})
|
||||
.onErrorMap(throwable -> {
|
||||
|
||||
Reference in New Issue
Block a user