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