Skip to content

Commit 6d86c8f

Browse files
committed
reaction-emoji: read from configuration file
1 parent b04c8f7 commit 6d86c8f

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

application/src/main/java/org/togetherjava/tjbot/config/CoolMessagesBoardConfig.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
@JsonRootName("coolMessagesConfig")
1313
public record CoolMessagesBoardConfig(
1414
@JsonProperty(value = "minimumReactions", required = true) int minimumReactions,
15-
@JsonProperty(value = "boardChannelPattern", required = true) String boardChannelPattern) {
15+
@JsonProperty(value = "boardChannelPattern", required = true) String boardChannelPattern,
16+
@JsonProperty(value = "reactionEmoji", required = true) String reactionEmoji) {
1617

1718
/**
1819
* Creates a CoolMessagesBoardConfig.
1920
*
2021
* @param minimumReactions the minimum amount of reactions
2122
* @param boardChannelPattern the pattern for the board channel
23+
* @param reactionEmoji the emoji with which users should react to
2224
*/
2325
public CoolMessagesBoardConfig {
2426
Objects.requireNonNull(boardChannelPattern);

application/src/main/java/org/togetherjava/tjbot/features/basic/CoolMessagesBoardManager.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,13 @@
2929
public final class CoolMessagesBoardManager extends MessageReceiverAdapter {
3030

3131
private static final Logger logger = LoggerFactory.getLogger(CoolMessagesBoardManager.class);
32-
private static final Emoji REACT_EMOJI = Emoji.fromUnicode("🌟");
32+
private Emoji coolEmoji;
3333
private final Predicate<String> boardChannelNamePredicate;
3434
private final CoolMessagesBoardConfig config;
3535

3636
public CoolMessagesBoardManager(Config config) {
3737
this.config = config.getCoolMessagesConfig();
38+
this.coolEmoji = Emoji.fromUnicode(this.config.reactionEmoji());
3839

3940
boardChannelNamePredicate =
4041
Pattern.compile(this.config.boardChannelPattern()).asMatchPredicate();
@@ -44,7 +45,7 @@ public CoolMessagesBoardManager(Config config) {
4445
public void onMessageReactionAdd(MessageReactionAddEvent event) {
4546
final MessageReaction messageReaction = event.getReaction();
4647
int originalReactionsCount = messageReaction.hasCount() ? messageReaction.getCount() : 0;
47-
boolean isCoolEmoji = messageReaction.getEmoji().getName().equals(REACT_EMOJI.getName());
48+
boolean isCoolEmoji = messageReaction.getEmoji().equals(coolEmoji);
4849
long guildId = event.getGuild().getIdLong();
4950
Optional<TextChannel> boardChannel = getBoardChannel(event.getJDA(), guildId);
5051

@@ -64,7 +65,7 @@ public void onMessageReactionAdd(MessageReactionAddEvent event) {
6465
final int newReactionsCount = originalReactionsCount + 1;
6566
if (isCoolEmoji && newReactionsCount >= config.minimumReactions()) {
6667
event.retrieveMessage().queue(message -> {
67-
message.addReaction(REACT_EMOJI).queue();
68+
message.addReaction(coolEmoji).queue();
6869

6970
insertCoolMessage(boardChannel.get(), message);
7071
}, e -> logger.warn("Tried to retrieve cool message but got: {}", e.getMessage()));
@@ -123,8 +124,8 @@ private static MessageEmbed createQuoteEmbed(Message message) {
123124
/**
124125
* Checks a {@link MessageReaction} to see if the bot has reacted to it.
125126
*/
126-
private static boolean hasBotReacted(JDA jda, MessageReaction messageReaction) {
127-
if (!REACT_EMOJI.equals(messageReaction.getEmoji())) {
127+
private boolean hasBotReacted(JDA jda, MessageReaction messageReaction) {
128+
if (!coolEmoji.equals(messageReaction.getEmoji())) {
128129
return false;
129130
}
130131

0 commit comments

Comments
 (0)