Skip to content

Commit 2916588

Browse files
committed
Handle missing cases for MFA errors
1 parent c79fcfc commit 2916588

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

src/main/java/net/clementraynaud/skoice/listeners/session/ReadyListener.java

+18
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,15 @@
2626
import net.dv8tion.jda.api.Permission;
2727
import net.dv8tion.jda.api.entities.Guild;
2828
import net.dv8tion.jda.api.events.session.ReadyEvent;
29+
import net.dv8tion.jda.api.exceptions.ErrorResponseException;
2930
import net.dv8tion.jda.api.hooks.ListenerAdapter;
31+
import net.dv8tion.jda.api.requests.ErrorResponse;
32+
import net.dv8tion.jda.api.requests.RestAction;
3033
import net.kyori.adventure.text.event.HoverEvent;
3134
import org.bukkit.entity.Player;
3235

36+
import java.util.function.Consumer;
37+
3338
public class ReadyListener extends ListenerAdapter {
3439

3540
private final Skoice plugin;
@@ -56,6 +61,19 @@ public void onReady(ReadyEvent event) {
5661

5762
this.setup(tokenManager);
5863
});
64+
65+
Consumer<? super Throwable> defaultFailure = RestAction.getDefaultFailure();
66+
RestAction.setDefaultFailure(throwable -> {
67+
if (throwable instanceof ErrorResponseException) {
68+
ErrorResponseException error = (ErrorResponseException) throwable;
69+
if (error.getErrorCode() == ErrorResponse.MFA_NOT_ENABLED.getCode()) {
70+
this.plugin.getListenerManager().update();
71+
return;
72+
}
73+
}
74+
75+
defaultFailure.accept(throwable);
76+
});
5977
}
6078

6179
private void handlePublicBot(Player tokenManager) {

0 commit comments

Comments
 (0)