mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-03-27 14:23:56 +00:00
added check to check if a role is in the server
added more log output
This commit is contained in:
@@ -19,6 +19,7 @@ public class StarboardConfigListener implements ServerConfigListener {
|
||||
|
||||
@Override
|
||||
public void updateServerConfig(AServer server) {
|
||||
log.info("Creating starboard config for server {}", server.getId());
|
||||
for (int i = 0; i < starboardConfig.getLvl().size(); i++) {
|
||||
Integer value = starboardConfig.getLvl().get(i);
|
||||
configManagementService.createIfNotExists(server.getId(), "starLvl" + ( i + 1 ), Double.valueOf(value));
|
||||
|
||||
@@ -24,8 +24,8 @@ public class ReminderJob extends QuartzJobBean {
|
||||
@Override
|
||||
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
|
||||
try {
|
||||
reminderService.executeReminder(reminderId);
|
||||
log.info("executing reminder job for reminder {}", reminderId);
|
||||
reminderService.executeReminder(reminderId);
|
||||
} catch (Exception e) {
|
||||
log.error("Reminder job failed to execute.", e);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package dev.sheldan.abstracto.utility.listener.embed;
|
||||
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||
import dev.sheldan.abstracto.core.models.database.AEmote;
|
||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||
import dev.sheldan.abstracto.core.service.BotService;
|
||||
import dev.sheldan.abstracto.core.service.EmoteService;
|
||||
@@ -48,12 +49,14 @@ public class MessageEmbedRemovalReactionListener implements ReactedAddedListener
|
||||
AEmote aEmote = emoteService.getEmoteOrFakeEmote(REMOVAL_EMOTE, guildId);
|
||||
MessageReaction.ReactionEmote reactionEmote = reaction.getReactionEmote();
|
||||
Optional<Emote> emoteInGuild = botService.getEmote(guildId, aEmote);
|
||||
log.trace("Removing embed in message {} in channel {} in server {} because of a user reaction.", message.getMessageId(), message.getChannelId(), message.getServerId());
|
||||
if(EmoteUtils.isReactionEmoteAEmote(reactionEmote, aEmote, emoteInGuild.orElse(null))) {
|
||||
Optional<EmbeddedMessage> embeddedMessageOptional = messageEmbedPostManagementService.findEmbeddedPostByMessageId(message.getMessageId());
|
||||
if(embeddedMessageOptional.isPresent()) {
|
||||
EmbeddedMessage embeddedMessage = embeddedMessageOptional.get();
|
||||
if(embeddedMessage.getEmbeddedUser().getUserReference().getId().equals(userAdding.getUserReference().getId())
|
||||
|| embeddedMessage.getEmbeddingUser().getUserReference().getId().equals(userAdding.getUserReference().getId())
|
||||
AUser userReacting = userAdding.getUserReference();
|
||||
if(embeddedMessage.getEmbeddedUser().getUserReference().getId().equals(userReacting.getId())
|
||||
|| embeddedMessage.getEmbeddingUser().getUserReference().getId().equals(userReacting.getId())
|
||||
) {
|
||||
messageService.deleteMessageInChannelInServer(message.getServerId(), message.getChannelId(), message.getMessageId()).thenAccept(aVoid -> {
|
||||
messageEmbedPostManagementService.deleteEmbeddedMessageTransactional(embeddedMessage);
|
||||
|
||||
@@ -74,6 +74,7 @@ public class StarboardListener implements ReactedAddedListener, ReactedRemovedLi
|
||||
MessageReaction.ReactionEmote reactionEmote = addedReaction.getReactionEmote();
|
||||
Optional<Emote> emoteInGuild = botService.getEmote(guildId, aEmote);
|
||||
if(EmoteUtils.isReactionEmoteAEmote(reactionEmote, aEmote, emoteInGuild.orElse(null))) {
|
||||
log.trace("User {} in server {} reacted with star to put a message {} on starboard.", userAdding.getUserReference().getId(), userAdding.getServerReference().getId(), message.getMessageId());
|
||||
Optional<CachedReaction> reactionOptional = EmoteUtils.getReactionFromMessageByEmote(message, aEmote);
|
||||
updateStarboardPost(message, reactionOptional.orElse(null), userAdding, true);
|
||||
}
|
||||
@@ -85,28 +86,31 @@ public class StarboardListener implements ReactedAddedListener, ReactedRemovedLi
|
||||
List<AUser> userExceptAuthor = getUsersExcept(reaction.getUsers(), message.getAuthorId());
|
||||
Double starMinimum = getFromConfig("starLvl1", message.getServerId());
|
||||
if (userExceptAuthor.size() >= starMinimum) {
|
||||
log.info("Post reached starboard minimum. Message {} in channel {} in server {} will be starred/updated.",
|
||||
message.getMessageId(), message.getChannelId(), message.getServerId());
|
||||
AUserInAServer author = userManagementService.loadUser(message.getServerId(), message.getAuthorId());
|
||||
if(starboardPostOptional.isPresent()) {
|
||||
StarboardPost starboardPost = starboardPostOptional.get();
|
||||
starboardPost.setIgnored(false);
|
||||
starboardService.updateStarboardPost(starboardPost, message, userExceptAuthor);
|
||||
if(adding) {
|
||||
log.trace("Adding reactor {} from message {}", userReacting.getUserReference().getId(), message.getMessageId());
|
||||
starboardPostReactorManagementService.addReactor(starboardPost, userReacting.getUserReference());
|
||||
} else {
|
||||
log.trace("Removing reactor {} from message {}", userReacting.getUserReference().getId(), message.getMessageId());
|
||||
starboardPostReactorManagementService.removeReactor(starboardPost, userReacting.getUserReference());
|
||||
}
|
||||
} else {
|
||||
log.info("Creating starboard post for message {} in channel {} in server {}", message.getMessageId(), message.getChannelId(), message.getServerId());
|
||||
starboardService.createStarboardPost(message, userExceptAuthor, userReacting, author);
|
||||
}
|
||||
} else {
|
||||
if(starboardPostOptional.isPresent()) {
|
||||
this.completelyRemoveStarboardPost(starboardPostOptional.get());
|
||||
}
|
||||
log.info("Removing starboard post for message {} in channel {} in server {}. It fell under the threshold {}", message.getMessageId(), message.getChannelId(), message.getServerId(), starMinimum);
|
||||
starboardPostOptional.ifPresent(this::completelyRemoveStarboardPost);
|
||||
}
|
||||
} else {
|
||||
if(starboardPostOptional.isPresent()) {
|
||||
this.completelyRemoveStarboardPost(starboardPostOptional.get());
|
||||
}
|
||||
log.info("Removing starboard post for message {} in channel {} in server {}", message.getMessageId(), message.getChannelId(), message.getServerId());
|
||||
starboardPostOptional.ifPresent(this::completelyRemoveStarboardPost);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,6 +131,8 @@ public class StarboardListener implements ReactedAddedListener, ReactedRemovedLi
|
||||
MessageReaction.ReactionEmote reactionEmote = removedReaction.getReactionEmote();
|
||||
Optional<Emote> emoteInGuild = botService.getEmote(guildId, aEmote);
|
||||
if(EmoteUtils.isReactionEmoteAEmote(reactionEmote, aEmote, emoteInGuild.orElse(null))) {
|
||||
log.trace("User {} in server {} removed star reaction from message {} on starboard.",
|
||||
userRemoving.getUserReference().getId(), userRemoving.getServerReference().getId(), message.getMessageId());
|
||||
Optional<CachedReaction> reactionOptional = EmoteUtils.getReactionFromMessageByEmote(message, aEmote);
|
||||
updateStarboardPost(message, reactionOptional.orElse(null), userRemoving, false);
|
||||
}
|
||||
|
||||
@@ -5,12 +5,14 @@ import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||
import dev.sheldan.abstracto.utility.config.UtilityFeatures;
|
||||
import dev.sheldan.abstracto.utility.models.database.StarboardPost;
|
||||
import dev.sheldan.abstracto.utility.service.management.StarboardPostManagementService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class StarboardPostDeletedListener implements MessageDeletedListener {
|
||||
|
||||
@Autowired
|
||||
@@ -20,6 +22,9 @@ public class StarboardPostDeletedListener implements MessageDeletedListener {
|
||||
public void execute(CachedMessage messageBefore) {
|
||||
Optional<StarboardPost> byStarboardPostId = starboardPostManagementService.findByStarboardPostId(messageBefore.getMessageId());
|
||||
if(byStarboardPostId.isPresent()) {
|
||||
StarboardPost post = byStarboardPostId.get();
|
||||
// TODO channel missing
|
||||
log.info("Removing starboard post: message {}, channel {}, server {}, because the message was deleted", post.getPostMessageId(), messageBefore.getChannelId(), post.getAuthor().getId());
|
||||
starboardPostManagementService.setStarboardPostIgnored(messageBefore.getMessageId(), true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,7 +110,8 @@ public class MessageEmbedServiceBean implements MessageEmbedService {
|
||||
MessageEmbeddedModel messageEmbeddedModel = buildTemplateParameter(embeddingMessage, cachedMessage);
|
||||
MessageToSend embed = templateService.renderEmbedTemplate(MESSAGE_EMBED_TEMPLATE, messageEmbeddedModel);
|
||||
List<CompletableFuture<Message>> completableFutures = channelService.sendMessageToEndInTextChannel(embed, target);
|
||||
|
||||
log.trace("Embedding message {} from channel {} from server {}, because of user {}", cachedMessage.getMessageId(),
|
||||
cachedMessage.getChannelId(), cachedMessage.getServerId(), cause.getUserReference().getId());
|
||||
CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])).thenAccept(aVoid -> {
|
||||
try {
|
||||
Message createdMessage = completableFutures.get(0).get();
|
||||
|
||||
@@ -73,13 +73,17 @@ public class RemindServiceBean implements ReminderService {
|
||||
reminderModel.setReminder(reminder);
|
||||
MessageToSend message = templateService.renderEmbedTemplate(REMINDER_EMBED_KEY, reminderModel);
|
||||
channelService.sendMessageToEndInAChannel(message, reminderModel.getChannel());
|
||||
log.info("Creating reminder for user {} in guild {} due at {}.",
|
||||
user.getUserReference().getId(), user.getServerReference().getId(), remindAt);
|
||||
|
||||
if(remindIn.getSeconds() < 60) {
|
||||
log.trace("Directly scheduling the reminder, because it was below the threshold.");
|
||||
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
|
||||
scheduler.schedule(() -> {
|
||||
self.executeReminder(reminder.getId());
|
||||
}, remindIn.toNanos(), TimeUnit.NANOSECONDS);
|
||||
} else {
|
||||
log.trace("Starting scheduled job to execute reminder.");
|
||||
JobDataMap parameters = new JobDataMap();
|
||||
parameters.putAsString("reminderId", reminder.getId());
|
||||
schedulerService.executeJobWithParametersOnce("reminderJob", "utility", parameters, Date.from(reminder.getTargetDate()));
|
||||
@@ -92,6 +96,7 @@ public class RemindServiceBean implements ReminderService {
|
||||
Reminder reminderToRemindFor = reminderManagementService.loadReminder(reminderId);
|
||||
AServer server = reminderToRemindFor.getServer();
|
||||
AChannel channel = reminderToRemindFor.getChannel();
|
||||
log.info("Executing reminder {}.", reminderId);
|
||||
Optional<Guild> guildToAnswerIn = botService.getGuildById(server.getId());
|
||||
if(guildToAnswerIn.isPresent()) {
|
||||
Optional<TextChannel> channelToAnswerIn = botService.getTextChannelFromServer(server.getId(), channel.getId());
|
||||
@@ -99,6 +104,7 @@ public class RemindServiceBean implements ReminderService {
|
||||
if(channelToAnswerIn.isPresent()) {
|
||||
AUser userReference = reminderToRemindFor.getRemindedUser().getUserReference();
|
||||
Member memberInServer = botService.getMemberInServer(server.getId(), userReference.getId());
|
||||
log.trace("Reminding user {}", memberInServer.getUser().getIdLong());
|
||||
ExecutedReminderModel build = ExecutedReminderModel
|
||||
.builder()
|
||||
.reminder(reminderToRemindFor)
|
||||
|
||||
Reference in New Issue
Block a user