From bdc593bbb740b2a5b38a7ef6ce7e8684af686ed6 Mon Sep 17 00:00:00 2001 From: Patrick Bassner Date: Mon, 2 Aug 2021 20:07:22 +0200 Subject: [PATCH] expose getKnownCustomEmojiOrCreateCustomEmoji fixes --- .../src/main/java/org/javacord/api/DiscordApi.java | 14 ++++++++++++++ .../java/org/javacord/core/DiscordApiImpl.java | 1 + 2 files changed, 15 insertions(+) diff --git a/javacord-api/src/main/java/org/javacord/api/DiscordApi.java b/javacord-api/src/main/java/org/javacord/api/DiscordApi.java index 7f652fe9d7..95df48146f 100644 --- a/javacord-api/src/main/java/org/javacord/api/DiscordApi.java +++ b/javacord-api/src/main/java/org/javacord/api/DiscordApi.java @@ -1222,6 +1222,20 @@ default Collection getCustomEmojisByNameIgnoreCase(String name .collect(Collectors.toList())); } + /** + * Creates or gets a custom emoji to be used in other Javacord APIs. Use this if the custom emoji you're looking + * for is hosted on a different shard, and can't be accessed through {@code getCustomEmojiById()}. + * If the custom emoji is known, the method will return the known custom emoji instead of creating a new one. + * The method will always return a non-null value, even if the emoji does not exist which will lead to a non + * functional custom emoji for further usage. + * + * @param id the ID of the custom emoji + * @param name the name of the custom emoji + * @param animated true if the emoji is animated; false otherwise + * @return the new (unknown) custom emoji instance + */ + CustomEmoji getKnownCustomEmojiOrCreateCustomEmoji(long id, String name, boolean animated); + /** * Gets a collection with all roles the bot knows. * diff --git a/javacord-core/src/main/java/org/javacord/core/DiscordApiImpl.java b/javacord-core/src/main/java/org/javacord/core/DiscordApiImpl.java index 57616a25eb..2966c33902 100644 --- a/javacord-core/src/main/java/org/javacord/core/DiscordApiImpl.java +++ b/javacord-core/src/main/java/org/javacord/core/DiscordApiImpl.java @@ -1084,6 +1084,7 @@ public CustomEmoji getKnownCustomEmojiOrCreateCustomEmoji(JsonNode data) { * @param animated Whether the emoji is animated or not. * @return The emoji for the given json object. */ + @Override public CustomEmoji getKnownCustomEmojiOrCreateCustomEmoji(long id, String name, boolean animated) { CustomEmoji emoji = customEmojis.get(id); return emoji == null ? new CustomEmojiImpl(this, id, name, animated) : emoji;