1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
正如文檔提到的,Emote
僅適用于服務(wù)器的自定義表情符號(hào)。要檢索表情符號(hào),您必須使用表情符號(hào)庫,它可以從字符串中查找并過濾掉表情符號(hào)。
您可以使用emoji-java (在我的fork中更新)來執(zhí)行此操作:
String content = message.getContentRaw();
List<String> emojis = EmojiParser.extractEmojis(content);
for (String emoji : emojis) {
? ? message.addReaction(emoji).queue();
}
要將其與自定義表情結(jié)合起來,您可以使用表情的提及格式和 unicode 來查找每個(gè)索引并對(duì)列表進(jìn)行排序。
// Collect emojis
String content = message.getContentRaw();
List<String> emojis = EmojiParser.extractEmojis(content);
List<String> customEmoji = message.getEmotes().stream()
? ? ? ? .map((emote) -> emote.getName() + ":" + emote.getId())
? ? ? ? .collect(Collectors.toList());
// Create merged list
List<String> merged = new ArrayList<>();
merged.addAll(emojis);
merged.addAll(customEmoji);
// Sort based on index in message to preserve order
merged.sort(Comparator.comparingInt(content::indexOf));
for (String emoji : merged) {
? ? message.addReaction(emoji).queue();
}
請(qǐng)注意,重復(fù)項(xiàng)將被忽略,因?yàn)榉磻?yīng)無法重復(fù)。
添加回答
舉報(bào)