mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-25 14:06:24 +00:00
added ability to define and use default emotes (introduced them in starboard/embed deletion/command reactions/suggestions)
fixed post target validation for suggestions
This commit is contained in:
@@ -19,6 +19,7 @@ public class DynamicKeyLoader {
|
||||
|
||||
private HashMap<String, String> postTargets = new HashMap<>();
|
||||
private HashMap<String, String> emoteNames = new HashMap<>();
|
||||
private HashMap<String, String> defaultEmotes = new HashMap<>();
|
||||
|
||||
public List<String> getPostTargetsAsList() {
|
||||
return getHashMapAsList(postTargets);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package dev.sheldan.abstracto.core.service;
|
||||
|
||||
import dev.sheldan.abstracto.core.DynamicKeyLoader;
|
||||
import dev.sheldan.abstracto.core.exception.EmoteException;
|
||||
import dev.sheldan.abstracto.core.models.database.AEmote;
|
||||
import dev.sheldan.abstracto.core.service.management.EmoteManagementService;
|
||||
@@ -22,6 +23,9 @@ public class EmoteServiceBean implements EmoteService {
|
||||
@Autowired
|
||||
private EmoteManagementService emoteManagementService;
|
||||
|
||||
@Autowired
|
||||
private DynamicKeyLoader keyLoader;
|
||||
|
||||
@Override
|
||||
public boolean isEmoteUsableByBot(Emote emote) {
|
||||
for (Guild guild : botService.getInstance().getGuilds()) {
|
||||
@@ -65,10 +69,28 @@ public class EmoteServiceBean implements EmoteService {
|
||||
return this.getEmoteAsMention(emote, serverId, " ");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsableEmoteOrDefault(Long serverId, String name) {
|
||||
Optional<AEmote> aEmote = emoteManagementService.loadEmoteByName(name, serverId);
|
||||
String defaultEmote = getDefaultEmote(name);
|
||||
return getEmoteAsMention(aEmote.orElse(null), serverId, defaultEmote);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void throwIfEmoteDoesNotExist(String emoteKey, Long serverId) {
|
||||
if(!emoteManagementService.loadEmoteByName(emoteKey, serverId).isPresent()) {
|
||||
throw new EmoteException(String.format("Emote %s not defined.", emoteKey));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AEmote getEmoteOrFakeEmote(String emoteKey, Long serverId) {
|
||||
Optional<AEmote> emoteOptional = emoteManagementService.loadEmoteByName(emoteKey, serverId);
|
||||
return emoteOptional.orElseGet(() -> AEmote.builder().emoteKey(getDefaultEmote(emoteKey)).custom(false).name(emoteKey).build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDefaultEmote(String emoteKey) {
|
||||
return keyLoader.getDefaultEmotes().get(emoteKey);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,9 @@ public class MessageServiceBean implements MessageService {
|
||||
@Autowired
|
||||
private EmoteManagementService emoteManagementService;
|
||||
|
||||
@Autowired
|
||||
private EmoteService emoteService;
|
||||
|
||||
@Override
|
||||
public void addReactionToMessage(String emoteKey, Long serverId, Message message) {
|
||||
Optional<Guild> guildByIdOptional = bot.getGuildById(serverId);
|
||||
@@ -44,9 +47,8 @@ public class MessageServiceBean implements MessageService {
|
||||
message.addReaction(emote.getEmoteKey()).queue();
|
||||
}
|
||||
} else {
|
||||
log.error("Cannot add reaction, emote {} not defined for server {}.", emoteKey, serverId);
|
||||
throw new EmoteException(String.format("Cannot add reaction. Emote `%s` not defined in server %s. Define the emote via the setEmote command.", emoteKey, serverId));
|
||||
}
|
||||
String defaultEmote = emoteService.getDefaultEmote(emoteKey);
|
||||
message.addReaction(defaultEmote).queue();}
|
||||
} else {
|
||||
log.error("Cannot add reaction, guild not found {}", serverId);
|
||||
throw new GuildException(String.format("Cannot add reaction, guild %s not found.", serverId));
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
abstracto.emoteNames.postReaction=warnReaction,successReaction
|
||||
abstracto.emoteNames.postReaction=warnReaction,successReaction
|
||||
abstracto.defaultEmotes.warnReaction=\u26A0\uFE0F
|
||||
abstracto.defaultEmotes.successReaction=\u2705
|
||||
|
||||
Reference in New Issue
Block a user