mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-14 19:56:29 +00:00
[AB-200] fixing link embeds not working for users who left the server
fixing some issues with optional dependencies (autowired creates null instances etc) fixing roll and roulette using not the proper default values fixing setPrefix not creating an instance, in case it originated from a default config fixing too many configuration properties in utility
This commit is contained in:
@@ -42,7 +42,7 @@ public class Roll extends AbstractConditionableCommand {
|
|||||||
@Override
|
@Override
|
||||||
public CompletableFuture<CommandResult> executeAsync(CommandContext commandContext) {
|
public CompletableFuture<CommandResult> executeAsync(CommandContext commandContext) {
|
||||||
List<Object> parameters = commandContext.getParameters().getParameters();
|
List<Object> parameters = commandContext.getParameters().getParameters();
|
||||||
Integer high = configService.getLongValue(EntertainmentFeature.ROLL_DEFAULT_HIGH_KEY, commandContext.getGuild().getIdLong()).intValue();
|
Integer high = configService.getLongValueOrConfigDefault(EntertainmentFeature.ROLL_DEFAULT_HIGH_KEY, commandContext.getGuild().getIdLong()).intValue();
|
||||||
Integer low = 1;
|
Integer low = 1;
|
||||||
if(parameters.size() > 1) {
|
if(parameters.size() > 1) {
|
||||||
low = (Integer) parameters.get(1);
|
low = (Integer) parameters.get(1);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class EntertainmentServiceBean implements EntertainmentService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean executeRoulette(Member memberExecuting) {
|
public boolean executeRoulette(Member memberExecuting) {
|
||||||
Long possibilities = configService.getLongValue(EntertainmentFeature.ROULETTE_BULLETS_CONFIG_KEY, memberExecuting.getGuild().getIdLong());
|
Long possibilities = configService.getLongValueOrConfigDefault(EntertainmentFeature.ROULETTE_BULLETS_CONFIG_KEY, memberExecuting.getGuild().getIdLong());
|
||||||
// 1/possibilities of chance, we don't have a state, each time its reset
|
// 1/possibilities of chance, we don't have a state, each time its reset
|
||||||
return secureRandom.nextInt(possibilities.intValue()) == 0;
|
return secureRandom.nextInt(possibilities.intValue()) == 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import dev.sheldan.abstracto.core.templating.service.TemplateService;
|
|||||||
import dev.sheldan.abstracto.linkembed.model.MessageEmbedLink;
|
import dev.sheldan.abstracto.linkembed.model.MessageEmbedLink;
|
||||||
import dev.sheldan.abstracto.linkembed.service.management.MessageEmbedPostManagementService;
|
import dev.sheldan.abstracto.linkembed.service.management.MessageEmbedPostManagementService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
import net.dv8tion.jda.api.entities.TextChannel;
|
import net.dv8tion.jda.api.entities.TextChannel;
|
||||||
|
import net.dv8tion.jda.api.entities.User;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -47,6 +47,9 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MemberService memberService;
|
private MemberService memberService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TemplateService templateService;
|
private TemplateService templateService;
|
||||||
|
|
||||||
@@ -105,15 +108,9 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public CompletableFuture<Void> embedLink(CachedMessage cachedMessage, TextChannel target, Long userEmbeddingUserInServerId, Message embeddingMessage) {
|
public CompletableFuture<Void> embedLink(CachedMessage cachedMessage, TextChannel target, Long userEmbeddingUserInServerId, Message embeddingMessage) {
|
||||||
Optional<AUserInAServer> causeOpt = userInServerManagementService.loadUserOptional(userEmbeddingUserInServerId);
|
|
||||||
if(causeOpt.isPresent()) {
|
|
||||||
return buildTemplateParameter(embeddingMessage, cachedMessage).thenCompose(messageEmbeddedModel ->
|
return buildTemplateParameter(embeddingMessage, cachedMessage).thenCompose(messageEmbeddedModel ->
|
||||||
self.sendEmbeddingMessage(cachedMessage, target, userEmbeddingUserInServerId, messageEmbeddedModel)
|
self.sendEmbeddingMessage(cachedMessage, target, userEmbeddingUserInServerId, messageEmbeddedModel)
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
log.warn("User {} which was not found in database wanted to embed link in message {}.", userEmbeddingUserInServerId, embeddingMessage.getJumpUrl());
|
|
||||||
return CompletableFuture.completedFuture(null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@@ -132,25 +129,25 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void loadUserAndPersistMessage(CachedMessage cachedMessage, Long userInServerId, Message createdMessage) {
|
public void loadUserAndPersistMessage(CachedMessage cachedMessage, Long embeddingUserId, Message createdMessage) {
|
||||||
AUserInAServer innerCause = userInServerManagementService.loadOrCreateUser(userInServerId);
|
AUserInAServer innerCause = userInServerManagementService.loadOrCreateUser(embeddingUserId);
|
||||||
messageEmbedPostManagementService.createMessageEmbed(cachedMessage, createdMessage, innerCause);
|
messageEmbedPostManagementService.createMessageEmbed(cachedMessage, createdMessage, innerCause);
|
||||||
}
|
}
|
||||||
|
|
||||||
private CompletableFuture<MessageEmbeddedModel> buildTemplateParameter(Message message, CachedMessage embeddedMessage) {
|
private CompletableFuture<MessageEmbeddedModel> buildTemplateParameter(Message message, CachedMessage embeddedMessage) {
|
||||||
return memberService.getMemberInServerAsync(embeddedMessage.getServerId(), embeddedMessage.getAuthor().getAuthorId()).thenApply(member ->
|
return userService.retrieveUserForId(embeddedMessage.getAuthor().getAuthorId()).thenApply(authorUser ->
|
||||||
self.loadMessageEmbedModel(message, embeddedMessage, member)
|
self.loadMessageEmbedModel(message, embeddedMessage, authorUser)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public MessageEmbeddedModel loadMessageEmbedModel(Message message, CachedMessage embeddedMessage, Member member) {
|
public MessageEmbeddedModel loadMessageEmbedModel(Message message, CachedMessage embeddedMessage, User userAuthor) {
|
||||||
Optional<TextChannel> textChannelFromServer = channelService.getTextChannelFromServerOptional(embeddedMessage.getServerId(), embeddedMessage.getChannelId());
|
Optional<TextChannel> textChannelFromServer = channelService.getTextChannelFromServerOptional(embeddedMessage.getServerId(), embeddedMessage.getChannelId());
|
||||||
TextChannel sourceChannel = textChannelFromServer.orElse(null);
|
TextChannel sourceChannel = textChannelFromServer.orElse(null);
|
||||||
return MessageEmbeddedModel
|
return MessageEmbeddedModel
|
||||||
.builder()
|
.builder()
|
||||||
.member(message.getMember())
|
.member(message.getMember())
|
||||||
.author(member)
|
.author(userAuthor)
|
||||||
.sourceChannel(sourceChannel)
|
.sourceChannel(sourceChannel)
|
||||||
.embeddingUser(message.getMember())
|
.embeddingUser(message.getMember())
|
||||||
.messageChannel(message.getChannel())
|
.messageChannel(message.getChannel())
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class MessageEmbedPostManagementServiceBean implements MessageEmbedPostMa
|
|||||||
public void createMessageEmbed(CachedMessage embeddedMessage, Message messageContainingEmbed, AUserInAServer embeddingUser) {
|
public void createMessageEmbed(CachedMessage embeddedMessage, Message messageContainingEmbed, AUserInAServer embeddingUser) {
|
||||||
AServer embeddedServer = serverManagementService.loadOrCreate(embeddedMessage.getServerId());
|
AServer embeddedServer = serverManagementService.loadOrCreate(embeddedMessage.getServerId());
|
||||||
AServer embeddingServer = serverManagementService.loadOrCreate(messageContainingEmbed.getGuild().getIdLong());
|
AServer embeddingServer = serverManagementService.loadOrCreate(messageContainingEmbed.getGuild().getIdLong());
|
||||||
if(!embeddedServer.getId().equals(embeddingServer.getId())) {
|
if(!embeddedMessage.getServerId().equals(messageContainingEmbed.getGuild().getIdLong())) {
|
||||||
throw new CrossServerEmbedException(String.format("Message %s is not from server %s", embeddedMessage.getMessageUrl(), embeddingServer.getId()));
|
throw new CrossServerEmbedException(String.format("Message %s is not from server %s", embeddedMessage.getMessageUrl(), embeddingServer.getId()));
|
||||||
}
|
}
|
||||||
AChannel embeddingChannel = channelManagementService.loadChannel(messageContainingEmbed.getChannel().getIdLong());
|
AChannel embeddingChannel = channelManagementService.loadChannel(messageContainingEmbed.getChannel().getIdLong());
|
||||||
|
|||||||
@@ -14,10 +14,7 @@ import dev.sheldan.abstracto.core.templating.model.MessageToSend;
|
|||||||
import dev.sheldan.abstracto.core.templating.service.TemplateService;
|
import dev.sheldan.abstracto.core.templating.service.TemplateService;
|
||||||
import dev.sheldan.abstracto.linkembed.model.MessageEmbedLink;
|
import dev.sheldan.abstracto.linkembed.model.MessageEmbedLink;
|
||||||
import dev.sheldan.abstracto.linkembed.service.management.MessageEmbedPostManagementService;
|
import dev.sheldan.abstracto.linkembed.service.management.MessageEmbedPostManagementService;
|
||||||
import net.dv8tion.jda.api.entities.Guild;
|
import net.dv8tion.jda.api.entities.*;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
|
||||||
import net.dv8tion.jda.api.entities.TextChannel;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
@@ -64,6 +61,9 @@ public class MessageEmbedServiceBeanTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private MessageEmbedPostManagementService messageEmbedPostManagementService;
|
private MessageEmbedPostManagementService messageEmbedPostManagementService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private ReactionService reactionService;
|
private ReactionService reactionService;
|
||||||
|
|
||||||
@@ -100,6 +100,9 @@ public class MessageEmbedServiceBeanTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private Member embeddedMember;
|
private Member embeddedMember;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private User embeddedUser;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNoLinkInString(){
|
public void testNoLinkInString(){
|
||||||
String message = "test";
|
String message = "test";
|
||||||
@@ -203,14 +206,12 @@ public class MessageEmbedServiceBeanTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testLoadingEmbeddingModel() {
|
public void testLoadingEmbeddingModel() {
|
||||||
when(cachedMessage.getServerId()).thenReturn(SERVER_ID);
|
|
||||||
CachedAuthor cachedAuthor = Mockito.mock(CachedAuthor.class);
|
CachedAuthor cachedAuthor = Mockito.mock(CachedAuthor.class);
|
||||||
when(cachedAuthor.getAuthorId()).thenReturn(USER_ID);
|
when(cachedAuthor.getAuthorId()).thenReturn(USER_ID);
|
||||||
when(cachedMessage.getAuthor()).thenReturn(cachedAuthor);
|
when(cachedMessage.getAuthor()).thenReturn(cachedAuthor);
|
||||||
when(userInServerManagementService.loadUserOptional(EMBEDDING_USER_IN_SERVER_ID)).thenReturn(Optional.of(embeddingUser));
|
when(userService.retrieveUserForId(USER_ID)).thenReturn(CompletableFuture.completedFuture(embeddedUser));
|
||||||
when(memberService.getMemberInServerAsync(SERVER_ID, USER_ID)).thenReturn(CompletableFuture.completedFuture(embeddingMember));
|
|
||||||
MessageEmbeddedModel model = Mockito.mock(MessageEmbeddedModel.class);
|
MessageEmbeddedModel model = Mockito.mock(MessageEmbeddedModel.class);
|
||||||
when(self.loadMessageEmbedModel(embeddingMessage, cachedMessage, embeddingMember)).thenReturn(model);
|
when(self.loadMessageEmbedModel(embeddingMessage, cachedMessage, embeddedUser)).thenReturn(model);
|
||||||
when(self.sendEmbeddingMessage(cachedMessage, textChannel, EMBEDDING_USER_IN_SERVER_ID, model)).thenReturn(CompletableFuture.completedFuture(null));
|
when(self.sendEmbeddingMessage(cachedMessage, textChannel, EMBEDDING_USER_IN_SERVER_ID, model)).thenReturn(CompletableFuture.completedFuture(null));
|
||||||
CompletableFuture<Void> embedFuture = testUnit.embedLink(cachedMessage, textChannel, EMBEDDING_USER_IN_SERVER_ID, embeddingMessage);
|
CompletableFuture<Void> embedFuture = testUnit.embedLink(cachedMessage, textChannel, EMBEDDING_USER_IN_SERVER_ID, embeddingMessage);
|
||||||
Assert.assertTrue(embedFuture.isDone());
|
Assert.assertTrue(embedFuture.isDone());
|
||||||
@@ -221,7 +222,10 @@ public class MessageEmbedServiceBeanTest {
|
|||||||
Long firstMessageId = 6L;
|
Long firstMessageId = 6L;
|
||||||
CachedMessage cachedMessage = mockCachedMessage(firstMessageId);
|
CachedMessage cachedMessage = mockCachedMessage(firstMessageId);
|
||||||
Long userEmbeddingUserInServerId = 5L;
|
Long userEmbeddingUserInServerId = 5L;
|
||||||
when(userInServerManagementService.loadUserOptional(userEmbeddingUserInServerId)).thenReturn(Optional.empty());
|
CachedAuthor cachedAuthor = Mockito.mock(CachedAuthor.class);
|
||||||
|
when(cachedAuthor.getAuthorId()).thenReturn(USER_ID);
|
||||||
|
when(cachedMessage.getAuthor()).thenReturn(cachedAuthor);
|
||||||
|
when(userService.retrieveUserForId(USER_ID)).thenReturn(CompletableFuture.completedFuture(embeddedUser));
|
||||||
testUnit.embedLink(cachedMessage, textChannel, userEmbeddingUserInServerId, embeddingMessage);
|
testUnit.embedLink(cachedMessage, textChannel, userEmbeddingUserInServerId, embeddingMessage);
|
||||||
verify(messageCache, times(0)).getMessageFromCache(anyLong(), anyLong(), anyLong());
|
verify(messageCache, times(0)).getMessageFromCache(anyLong(), anyLong(), anyLong());
|
||||||
}
|
}
|
||||||
@@ -259,11 +263,11 @@ public class MessageEmbedServiceBeanTest {
|
|||||||
when(embeddingMessage.getGuild()).thenReturn(guild);
|
when(embeddingMessage.getGuild()).thenReturn(guild);
|
||||||
when(embeddingMessage.getChannel()).thenReturn(textChannel);
|
when(embeddingMessage.getChannel()).thenReturn(textChannel);
|
||||||
when(embeddingMessage.getMember()).thenReturn(embeddingMember);
|
when(embeddingMessage.getMember()).thenReturn(embeddingMember);
|
||||||
MessageEmbeddedModel createdModel = testUnit.loadMessageEmbedModel(embeddingMessage, cachedMessage, embeddedMember);
|
MessageEmbeddedModel createdModel = testUnit.loadMessageEmbedModel(embeddingMessage, cachedMessage, embeddedUser);
|
||||||
Assert.assertEquals(textChannel, createdModel.getSourceChannel());
|
Assert.assertEquals(textChannel, createdModel.getSourceChannel());
|
||||||
Assert.assertEquals(guild, createdModel.getGuild());
|
Assert.assertEquals(guild, createdModel.getGuild());
|
||||||
Assert.assertEquals(textChannel, createdModel.getMessageChannel());
|
Assert.assertEquals(textChannel, createdModel.getMessageChannel());
|
||||||
Assert.assertEquals(embeddedMember, createdModel.getAuthor());
|
Assert.assertEquals(embeddedUser, createdModel.getAuthor());
|
||||||
Assert.assertEquals(embeddingMember, createdModel.getMember());
|
Assert.assertEquals(embeddingMember, createdModel.getMember());
|
||||||
Assert.assertEquals(embeddingMember, createdModel.getEmbeddingUser());
|
Assert.assertEquals(embeddingMember, createdModel.getEmbeddingUser());
|
||||||
Assert.assertEquals(cachedMessage, createdModel.getEmbeddedMessage());
|
Assert.assertEquals(cachedMessage, createdModel.getEmbeddedMessage());
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
<column name="name" value="starStats"/>
|
<column name="name" value="starStats"/>
|
||||||
<column name="module_id" valueComputed="${utilityModule}"/>
|
<column name="module_id" valueComputed="${utilityModule}"/>
|
||||||
<column name="feature_id" valueComputed="${starboardFeature}"/>
|
<column name="feature_id" valueComputed="${starboardFeature}"/>
|
||||||
<column name="created" valueComputed="${today}"/>
|
|
||||||
</insert>
|
</insert>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
|||||||
@@ -1,52 +1,2 @@
|
|||||||
abstracto.systemConfigs.starLvl1.name=starLvl1
|
|
||||||
abstracto.systemConfigs.starLvl1.longValue=5
|
|
||||||
|
|
||||||
abstracto.systemConfigs.starLvl2.name=starLvl2
|
|
||||||
abstracto.systemConfigs.starLvl2.longValue=8
|
|
||||||
|
|
||||||
abstracto.systemConfigs.starLvl3.name=starLvl3
|
|
||||||
abstracto.systemConfigs.starLvl3.longValue=13
|
|
||||||
|
|
||||||
abstracto.systemConfigs.starLvl4.name=starLvl4
|
|
||||||
abstracto.systemConfigs.starLvl4.longValue=17
|
|
||||||
|
|
||||||
abstracto.systemConfigs.starLvls.name=starLvls
|
|
||||||
abstracto.systemConfigs.starLvls.longValue=4
|
|
||||||
|
|
||||||
abstracto.systemConfigs.rouletteBullets.name=rouletteBullets
|
|
||||||
abstracto.systemConfigs.rouletteBullets.longValue=6
|
|
||||||
|
|
||||||
abstracto.systemConfigs.rollDefaultHigh.name=rollDefaultHigh
|
|
||||||
abstracto.systemConfigs.rollDefaultHigh.longValue=6
|
|
||||||
|
|
||||||
abstracto.featureFlags.starboard.featureName=starboard
|
|
||||||
abstracto.featureFlags.starboard.enabled=false
|
|
||||||
|
|
||||||
abstracto.featureFlags.remind.featureName=remind
|
|
||||||
abstracto.featureFlags.remind.enabled=false
|
|
||||||
|
|
||||||
abstracto.featureFlags.suggestion.featureName=suggestion
|
|
||||||
abstracto.featureFlags.suggestion.enabled=false
|
|
||||||
|
|
||||||
abstracto.featureFlags.utility.featureName=utility
|
abstracto.featureFlags.utility.featureName=utility
|
||||||
abstracto.featureFlags.utility.enabled=false
|
abstracto.featureFlags.utility.enabled=false
|
||||||
|
|
||||||
abstracto.featureFlags.linkEmbeds.featureName=linkEmbeds
|
|
||||||
abstracto.featureFlags.linkEmbeds.enabled=false
|
|
||||||
|
|
||||||
abstracto.featureFlags.repostDetection.featureName=repostDetection
|
|
||||||
abstracto.featureFlags.repostDetection.enabled=false
|
|
||||||
|
|
||||||
abstracto.featureFlags.entertainment.featureName=entertainment
|
|
||||||
abstracto.featureFlags.entertainment.enabled=false
|
|
||||||
|
|
||||||
abstracto.postTargets.suggestions.name=suggestions
|
|
||||||
abstracto.postTargets.starboard.name=starboard
|
|
||||||
|
|
||||||
abstracto.featureModes.download.featureName=repostDetection
|
|
||||||
abstracto.featureModes.download.mode=download
|
|
||||||
abstracto.featureModes.download.enabled=true
|
|
||||||
|
|
||||||
abstracto.featureModes.leaderboard.featureName=repostDetection
|
|
||||||
abstracto.featureModes.leaderboard.mode=leaderboard
|
|
||||||
abstracto.featureModes.leaderboard.enabled=true
|
|
||||||
@@ -26,7 +26,7 @@ public class SetPrefix extends AbstractConditionableCommand {
|
|||||||
@Override
|
@Override
|
||||||
public CommandResult execute(CommandContext commandContext) {
|
public CommandResult execute(CommandContext commandContext) {
|
||||||
String prefixValue = (String) commandContext.getParameters().getParameters().get(0);
|
String prefixValue = (String) commandContext.getParameters().getParameters().get(0);
|
||||||
configService.setStringValue("prefix", commandContext.getGuild().getIdLong(), prefixValue);
|
configService.setOrCreateConfigValue("prefix", commandContext.getGuild().getIdLong(), prefixValue);
|
||||||
return CommandResult.fromSuccess();
|
return CommandResult.fromSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ public class DefaultConfigProperties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private <T> void makeKeysLowerCase(Map<String, T> map) {
|
private <T> void makeKeysLowerCase(Map<String, T> map) {
|
||||||
|
if(map == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
Set<String> keys = new HashSet<>(map.keySet());
|
Set<String> keys = new HashSet<>(map.keySet());
|
||||||
List<Pair<String, T>> pairs = new ArrayList<>();
|
List<Pair<String, T>> pairs = new ArrayList<>();
|
||||||
keys.forEach(s ->
|
keys.forEach(s ->
|
||||||
|
|||||||
@@ -15,11 +15,14 @@ import java.util.Optional;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class ConditionServiceBean implements ConditionService {
|
public class ConditionServiceBean implements ConditionService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired(required = false)
|
||||||
private List<SystemCondition> conditionList;
|
private List<SystemCondition> conditionList;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean checkConditions(ConditionContextInstance context) {
|
public boolean checkConditions(ConditionContextInstance context) {
|
||||||
|
if(conditionList == null || conditionList.isEmpty()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
Optional<SystemCondition> matchingCondition = conditionList
|
Optional<SystemCondition> matchingCondition = conditionList
|
||||||
.stream()
|
.stream()
|
||||||
.filter(systemCondition -> systemCondition.getConditionName().equalsIgnoreCase(context.getConditionName()))
|
.filter(systemCondition -> systemCondition.getConditionName().equalsIgnoreCase(context.getConditionName()))
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ public class ConfigServiceBean implements ConfigService {
|
|||||||
return getLongValue(name, serverId, 0L);
|
return getLongValue(name, serverId, 0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getLongValueOrConfigDefault(String name, Long serverId) {
|
||||||
|
return getLongValue(name, serverId, defaultConfigManagementService.getDefaultConfig(name).getLongValue());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Double getDoubleValue(String name, Long serverId, Double defaultValue) {
|
public Double getDoubleValue(String name, Long serverId, Double defaultValue) {
|
||||||
AConfig config = configManagementService.loadConfig(serverId, name);
|
AConfig config = configManagementService.loadConfig(serverId, name);
|
||||||
@@ -40,6 +45,11 @@ public class ConfigServiceBean implements ConfigService {
|
|||||||
return config.getDoubleValue();
|
return config.getDoubleValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Double getDoubleValueOrConfigDefault(String name, Long serverId, Double defaultValue) {
|
||||||
|
return getDoubleValue(name, serverId, defaultConfigManagementService.getDefaultConfig(name).getDoubleValue());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getStringValue(String name, Long serverId, String defaultValue) {
|
public String getStringValue(String name, Long serverId, String defaultValue) {
|
||||||
AConfig config = configManagementService.loadConfig(serverId, name);
|
AConfig config = configManagementService.loadConfig(serverId, name);
|
||||||
@@ -49,6 +59,11 @@ public class ConfigServiceBean implements ConfigService {
|
|||||||
return config.getStringValue();
|
return config.getStringValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getStringValueOrConfigDefault(String name, Long serverId, String defaultValue) {
|
||||||
|
return getStringValue(name, serverId, defaultConfigManagementService.getDefaultConfig(name).getStringValue());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long getLongValue(String name, Long serverId, Long defaultValue) {
|
public Long getLongValue(String name, Long serverId, Long defaultValue) {
|
||||||
AConfig config = configManagementService.loadConfig(serverId, name);
|
AConfig config = configManagementService.loadConfig(serverId, name);
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package dev.sheldan.abstracto.core.service;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.api.entities.User;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class UserServiceBean implements UserService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private BotService botService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompletableFuture<User> retrieveUserForId(Long id) {
|
||||||
|
return botService.getInstance().retrieveUserById(id).submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,13 +7,14 @@ import lombok.Setter;
|
|||||||
import lombok.experimental.SuperBuilder;
|
import lombok.experimental.SuperBuilder;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
import net.dv8tion.jda.api.entities.TextChannel;
|
import net.dv8tion.jda.api.entities.TextChannel;
|
||||||
|
import net.dv8tion.jda.api.entities.User;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@SuperBuilder
|
@SuperBuilder
|
||||||
public class MessageEmbeddedModel extends UserInitiatedServerContext {
|
public class MessageEmbeddedModel extends UserInitiatedServerContext {
|
||||||
private CachedMessage embeddedMessage;
|
private CachedMessage embeddedMessage;
|
||||||
private Member author;
|
private User author;
|
||||||
private TextChannel sourceChannel;
|
private TextChannel sourceChannel;
|
||||||
private Member embeddingUser;
|
private Member embeddingUser;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,11 @@ import dev.sheldan.abstracto.core.models.database.AConfig;
|
|||||||
public interface ConfigService {
|
public interface ConfigService {
|
||||||
Double getDoubleValue(String name, Long serverId);
|
Double getDoubleValue(String name, Long serverId);
|
||||||
Long getLongValue(String name, Long serverId);
|
Long getLongValue(String name, Long serverId);
|
||||||
|
Long getLongValueOrConfigDefault(String name, Long serverId);
|
||||||
Double getDoubleValue(String name, Long serverId, Double defaultValue);
|
Double getDoubleValue(String name, Long serverId, Double defaultValue);
|
||||||
|
Double getDoubleValueOrConfigDefault(String name, Long serverId, Double defaultValue);
|
||||||
String getStringValue(String name, Long serverId, String defaultValue);
|
String getStringValue(String name, Long serverId, String defaultValue);
|
||||||
|
String getStringValueOrConfigDefault(String name, Long serverId, String defaultValue);
|
||||||
Long getLongValue(String name, Long serverId, Long defaultValue);
|
Long getLongValue(String name, Long serverId, Long defaultValue);
|
||||||
AConfig setOrCreateConfigValue(Long serverId, String name, AConfig value);
|
AConfig setOrCreateConfigValue(Long serverId, String name, AConfig value);
|
||||||
void setDoubleValue(String name, Long serverId, Double value);
|
void setDoubleValue(String name, Long serverId, Double value);
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package dev.sheldan.abstracto.core.service;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.api.entities.User;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public interface UserService {
|
||||||
|
CompletableFuture<User> retrieveUserForId(Long id);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user