introduced *all* intents abstracto requires in order to function...., because with the new version the guild members intent was not used, and various features were not functioning

added initial message also to be send
This commit is contained in:
Sheldan
2020-05-20 00:31:43 +02:00
parent 5b7d224fd9
commit 1e667686d3
6 changed files with 24 additions and 14 deletions

View File

@@ -41,7 +41,7 @@ public class WarnDecayJob extends QuartzJobBean {
@Override
@Transactional
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
public void executeInternal(JobExecutionContext context) throws JobExecutionException {
List<AServer> allServers = serverManagementService.getAllServers();
allServers.forEach(server -> {
boolean featureEnabled = featureFlagService.isFeatureEnabled(warningDecayFeature, server);

View File

@@ -60,7 +60,7 @@ public class Contact extends AbstractConditionableCommand {
.aUserInAServer(user)
.member(targetUser)
.build();
modMailThreadService.createModMailThreadForUser(fullUser, commandContext.getChannel(), false);
modMailThreadService.createModMailThreadForUser(fullUser, null, commandContext.getChannel(), false);
}
return CommandResult.fromSuccess();
}

View File

@@ -35,7 +35,7 @@ public class ModMailMessageListener implements PrivateMessageReceivedListener {
if(existingThread != null) {
modMailThreadService.relayMessageToModMailThread(existingThread, message);
} else {
modMailThreadService.createModMailPrompt(user, message.getChannel());
modMailThreadService.createModMailPrompt(user, message);
}
}

View File

@@ -108,7 +108,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
@Override
public void createModMailThreadForUser(FullUser aUserInAServer, MessageChannel feedBackChannel, Boolean userInitiated) {
public void createModMailThreadForUser(FullUser aUserInAServer, Message initialMessage, MessageChannel feedBackChannel, Boolean userInitiated) {
Long categoryId = configService.getLongValue(MODMAIL_CATEGORY, aUserInAServer.getAUserInAServer().getServerReference().getId());
User user = aUserInAServer.getMember().getUser();
CompletableFuture<TextChannel> textChannel = channelService.createTextChannel(user.getName() + user.getDiscriminator(), aUserInAServer.getAUserInAServer().getServerReference(), categoryId);
@@ -116,7 +116,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
textChannel.thenAccept(channel -> {
List<UndoActionInstance> undoActions = new ArrayList<>();
undoActions.add(UndoActionInstance.getChannelDeleteAction(aUserInAServer.getAUserInAServer().getServerReference().getId(), channel.getIdLong()));
self.performModMailThreadSetup(aUserInAServer, channel, userInitiated, undoActions);
self.performModMailThreadSetup(aUserInAServer, initialMessage, channel, userInitiated, undoActions);
}).exceptionally(throwable -> {
log.error("Failed to create mod mail thread", throwable);
sendModMailFailure("modmail_exception_failed_to_create_mod_mail_thread", aUserInAServer.getAUserInAServer(), null, feedBackChannel, throwable);
@@ -125,10 +125,13 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
}
@Transactional
public void performModMailThreadSetup(FullUser aUserInAServer, TextChannel channel, Boolean userInitiated, List<UndoActionInstance> undoActions) {
public void performModMailThreadSetup(FullUser aUserInAServer, Message initialMessage, TextChannel channel, Boolean userInitiated, List<UndoActionInstance> undoActions) {
try {
ModMailThread thread = createThreadObject(channel, aUserInAServer);
sendModMailHeader(channel, aUserInAServer, undoActions);
if(initialMessage != null){
self.sendUserReply(channel, thread, initialMessage);
}
if(userInitiated) {
sendModMailNotification(aUserInAServer, thread, undoActions);
}
@@ -178,7 +181,7 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
}
@Override
public void createModMailPrompt(AUser user, MessageChannel channel) {
public void createModMailPrompt(AUser user, Message initialMessage) {
List<AUserInAServer> knownServers = userInServerManagementService.getUserInAllServers(user.getId());
if(knownServers.size() > 0) {
List<ServerChoice> availableGuilds = new ArrayList<>();
@@ -212,12 +215,12 @@ public class ModMailThreadServiceBean implements ModMailThreadService {
AUserInAServer chosenServer = choices.get(reactionEmote.getEmoji());
Member memberInServer = botService.getMemberInServer(chosenServer);
FullUser fullUser = FullUser.builder().member(memberInServer).aUserInAServer(chosenServer).build();
self.createModMailThreadForUser(fullUser, channel, true);
self.createModMailThreadForUser(fullUser, initialMessage, initialMessage.getChannel(), true);
})
.build();
menu.display(channel);
menu.display(initialMessage.getChannel());
} else {
channelService.sendTemplateInChannel("modmail_no_server_available", new Object(), channel);
channelService.sendTemplateInChannel("modmail_no_server_available", new Object(), initialMessage.getChannel());
}
}

View File

@@ -10,11 +10,11 @@ import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.MessageChannel;
public interface ModMailThreadService {
void createModMailThreadForUser(FullUser userInAServer, MessageChannel feedBackChannel, Boolean userInitiated);
void createModMailThreadForUser(FullUser userInAServer, Message initialMessage, MessageChannel feedBackChannel, Boolean userInitiated);
boolean hasOpenThread(AUserInAServer aUserInAServer);
boolean hasOpenThread(AUser user);
void setModMailCategoryTo(AServer server, Long categoryId);
void createModMailPrompt(AUser user, MessageChannel messageChannel);
void createModMailPrompt(AUser user, Message initialMessage);
void relayMessageToModMailThread(ModMailThread modMailThread, Message message);
void relayMessageToDm(ModMailThread modMailThread, String text, Message message, Boolean anonymous, MessageChannel feedBack);
void closeModMailThread(ModMailThread modMailThread, MessageChannel feedBack, String note, Boolean notifyUser);