From ea9f5085f51d44eb3b836160a22295b960272a75 Mon Sep 17 00:00:00 2001 From: freya02 <41875020+freya022@users.noreply.github.com> Date: Fri, 15 Mar 2024 19:35:35 +0100 Subject: [PATCH] Add AccountManager#setBanner --- .../dv8tion/jda/api/managers/AccountManager.java | 15 +++++++++++++++ .../jda/internal/managers/AccountManagerImpl.java | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/main/java/net/dv8tion/jda/api/managers/AccountManager.java b/src/main/java/net/dv8tion/jda/api/managers/AccountManager.java index 079f11ab6ce..6c51dd078ec 100644 --- a/src/main/java/net/dv8tion/jda/api/managers/AccountManager.java +++ b/src/main/java/net/dv8tion/jda/api/managers/AccountManager.java @@ -50,6 +50,8 @@ public interface AccountManager extends Manager long NAME = 1; /** Used to reset the avatar field */ long AVATAR = 1 << 1; + /** Used to reset the banner field */ + long BANNER = 1 << 2; /** * The {@link net.dv8tion.jda.api.entities.SelfUser SelfUser} that will be @@ -137,4 +139,17 @@ public interface AccountManager extends Manager @Nonnull @CheckReturnValue AccountManager setAvatar(@Nullable Icon avatar); + + /** + * Sets the banner for the currently logged in account + * + * @param banner + * An {@link net.dv8tion.jda.api.entities.Icon Icon} instance representing + * the new banner for the current account, {@code null} to reset the banner to the default banner. + * + * @return AccountManager for chaining convenience + */ + @Nonnull + @CheckReturnValue + AccountManager setBanner(@Nullable Icon banner); } diff --git a/src/main/java/net/dv8tion/jda/internal/managers/AccountManagerImpl.java b/src/main/java/net/dv8tion/jda/internal/managers/AccountManagerImpl.java index 6e62bc1df14..4da6e543d67 100644 --- a/src/main/java/net/dv8tion/jda/internal/managers/AccountManagerImpl.java +++ b/src/main/java/net/dv8tion/jda/internal/managers/AccountManagerImpl.java @@ -35,6 +35,7 @@ public class AccountManagerImpl extends ManagerBase implements A protected String name; protected Icon avatar; + protected Icon banner; /** * Creates a new AccountManager instance @@ -63,6 +64,8 @@ public AccountManagerImpl reset(long fields) super.reset(fields); if ((fields & AVATAR) == AVATAR) avatar = null; + if ((fields & BANNER) == BANNER) + banner = null; return this; } @@ -110,6 +113,16 @@ public AccountManagerImpl setAvatar(Icon avatar) return this; } + @Nonnull + @Override + @CheckReturnValue + public AccountManager setBanner(Icon banner) + { + this.banner = banner; + set |= BANNER; + return this; + } + @Override protected RequestBody finalizeData() { @@ -123,6 +136,8 @@ protected RequestBody finalizeData() body.put("username", name); if (shouldUpdate(AVATAR)) body.put("avatar", avatar == null ? null : avatar.getEncoding()); + if (shouldUpdate(BANNER)) + body.put("banner", banner == null ? null : banner.getEncoding()); reset(); return getRequestBody(body);