Skip to content

Commit

Permalink
Add JDA#createApplicationEmoji (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
freya022 authored and Andre601 committed Aug 5, 2024
1 parent dac7087 commit 5105d1b
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/main/java/net/dv8tion/jda/api/JDA.java
Original file line number Diff line number Diff line change
Expand Up @@ -1748,6 +1748,10 @@ default List<RichCustomEmoji> getEmojisByName(@Nonnull String name, boolean igno
return getEmojiCache().getElementsByName(name, ignoreCase);
}

@Nonnull
@CheckReturnValue
RestAction<ApplicationEmoji> createApplicationEmoji(@Nonnull String name, @Nonnull Icon icon);

@CheckReturnValue
RestAction<List<ApplicationEmoji>> retrieveApplicationEmojis();

Expand Down
19 changes: 19 additions & 0 deletions src/main/java/net/dv8tion/jda/internal/JDAImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -678,6 +678,25 @@ public SnowflakeCacheView<RichCustomEmoji> getEmojiCache()
return CacheView.allSnowflakes(() -> guildCache.stream().map(Guild::getEmojiCache));
}

@Nonnull
@Override
public RestAction<ApplicationEmoji> createApplicationEmoji(@Nonnull String name, @Nonnull Icon icon)
{
Checks.inRange(name, 2, 32, "Emoji name");
Checks.notNull(icon, "Emoji icon");

DataObject body = DataObject.empty();
body.put("name", name);
body.put("image", icon.getEncoding());

final Route.CompiledRoute route = Route.Applications.CREATE_APPLICATION_EMOJI.compile(getSelfUser().getApplicationId());
return new RestActionImpl<>(this, route, body, (response, request) ->
{
final DataObject obj = response.getObject();
return entityBuilder.createApplicationEmoji(this, obj);
});
}

@Override
public RestAction<List<ApplicationEmoji>> retrieveApplicationEmojis()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1019,7 +1019,8 @@ public RichCustomEmojiImpl createEmoji(GuildImpl guildObj, DataObject json)
public ApplicationEmojiImpl createApplicationEmoji(JDAImpl api, DataObject json)
{
final long emojiId = json.getLong("id");
final User user = createUser(json.getObject("user"));
// Nullable when creating emojis, at least
final User user = json.optObject("user").map(this::createUser).orElse(null);
return new ApplicationEmojiImpl(emojiId, api, user)
.setAnimated(json.getBoolean("animated"))
.setName(json.getString("name"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import net.dv8tion.jda.internal.utils.EntityString;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

public class ApplicationEmojiImpl implements ApplicationEmoji, EmojiUnion
{
Expand Down Expand Up @@ -77,7 +78,7 @@ public JDA getJDA()
return api;
}

@Nonnull
@Nullable
@Override
public User getOwner()
{
Expand Down

0 comments on commit 5105d1b

Please sign in to comment.