From 524ce0c57941137467e95775b5e81ae18dd03b9d Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Mon, 29 Sep 2025 08:06:15 +0200 Subject: [PATCH] Update VacationCommand add 'Abwesenheitsnotiz' Closes: #144 --- .../velocitycore/discord/VacationCommand.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/VelocityCore/src/de/steamwar/velocitycore/discord/VacationCommand.java b/VelocityCore/src/de/steamwar/velocitycore/discord/VacationCommand.java index 5be79f9e..754187df 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/discord/VacationCommand.java +++ b/VelocityCore/src/de/steamwar/velocitycore/discord/VacationCommand.java @@ -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 -> {