From bff262e82b720a63c36ac29ecfec2a9c32aeeef1 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Thu, 6 Jun 2024 18:54:02 +0200 Subject: [PATCH 1/2] Add optional buttons --- .../java/org/geysermc/cumulus/form/SimpleForm.java | 10 ++++++++++ .../cumulus/form/impl/simple/SimpleFormImpl.java | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/src/main/java/org/geysermc/cumulus/form/SimpleForm.java b/src/main/java/org/geysermc/cumulus/form/SimpleForm.java index 72599d7..d50a889 100644 --- a/src/main/java/org/geysermc/cumulus/form/SimpleForm.java +++ b/src/main/java/org/geysermc/cumulus/form/SimpleForm.java @@ -153,5 +153,15 @@ interface Builder extends FormBuilder { * @since 1.1 */ @This Builder optionalButton(@NonNull String text, boolean shouldAdd); + + /** + * Adds a button to the Form, but only when shouldAdd is true. + * + * @param button the button to add + * @param shouldAdd if the button should be added + * @return the form builder + * @since 1.2 + */ + @This Builder optionalButton(@NonNull ButtonComponent button, boolean shouldAdd); } } diff --git a/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java b/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java index ea5c2ac..cde9da6 100644 --- a/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java +++ b/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java @@ -30,6 +30,7 @@ import java.util.Objects; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; +import org.checkerframework.common.returnsreceiver.qual.This; import org.geysermc.cumulus.component.ButtonComponent; import org.geysermc.cumulus.form.SimpleForm; import org.geysermc.cumulus.form.impl.FormImpl; @@ -124,6 +125,14 @@ public Builder optionalButton(@NonNull String text, boolean shouldAdd) { return addNullButton(); } + @Override + public SimpleForm.@This Builder optionalButton(@NonNull ButtonComponent button, boolean shouldAdd) { + if (shouldAdd) { + return button(button); + } + return addNullButton(); + } + @Override public @NonNull SimpleForm build() { SimpleFormImpl form = new SimpleFormImpl(title, content, buttons); From 3a93c4e9ba7a3f781cb118e269ec7289ac788f36 Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Thu, 6 Jun 2024 19:01:41 +0200 Subject: [PATCH 2/2] spotless :/// --- src/main/java/org/geysermc/cumulus/form/SimpleForm.java | 2 +- .../geysermc/cumulus/form/impl/simple/SimpleFormImpl.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/geysermc/cumulus/form/SimpleForm.java b/src/main/java/org/geysermc/cumulus/form/SimpleForm.java index d50a889..cf609b6 100644 --- a/src/main/java/org/geysermc/cumulus/form/SimpleForm.java +++ b/src/main/java/org/geysermc/cumulus/form/SimpleForm.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2023 GeyserMC + * Copyright (c) 2020-2024 GeyserMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal diff --git a/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java b/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java index cde9da6..7a9fbc9 100644 --- a/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java +++ b/src/main/java/org/geysermc/cumulus/form/impl/simple/SimpleFormImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2023 GeyserMC + * Copyright (c) 2020-2024 GeyserMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -126,7 +126,8 @@ public Builder optionalButton(@NonNull String text, boolean shouldAdd) { } @Override - public SimpleForm.@This Builder optionalButton(@NonNull ButtonComponent button, boolean shouldAdd) { + public SimpleForm.@This Builder optionalButton( + @NonNull ButtonComponent button, boolean shouldAdd) { if (shouldAdd) { return button(button); }