@@ -201,9 +201,12 @@ private void checkForEndOfRaid(Guild guild) {
201201 * @param event The user who joined.
202202 */
203203 private void rejectUserDuringRaid (@ NotNull GuildMemberJoinEvent event ) {
204- event .getUser ().openPrivateChannel ().queue (c ->
205- c .sendMessage (Constants .INVITE_URL ).setEmbeds (buildServerLockEmbed (event .getGuild ())).queue (msg ->
206- event .getMember ().kick ().queue ()));
204+ event .getUser ().openPrivateChannel ().flatMap (c ->
205+ c .sendMessage (Constants .INVITE_URL )
206+ .setEmbeds (buildServerLockEmbed (event .getGuild ())))
207+ .queue (msg -> kickMemberForServerlock (event .getGuild (), event .getMember ()),
208+ //in case of error, still kick the user
209+ err -> kickMemberForServerlock (event .getGuild (), event .getMember ()));
207210 String diff = new TimeUtils ().formatDurationToNow (event .getMember ().getTimeCreated ());
208211 notificationService .withGuild (event .getGuild ()).sendToModerationLog (c -> c .sendMessageFormat (
209212 "**%s** (%s old) tried to join this server." ,
@@ -222,17 +225,13 @@ private void rejectUserDuringRaid(@NotNull GuildMemberJoinEvent event) {
222225 */
223226 public void lockServer (Guild guild , @ NotNull Collection <Member > potentialRaiders , @ Nullable User lockedBy ) {
224227 for (Member member : potentialRaiders ) {
225- member .getUser ().openPrivateChannel ().queue (c -> {
226- c .sendMessage (Constants .INVITE_URL ).setEmbeds (buildServerLockEmbed (guild )).queue (msg -> {
227- member .kick ().queue (
228- success -> {},
229- error -> notificationService .withGuild (guild ).sendToModerationLog (m -> m .sendMessageFormat (
230- "Could not kick member %s%n> `%s`" ,
231- UserUtils .getUserTag (member .getUser ()),
232- error .getMessage ()
233- )));
234- });
235- });
228+ member .getUser ().openPrivateChannel ().flatMap (c ->
229+ c .sendMessage (Constants .INVITE_URL ).setEmbeds (buildServerLockEmbed (guild ))
230+ ).queue (msg ->
231+ kickMemberForServerlock (guild , member ),
232+ //if message cannot be sent, still kick them
233+ e -> kickMemberForServerlock (guild , member )
234+ );
236235 }
237236
238237 String membersString = potentialRaiders .stream ()
@@ -264,6 +263,15 @@ public void lockServer(Guild guild, @NotNull Collection<Member> potentialRaiders
264263 }
265264 }
266265
266+ private void kickMemberForServerlock (Guild guild , Member member ) {
267+ member .kick ().queue (
268+ success -> {},
269+ error -> notificationService .withGuild (guild ).sendToModerationLog (m -> m .sendMessageFormat (
270+ "Could not kick member %s%n> `%s`" ,
271+ UserUtils .getUserTag (member .getUser ()),
272+ error .getMessage ())));
273+ }
274+
267275 /**
268276 * Unlocks the server after it has been deemed that we're no longer in a raid.
269277 *
0 commit comments